1. 1

    This is just like saying python have so many methods to format strings. However I think rust case is better since they perform similarly but python formatting have different performance with different methods.

    1. 2

      Also, the many conversion functions are a side-effect of the many useful conversion traits that Rust provides, e.g. From, Into (implemented automatically for ‘counterpart’ types for which From is implemented), and ToOwned.

      From and ToOwned just happened to apply both to slices and string slices. (In fact, From<&str> for String is even implemented using ToOwned.)

    1. 23

      I would maybe use Go/Rust

      “Go/Rust” is a great shortcut for “I don’t know anything about programming languages”. ;)

      1. 13

        I think your average “dark matter” type of programmer isn’t going to have much exposure to these. Of course, I think Go is likely to become one of those dark matter developer languages like Java or VB became.

        1. 4

          I thought that a) Go is already a dark matter language b) people who think Rust is like Go already know Go and fell victim to the Blub phenomenon. I may be wrong on both counts of course,

          1. 9

            Depends on the timeframe. For your typical Bay Area shop, your typical “SRE DevOps Peon” will likely use Go. Outside of the HN bubble, most companies doing line-of-business type stuff that aren’t hopelessly outdated are usually doing it still in Java/C#/PHP, maybe JS.

          2. 2

            It could be. I tried to do a project in Go. I couldn’t easily express ideas due to how basic its primitives are. That Rob Pike quote became real for me. I just tossed that entire prototype, kept using Python, and started looking at more expressive languages.

            On the plus side, I can see how its simplicity makes onboarding easier, probably easier to maintain random codebases than C++ or Java/.Net, and dramatically improves ability to make the tooling. It just didn’t fit me. I could see me using a more expressive language that outputs something like Go in human-readable form to keep those benefits, though. I just gotta keep my personal productivity up since it’s scarce to begin with (outside work).

          3. 12

            I don’t think this is fair.

            I have to use both Rust and Go at work - compared to other mainstream languages these happen to be two of three that give you automatic memory management and memory safety without outsized and unpredictable latency penalties for typical software.

            I understand where you’re coming from, because the mechanisms they for this are quite different - Rust accomplishes this via stack allocation by default via the borrow checker and RAII and Go accomplishes this via the combination of automatic stack allocation via escape analysis and the core team’s focus on the impact of garbage collection latency - but that doesn’t mean that they aren’t reasonable to group together among other mainstream programming languages in 2020.

            1. 5

              I feel like this is the point of the article, though! OP hasn’t had time to actually put in research about it and won’t have time, unless it becomes a direct part of their job.

              1. 4

                I wouldn’t go that far; while this person is self-admittedly a very average programmer, and while there are some reasons to view Rust and Go as languages that are best suited for two different categories of work, they do share some important commonalities that the author is rightly picking up on. Both of them had the design goals of being immediately, practically useful to mainstream software engineers (rather than being research languages exploring esoteric PL theory features). They were consolidations of a few decades of lessons learned from the flaws of other mainstream programming languages, rather than trying to do anything radically new. They both spent a lot of effort on building practical tooling around the compiler. And they were both developed at roughly the same time. There are quite a few areas of programming where either Go or Rust would be a reasonable choice.

                1. 2

                  Disagree, I see quite a few problems and requirements where I’d use one of the two over, say, C++ and with the same reasons I wouldn’t use Python or PHP.

                  You’re just as much overgeneralizing as the author did.

                  1. 2

                    In one of the rule on C / C++, Rust could be an alternative there. I think comparing Rust to C / C++ would be better than Go.

                    1. 1

                      Ok wait but the rest of the sentence qualifies:

                      I would maybe use Go/Rust if I was building a fresh web service where latency, and performance were more important than community/library support.

                      Maybe a more precise spelling would have been “Go or Rust” instead of “Go/Rust”, but I think the meaning was clear given the whole sentence.

                    1. 6

                      Nice little program!

                      I’ve never seen that ARGBEGIN / ARGEND macro before – any history on that code?

                      1. 7

                        I’m not familiar with the exact history of the macro, I just know that it’s used in pretty much every utility in the suckless community. I think I’m in IRC with 20h right now, let me ask.

                        1. 2

                          It’s from Plan 9.

                          1. 1

                            Probably from plan 9 like 4ad said, I took it from suckless since it looks simple.

                        1. 3

                          I have a tendency to get sucked into a project I’m working on and totally lose track of time, and then later lose interest. I think breaking things into bits and working a little at a time helps to prevent burnout and keep production up even with low motivation.

                          1. 1

                            I don’t find this useful on general use, unless I really have lots of task at the same time and need to plan to use time to the most by separating tasks by chunks then probably yes.