• skobes 6 days ago |
    > And the problem with Rust is that it just doesn't have critical mass and, frankly, I don't think it will ever have.

    Isn't this premature? Rust is still pretty new.

    • dotancohen 6 days ago |
      > Isn't this premature? Rust is still pretty new.

      The old lady said both those things to me this week. In two different conversations.

    • causal 6 days ago |
      It is premature. And furthermore, adoption will mostly be driven by new projects written in Rust, not conversion of C/C++. That takes time.
      • emn13 6 days ago |
        At the risk of dating myself, I suspect the author of that self-described rant either has forgotten how long it took for C++ to mostly dethrone plain C, and perhaps practically more relevantly, how painfully long it took for new versions of C++ to be widespread enough that people dared to rely on them. This stuff isn't easy at scale; adoption is slow.

        Doesn't mean rust will ever grow like that, but merely slow adoption doesn't sound like a death knell by itself to me.

        • qayxc 6 days ago |
          100% this. It's still absurd to me how codebases in some industries are still basically C++98 and haven't even begun to transition to at least C++17 (which forces new code that adds or changes features to be written C++98-style as well).

          Hard to imagine those companies switching to a different language anytime soon. Maybe the new US government push towards "memory safe" languages will help with that.

          • tonyedgecombe 5 days ago |
            >Maybe the new US government push towards "memory safe" languages will help with that.

            That could be a whole new year 2000 thing. It would get the programming world out of the doldrums it seems to be in at the moment.

    • orbat 6 days ago |
      It's not that new; nearly 10 years old now I think. Go's adoption was faster
      • dysoco 6 days ago |
        I think Go thrives in a much more popular field (web services, etc.) and it's also designed to be easy to pick up so I'm not surprised this was the case.
      • rahkiin 6 days ago |
        Isnt the first stable language version from 2018?
        • steveklabnik 6 days ago |
          May 2015.
        • estebank 6 days ago |
          1.0 was in May of 2015, but that was closer to an MVP with stability guarantees than the full language. It wasn't until 2018 that Rust was as usable for most tasks. Everything you might have learned back then is still available, just a lot of restrictions have been removed, and there are more to come.
  • devnullbrain 6 days ago |
    This maps to my own experience in the UK. Every time I search for a C++ job, I inevitably end up discussing my fondness of Rust but inability to use it at work. The interviewer will typically reply mentioning discussions of using it for greenfield projects - but I know it won't result in me writing anything of substance.

    2 years ago, seeing a somewhat applicable Rust job-description made me 90% certain it was about cryptocurrency fintech. Now, a few defence roles are creeping in, presumably due to the US government distancing itself from unsafe languages. Neither are fields I really want to work in. And what a shame it would be if such a great language was relegated to being an Ada alternative.

    I try to keep on top of Rust, - it's the most likely candidate to put me out of a job - but it will be a long time before there are no more legacy C++ codebases. Being the COBOL guy of the future doesn't sound too bad.

    • causal 6 days ago |
      Why would staying on top of Rust put you out of a job?
      • Twirrim 6 days ago |
        They're saying they stay up to date with Rust, because it's the most likely to do away with C++ (their job), making sure they have relevant skills for if that happens.
      • quickslowdown 6 days ago |
        The Rust language is what he's saying will put him out of a job, over tim as it replaces C (the language I'm guessing they work with professionally).
    • AlotOfReading 6 days ago |

          Now, a few defence roles are creeping in, presumably due to the US government distancing itself from unsafe languages. 
      
      I know a few contractor teams that have moved to Rust not because of any federal pressure, but simply because they're small and hierarchical enough that 1-2 people who understand the benefits are able to set the development language.
      • eggy 6 days ago |
        They've been using safe languages like Ada and SPARK2014 for decades, and those are hardly unsafe. In fact they are safer and more mature than Rust and easier to learn IMHO.
        • AlotOfReading 6 days ago |
          Tried hiring people for Ada jobs, or finding open source stuff to use in it? Ada has failed to find a market even in the safety-critical niches it should be dominating. Heck, AdaCore is putting out more Rust stuff these days than Ada.
          • pjmlp 6 days ago |
            Yet, 7 companies are still in business selling Ada compilers, in a world where most devs refuse to pay for tools while expecting to be paid themselves.
            • AlotOfReading 6 days ago |
              And presumably they're all selling almost exclusively to the aerospace industry. There's like a dozen COBOL compiler vendors too. It's not indicative of the health of the language ecosystem.
              • pjmlp 6 days ago |
                Ada is used all over the place in high integrity computing, that is much more than aerospace.

                Well, COBOL just got ISO COBOL 2023 out of the door, and both Visual COBOL and NetCOBOL, still offer a much better development experience than many FOSS toolchains.

              • eggy a day ago |
                Tell that to the largest company in the world, Nvidia that adopted SPARK for their high-integrity, high-security firmware.
            • eggy 3 days ago |
              I find Ada/SPARK2014 much easier to learn than Rust, and given its legacy, Ada programmers are of a higher quality for the high-integrity market than Rust at the moment. The fandom of Rust is a positive and attracts a lot of early adopters, but it still does not approach the portfolio of high-integrity software out there in Ada/SPARK2014.
        • galangalalgol 6 days ago |
          I don't think spark is easier to learn. Ada probably is. Ada sacrifices some performance for some of the benefits rust gets for free though, and deallocating memory is unsafe in the versions I've played with. If forbidding free is the way we choose to eliminate use after free, then there are a lot more memory safe languages.
          • pjmlp 6 days ago |
            Only if you never moved beyond Ada83.

            Controlled Types and SPARK provide the mechanisms to deallocate only when it is actually safe to do so.

            Additionally unbounded collections, are just like graphs in Rust, they provide safe ways to managed dynamically sized collections, while hiding the unsafe code in implementation.

    • CaptainJack 6 days ago |
      Being in the uk, we were fortunate enough to choose rust as a main language with my co-founder about two years ago. We chose it after trying it out for some toy projects, and with no real experience with it (but both of us having heavy experience of C++, C#, Python, Ruby, and having tested many others).

      We chose it because it felt "right", giving us c++ performance, productivity when writing, and a feeling of cleanliness from its type system I had not experienced since ... Ocaml.

      But what we did not expect was how great it was from a talent perspective. We started hiring at a time where lots of rust developers were being laid off crypto, and the caliber of candidates is just ... amazing. Rust devs enjoy working with the language, and you get a type of developer who likes producing good code, and is usually quite passionate about coding.

      So, I understand rust jobs are not easy to get by, but being on the other side of the table, it's a wonderful talent magnet for our team, allowing us to hire great developers.

      • pdimitar 6 days ago |
        Apologies for the off-topic but I am currently in a job search. I'd rate myself below the guys and girls you hired but I am very enthusiastic working with Rust. You hiring?

        Again, sorry. :( But I am not getting any networking opportunities lately and couldn't resist replying to your message.

        • wizzwizz4 6 days ago |
          There's a hiring thread: you might find that useful. https://news.ycombinator.com/submitted?id=whoishiring The next one's coming out in a few days.
          • pdimitar 6 days ago |
            Already did, thank you, I am simply trying my luck at a direct connection. Sanctioned HR processes are a meat grinder.
          • johnnyanmac 5 days ago |
            I skim it, but I typically only see maybe 2-3 roles in my domain. And these days, maybe 1 is in the US and the other 2-3 are in the EU. Such a rough market.
      • fragmede 6 days ago |
        The crypto bit is an interesting filter. Wether the developers you found are true believers, grifters in on the scam, or just mercenaries for hire welding crates, they can't not have an opinion on cryptocurrency so my question to you is how much of that do they bring to work? Are there coffee chats about Ayn Rand and politics or do they steer clear of any of that.
        • alfiedotwtf 6 days ago |
          It’s funny, I’ve been in crypto for a few years now and not once have I seen these grifters you talk about.

          Also, you should maybe stop associating right wing crypto YouTubers with crypto developers. I would say most I know are left of central.

          • chikere232 6 days ago |
            if you can't see the grifters, you're the mark
            • alfiedotwtf 6 days ago |
              You’re a Java developer and you’re calling me the mark?
              • chikere232 5 hours ago |
                You have seen no grifters in crypto and you're calling me a java developer?
          • rcxdude 6 days ago |
            Never? The highest profile things in crypto are the scams, so you gotta be pretty laser-focused on your niche to not see them.
            • alfiedotwtf 6 days ago |
              The highest profile things in crypto are Bitcoin ETFs which are institutionally run, so I guess you’re not wrong there
              • fragmede 5 days ago |
                FTX seems pretty high profile to me.
                • alfiedotwtf 5 days ago |
                  I’m just a dev, and don’t hang around parties in the Bahamas. Like I said, I’ve never met a single person who’s a grifter.

                  Calling out FTX is like doing background checks on the company you work for’s VCs, their LPs and then their associates. Nothing to do with crypto on the ground

          • fragmede 5 days ago |
            Let's assume a normal distribution of humanity exists in crypto, ie, broadly, over all of humanity, there are good people and bad people, so we would expect there to be good and bad people in crypto, as, while there are some self-selecting aspects to cryptocurrency enthusiasts or developers, there isn't a way to select for "only good people". This is true for every group of people. This is true of the police, true of the clergy, true of school teachers, true of software developers, politicians, etc.

            So if you've never once seen them, either you're wilfully blinding yourself, or you haven't looked very hard. Now, whether or not grifters are overrepresented in the cryptocurrency community, the cryptocurrency developer community, or the right wing crypto YouTubers community, is an entirely separate question, which I made no claims about. Though I imagine North Korean crypto devs fall into a certain category.

            But to claim they don't exist, because you've never seen one is questionable. I mean, that works for some things (eg unicorns and dragons), but I've also never seen eg the Vegas Sphere in person, but I'm fairly convinced it's a real thing that exists.

            • alfiedotwtf 3 days ago |
              Nah, I don't claim they don't exist but I also claim that I've never met any - 99% of people I know in crypto are devs who chose to be there because of the ideals and challenges. From what I've seen in media, it's not the devs who are the scammers but the people up top - founders and sales people, which again I don't know many of that kind.
        • lkt 6 days ago |
          I think you have a very skewed view of what people interested in cryptocurrency are like.
          • fragmede 6 days ago |
            Absolutely! It's a spectrum and people lie somewhere on it. I can't have a picture of the entirety of it (though I'd love to), but I can only go off my own experiences. I try and get as full a picture as I can, but it's unfortunately going to be skewed. yours is too. I'd love to hear which way your POV skews towards
          • guenthert 6 days ago |
            > I think you have a very skewed view of what people interested in cryptocurrency are like.

            Given that it's a heavenily gift for criminals (including those wishing to evade taxation on otherwise legit commercial activity) while leeching a good share of world's energy resources, I think he's excused.

          • rcxdude 6 days ago |
            I think it's a pretty accurate view of the average non-developer-crypto-enthusiast. I'm not sure how well it translates to the developer side.
    • sien 6 days ago |
      This is also true where I am in Australia. There are very few Rust jobs.

      However, from the first two comments on the article :

      "We use Rust at AWS (in my org) for every new project that would have previously been written in c++.

      [–]rigmaroler 104 points 23 hours ago

      Microsoft is the same. All new services running on VM-hosting nodes (i.e. domains where C# is explicitly not allowed) have to use Rust now. It's a top-down mandate.

      There's also AI investment in converting C/C++ services to Rust, but I have a negative opinion on that investment"

      So there is clearly a substantial amount of Rust being written in some places.

      • devnullbrain 6 days ago |
        That's a kind of tier of employer that wouldn't even invite me to interview but you are right and I expect it will trickle down to my level in the long-run.
        • menaerus 6 days ago |
          Don't beat yourself about it. My advice would be to get not too crazy about programming languages. Become proficient at one. Pick either C++ or Rust. Don't use HN as a source for making your next moves in career - it is very skewed. Rather use that energy to invest into building domain-specific knowledge - that will get you a lot further than being a programming language afficionado and a language lawyer. IMHO.
    • sam0x17 6 days ago |
      Where are these C++ jobs? I've only seen Rust jobs :D
      • johnnyanmac 5 days ago |
        any role that requires performance. Games, embedded (though than might be more pure C), some backend dev work here and there, fintech/quant, many jobs that need to work with Linux in anyway.
    • pdimitar 6 days ago |
      > Now, a few defence roles are creeping in, presumably due to the US government distancing itself from unsafe languages. Neither are fields I really want to work in.

      Well, I am interested. Got any names?

    • JohnFen 6 days ago |
      > Being the COBOL guy of the future doesn't sound too bad.

      This is where I arrived for different reasons. It seems that Rust might become an important language, career-wise, so I learned it to the level of basic competency. In the course of doing that, I learned that I really hate Rust. Not on technical grounds, but I find the language itself unpleasant, and I dislike much of the tooling around the language (crates, etc.)

      Rust wouldn't be the first language I've learned and dislike, but this time, I decided to just take a pass. Even if Rust becomes the predominant language, there will always be work in other languages. I'll be content with that.

      • pdimitar 6 days ago |
        I am not sure I can decipher from your comment what do you exactly find unpleasant in the language and the tooling?
        • gigel82 6 days ago |
          Not OP but the syntax is off-puting for me, it's simply difficult to read.

          I can parse and read all C/C++/TypeScript/Java/C# code with ease, it all makes sense and reads like poetry. Rust's syntax is just ugly, I have a visceral unpleasant feeling sort-of like when I have to read Perl code or (to a lesser degree) Objective-C.

          • ribadeo 6 days ago |
            You don't like the turbofish?
            • rcxdude 6 days ago |
              lifetime annotations seem to be the biggest yuck for most people, given it's the most un-C++ like syntax (and single-quotes are always balanced in most languages).
              • rightbyte 6 days ago |
                Single quotes are not balanced in GNU Octave or Lisps. I have never seen that as a critique of those.
                • rcxdude 6 days ago |
                  I think they have more obvious syntax complaints (from the perspective of the C-syntax language developer), to be fair
              • bmicraft 4 days ago |
                That's what's always tripped me up learning VHDL. I still don't really like it.
        • JohnFen 6 days ago |
          I dislike the language's syntax. I dislike the crates concept, but that's a minor thing I probably shouldn't have mentioned.
          • pdimitar 6 days ago |
            You probably should not have because I'd immediately ask what is the alternative to crates. :D

            Dependency management is a fact of life for most of us out there in the trenches. It cannot be escaped. We don't want to roll our own.

        • otabdeveloper4 5 days ago |
          Sorry buddy, you're not allowed to dislike Rust on the internet. You will now be arrested by the internet police and banned.
          • pdimitar 5 days ago |
            Hope you're joking.
      • mixmastamyk 6 days ago |
        I did the same with golang. And too bad because it gets several things right that I’d like to use.
  • causal 6 days ago |
    This is kind of silly to me. You don't have to break up with Rust to use C++.

    Look for opportunities to adopt Rust, especially greenfield projects. We don't have to eliminate all C++ codebases first.

    • tayo42 6 days ago |
      Ime you kind of do, at least did. I learned rust twice I think. First time it had a lot of time hype so I sat down and learned it. Then kind of like this rant never used it so it forgot it.

      Then it came up at work and the language changed enough that I had to learn it again. Features were added, the "community approved" libraries changed, tools changed, coding conventions changed.

      I never had that feeling with any other language I've used in similar ways. Javascript, ruby, python go I always felt like I could learn, stop using and come back to use pretty easily.

      • pdimitar 6 days ago |
        I have difficulty picking Rust again for semi-different reasons than yours: it simply has a huge surface, not only the core language but also the libraries; the amount of those you really must know to be able to call yourself a commercial Rust programmer seems to grow with time. (You mentioned this last point, hence the "semi-different reasons" expression.)

        I know Rust quite fine as a language but put me in a commercial project and I'll definitely need a few weeks to learn what should be used for i.e. error handling, logging, OpenTelemetry, and such.

        • goku12 6 days ago |
          That's odd! Finding libraries (crates) has been the easy part for me. You usually get the answer directly from crates.io. Even in cases where there are multiple alternatives, it's easy to choose one based on the statistics available on crates.io. And in the rare case where you still can't decide, a web search reveals the frontrunner with detailed articles on why.
          • pdimitar 6 days ago |
            Oh, I'm not saying it's difficult. I'm saying that at one point it becomes too much. And if I don't actively work with Rust I end up forgetting and having to relearn in the future.
            • goku12 6 days ago |
              How is it different from the situation in other languages? Especially the ones like C and C++ that don't have a canonical source registry either? (Not a rhetorical question)
              • pdimitar 6 days ago |
                Normally yes but f.ex. my favorite Elixir has a community that very strongly prefers and orbits around singular solutions of thorny problems. You will not find many ORMs / DataMappers in that ecosystem, it's one that has been super hard worked on and nearly everyone accepts it and loves it and contributes to it when the need arises.

                Meanwhile in many other languages, Golang and Rust included, there are many ways to do the same thing. That introduces difficulty to keep well up to date.

                But I can easily agree this point gets very weakened after you have worked with the language for a certain amount of time and on.

        • dengolius a day ago |
          Could you share links to the libraries that you have used?
      • esafak 6 days ago |
        C++ has changed a lot.
    • arccy 6 days ago |
      maybe you can only fit one really complex language in your head at a time while watching out for footguns
      • galleywest200 6 days ago |
        Then use a language with fewer footguns?
      • sitharus 6 days ago |
        But that's not a problem with Rust, and it's not something that anyone should feel ashamed about. Just acknowledge "Hey I can't use Rust because I can't commit the brain space needed to it".
    • n144q 6 days ago |
      Exactly. VSCode and Chrome already have Rust code, although only a very small part. But if giant, complex projects like these can find places where Rust fits, most other projects can as well.
      • dralley 6 days ago |
        Android, Windows, Discord, Dropbox, Cloudflare, AWS
        • pjmlp 6 days ago |
          Pluton firmware, Azure network cards firmware, new Azure Sphere SDK.
    • ilrwbwrkhv 6 days ago |
      This and also what people don't realize is that because right now Rust is a passion project for most people almost everything in it is of very high quality.

      Jobs will come soon because stability and speed is good for business. And then we will have a bunch of lower quality stuff but more jobs. So enjoy the good things at each stage.

      • pdimitar 6 days ago |
        I agree with your take and want to add that Rust has stellar tooling and code analysis of it also looks either easier or just more people are doing it so I think linting and semi-automatically applying better practices will be easier compared to, say, Python.
        • ilrwbwrkhv 6 days ago |
          Absolutely. It is a better designed language by far.
    • zahlman 6 days ago |
      Aside: I've been programming for... 35 years or so by my reckoning, but I can't recall ever hearing the term "greenfield project" before this year, and now it's seemingly everywhere. What's up with that? What happened to just... making new things?
      • chris_wot 6 days ago |
        It's probably the circles you are around. The term has been around for a long time.
      • scubbo 6 days ago |
        Been around programming for ~20 years, professionally engineering for 13 of them, and I think I first heard the term (and have heard it consistently since then) at least a decade ago.

        Rejoice! You are one of today's Lucky 10,000[0]!

        [0] https://xkcd.com/1053/

      • fragmede 6 days ago |
        https://trends.google.com/trends/explore?date=all&geo=US&q=g...

        Google trends only go back to 2004, but it's older than that.

        • bmicraft 4 days ago |
          Of course greenfield has been a term for a long time, but how long has it been used to describe software projects? I'd think a lot less than that.
      • yen223 6 days ago |
        Wait til you learn about "brownfield" projects, which apparently is also a thing! (It's the opposite of greenfield)
      • sph 6 days ago |
        I've used the term "greenfield development" for 10 years and I'm not even a native speaker. Though I have been on this site longer than that, so I might have picked that up by osmosis.
  • sedatk 6 days ago |
    TL;DR: “Rust isn’t popular enough”
  • dysoco 6 days ago |
    > The majority of the Rust programming jobs asks primarily for deep knowledge in specialized technologies: cryptocurrencies/blockchain, finance trading, machine learning/data analysis, obscure network protocols, cybersecurity, etc.

    I agree, but that's a lot of fields and C and C++ jobs ask for the same: finance trading, videogames, machine learning, electronics, legacy protocols, etc. So I don't see how this is unique to Rust but doesn't apply to C++.

    Yeah I see very few and far between job offers for Rust but I can say the same for C or C++, and new companies are using Rust not the former languages. Maybe it's easier in the USA. Usually C or C++ jobs ask for embedded knowledge, whereas Rust ones don't.

    • ndiddy 6 days ago |
      What country are you looking in? Everything I’ve seen (US) is like the linked post describes. There’s a fair amount of C or C++ jobs, while the Rust ones are all either crypto startups or extremely specialized (5 years professional rust experience plus 10 years professional Linux kernel development experience, or 4 years professional rust experience plus 8 years compiler development experience, stuff like that).
  • zb3 6 days ago |
    If Rust was really that superior, would companies using it not have a competitive advantage in the market?
    • PLenz 6 days ago |
      Languages are fungible at most scales
      • Joel_Mckay 6 days ago |
        Most languages exhibit Isomorphism, and necessarily so...

        People are happy in Ivory towers, and often ignore better high-level llvm compiler options. =3

    • criddell 6 days ago |
      Maybe. The writer notes other technologies that were superior (on some axis) and won second place:

      > But Rust is better in the same way that Betamax was better than VHS, Mastodon is better than Twitter, Dvorak keyboards are better than QWERTY, Esperanto is better than English and Lua is better than Javascript

    • qayxc 6 days ago |
      There's a huge amount of legacy code that cannot be replaced overnight. There's thousands of person-hours invested in such codebases and they need to be maintained. There's also a much greater number of experienced C++ programmers available versus Rust programmers with the same level of experience (especially working experience, not just the language itself), so that's another factor.

      So companies with lots of earning potential in greenfield projects might indeed have a competitive advantage, while it's more difficult for those with products that have a large existing C++ codebase.

    • AlotOfReading 6 days ago |
      How many wildly successful finance firms are running COBOL somewhere on the backend? How many successful healthcare systems are running MUMPS? Bad languages don't seem to kill companies, just make disgruntled developers and bad products.
      • zb3 6 days ago |
        So I should clarify - I was referring to new code. If the old code already works it might not be worth rewriting it.
        • jenadine 6 days ago |
          Old code need maintenance, bugfixes and new features. One does not rewrite their stack from scratch.

          But many companies are definitely writing new projects in rust rather than C++, including Big Tech.

    • hiccuphippo 6 days ago |
      Funny enough, there's a bunch of Javascript tooling for which being written in rust, as opposed to thee one they are replacing written in js itself, is their competitive advantage.
      • zb3 6 days ago |
        Don't you think their actual advantage is that they are compiled to native code?
        • pdimitar 6 days ago |
          Not necessarily. To me the actual advantage is that they are times, if not tens of times, faster than the semi-equivalent JS tool.

          People love to downplay long startup times or longer runtimes ("Who cares if it takes 1s to start?" and "It takes 17s vs. 1s, big deal, you are overreacting!") but it does add up with time and makes people dissociate and stop caring. I've seen it (and it happened to me as well).

    • wvenable 6 days ago |
      That is, unfortunately, not how anything works.
      • zb3 6 days ago |
        Tell me more.. there's a X lange and it's superior in every aspect. Wouldn't new apps be written in that language? Why?
        • wvenable 6 days ago |
          If I created the perfect language tomorrow the very first problem is that absolutely nobody would have any experience in it.

          It would also have no other ecosystem. No books. No tutorials. No mentors. No libraries. No frameworks.

          And even as it got those things, they would remain immature and incomplete for a long time when compared to the ecosystem around languages that are decades old.

          I could also make an operating system that was superior in every way and it would fail because there would be no apps for it.

          • zb3 6 days ago |
            In other words, it wouldn't be superior according to the way I understand it. Learning curve, existing libraries and solutions all matter in this comparison..

            For me it'd have to interact seamlessly with other languages and enable incremental adoption, otherwise you can't swap one with another.

            But you can swap a floppy disk with USB flash drive if the PC has an USB port, so that's what I mean by superior..

            • wvenable 5 days ago |
              Your original premise is flawed; there can never be language that is superior in every aspect. Almost everything is a trade off. A technology that is good for one purpose might be wrong for another and vice-versa. Also a new language will always start with no adoption, no experts, and no libraries so that is also a trade off.

              A language that allows incremental adoption will necessarily be limited by that necessity -- another trade off.

              When USB was new very few computers had USB ports but nearly all computers had floppy drives. Floppy disks were cheap and flash drives were expensive. If your purpose was to share data then using a USB Flash drive at that time was an inferior experience. If you had a lot of data, a writable CD was a much better choice. If there was ever a period that USB drives were supreme for that task, it was brief. With higher speeds and greater adoption, it quickly became much better to use the Internet to exchange data.

            • johnnyanmac 5 days ago |
              >it wouldn't be superior according to the way I understand it.

              Money is the biggest parameter, and it would not make number go up in the short term. Tech stacks are in inherently a long term investment and companies are conservative to do big reworks like that.

    • n144q 6 days ago |
      > have a competitive advantage in the market

      In theory, yes, but there are two problems:

      (1) You need to either hire or train someone to write in Rust, and neither is trivial amount of effort. And at the end of the day, you need to push features out. Let's be real: you can find someone to write JavaScript to do full stack development, anywhere in the world, for a cheap price. Rust? The code may be more robust and easier to maintain in the long run, but it's hard to do that unless you already set up a team for that.

      (2) Most software companies don't actually care that much about the language they use, the tech stack, or their infrastructure in general. Remember there are lots and lots of software companies that are not Google/Meta etc, and they are not at the bleeding edge of have state-of-the-art infrastructure. Saying that as someone working at a company with thousands of developers, and there are millions of old, ugly, almost unmaintainable Perl code in our core infrastructure running right now. From outside, it all looks fine.

  • librasteve 6 days ago |
    goodbye raku, it’s back to perl
  • whatyesaid 6 days ago |
    Rust is slow to develop and prototype in. It's good if you're a big company not the average Joe.

    We need a better C++ ("systems") base language that could have an optional borrow checker or bounded model checker enabled.

    • Philpax 6 days ago |
      If it's optional, people are unlikely to use it, and we'll be back at square one again regarding pervasive memory safety issues.

      That being said, keep an eye on Carbon.

    • devnullbrain 6 days ago |
      If the borrow checker slows you down, the C++ you write instead would just be buggy
      • etyp 6 days ago |
        Safe programs extend beyond those that Rust's borrow checker accepts though. There is more than one way to make a program safe, not all of them would be valid Rust.
        • goku12 6 days ago |
          There are more than one way to achieve safety in Rust. Two more, infact - runtime safety and fully manual (unsafe with some additional work). Runtime safety is a very fast way to overcome the resistance offered by the borrow checker. While it does slowdown the code a little bit, that should be pretty fine for prototyping. A more careful use of runtime checks will still give you a program more performant than in most other languages.
          • dzaima 6 days ago |
            Runtime safety still comes with a good amount of complication source-wise, having to spam RefCell/Arc everywhere, and whatever derefs/.get()s they necessitate, and probably a different approach to passing references. Refactoring either that or unsafe away after being done with prototyping isn't trivial, if even possible without entirely rethinking the approach.
            • goku12 6 days ago |
              Isn't that a bit dramatic? How much extra code or care do you need to implement runtime safety checks? This isn't the first time I hear these sort of arguments either. It gives the impression that a crowd is making up one exaggeration after another to drive the perception that Rust is somehow not suitable for general purpose programming.
              • dzaima 6 days ago |
                It is a bit dramatic, though less so for some approaches to programming. And of course prototyping is very different from general purpose programming.

                With Rust, if you really want the borrow checker to actually never bother you, you really do just have to spam the dynamically-checked wrappers everywhere; when in the groove, having to stop and wrap some existing field (or its holder) and all its usages just to be able to mutate it because you previously didn't think you'd need to is just completely awful if you don't find that "fun".

                Whereas in C, if you want to mutate a thing, you can always do so whenever with no concerns (whereas using unsafe to mutate a field of a &Thing in Rust is just UB, though maybe you can get away with using unoptimized builds for a bit) and deal with previous code that may have been written with the assumption it wouldn't change Later™ (but, importantly, still allowing properly testing the modified thing, and perhaps the entire project). Want to change the lifetime of a thing? Just move where you free it, no need to ever change lifetime args across a dozen functions. And in Java the most anything may take is removing a "final" on a field.

    • AlotOfReading 6 days ago |
      Isn't that just D? No one uses D not because it's a bad language, but because the actual language isn't nearly as important for adoption as the community behind it.
    • rtpg 6 days ago |
      Is C++ easier to prototype in? Of course there's the borrow checker, but I feel like Rust at least shows up with some expressiveness niceties that gets you some productivity wins in the prototyping stage.

      Though really I suppose "comfort with a language " is such a big factor, seeing people really belt out stuff in C is always a bit impressive to me (yeah yeah, bug filled etc)

      • catlifeonmars 6 days ago |
        > Is C++ easier to prototype in?

        Maybe if you’ve already got the toolchain set up and boilerplate templates etc.

      • actionfromafar 6 days ago |
        C forces me to do the barest minimum and avoid prematurely astronaut architect everything. That often makes it faster to prototype in. Not because I can do more. But because I have to reframe the problem so it fits.

        But large codebases in C are tedious to work with and slow to refactor.

    • stephen_g 6 days ago |
      Apple is positioning Swift as this (and are also moving it from Apple's space on Github etc. into its own and gradually trying to build more of a community), so I wonder if it will catch on more. If people are already using it in the app space, it might be able to branch out into other areas.

      Over the last year and a bit they've also been working on strong C++ interop to be able to start using it in their own projects without having to do rewrites, and also better cross-platform and static linking support on Linux which could all make it a lot more attractive.

      (For context, like Rust, Swift is both memory safe and data-race safe)

      • n144q 6 days ago |
        Swift uses garbage collection (I know, arc, but that's still garbage collection), so it more or less is in the same category as Go. And I don't see people choosing Swift over Go any time soon.

        C++ and Rust are a different thing.

        • mikestew 6 days ago |
          Swift uses garbage collection (I know, arc, but that's still garbage collection)

          That’s simply not true, starting with ARC being compile-time and GC being run-time.

          • trealira 5 days ago |
            Reference counting very much incurs a runtime cost; it's not just a compile time abstraction, like borrow-checking in Rust.
    • redman25 6 days ago |
      Rust isn’t too bad if you throw clones everywhere. Otherwise, you might as well use a garbage collected language.
    • dralley 6 days ago |
      Prototype, sure.

      Develop? Debatable. At a certain scale of project, all the static guarantees become quite helpful. And a "prototype" written in Rust is often much closer to production-ready than you might think. Rust makes it easier to see which corners you've been cutting than most languages.

    • linhns 6 days ago |
      > We need a better C++ ("systems") base language that could have an optional borrow checker or bounded model checker enabled.

      Are you describing Rust?

  • fny 6 days ago |
    I deeply appreciate the mood, but when the NSA started pushing memory safety and TRACTOR launched, I doubled down.
    • mattgreenrocks 6 days ago |
      TRACTOR seems like a helluva Hail Mary. The C and C++ abstract machine had so many sharp pointy bits that need to be reified exactly that I find it hard to translate to Rust.

      Whoever wins it (not sure if they’ve announced it yet?) will be doing God’s work but it feels like an enormous undertaking. And I sometimes like these DARPA-hard projects.

  • astonex 6 days ago |
    Just give me a modern C++ like language with fast compilation, easy to pull in packages, and build tooling. Basically Go with no GC.
    • pjmlp 6 days ago |
      Check Odin.
      • joshlemer 6 days ago |
        The language seems to be heavily branding itself as "data-oriented", mentioning it front and center on the website and repo, but never mentions in the docs what makes it data-oriented, or what it even means by that. Is it data-oriented in the Clojure sense, in contrast to "place-oriented"? Or is it data-oriented as in programming with tables of rows, or something else?
    • throwaway2037 6 days ago |
      How is fast compilation possible with C++-like templates? That seems impossible.
      • jayd16 6 days ago |
        So redo the templates.
        • AlotOfReading 6 days ago |
          They did, hence concepts and constexpr. Rust has more powerful versions of both in traits and macros.
          • jayd16 6 days ago |
            Aren't Rust compiles slow as well? I'm suggesting they take a different approach. Are these systems really needed seeing as other languages do without?
            • AlotOfReading 6 days ago |
              Other languages don't do without them, the costs are just worse in Rust (and C++). Go for example consciously tried to avoid shipping generics and was forced to implement them by community pressure. They now pay the same kinds of monomorphization costs as C++ and Rust because the alternatives have greater runtime costs. Go is simply a faster-compiling language overall though and the problem is less noticeable. Macros are similarly ubiquitous in other functional languages, but most of them aren't compiled or meaningfully optimized.

              Rust is complex, highly expressive, and does a lot of optimization. None of that's good for compile times. C++ is even worse because of how awful the template abuse gets and the amount of duplicated code that's fed into the compiler from how #includes work.

      • pjmlp 6 days ago |
        C++ modules, in VC++ and clang/CMake/ninja today.

        Add to the potion, binary libraries and extern templates for the common types.

    • cemdervis 6 days ago |
      Swift
      • vips7L 6 days ago |
        Arc is a GC.
        • tonyedgecombe 5 days ago |
          So is RAII if you squint hard enough.
  • azangru 6 days ago |
    > But Rust is better in the same way that Betamax was better than VHS, Mastodon is better than Twitter, Dvorak keyboards are better than QWERTY, Esperanto is better than English and Lua is better than Javascript

    Esperanto is certainly not better than English; and I really doubt Lua is better than Javascript.

    • david-gpu 6 days ago |
      > Esperanto is certainly not better than English; and I really doubt Lua is better than Javascript

      Doesn't that depend on how one decides to "score" a language? And I think that's what the author is getting at, too.

      • flysand7 6 days ago |
        I caught a different meaning from this entire sentence. I think the author was alluding to the fact that even if you replace a technology with something "better", at the end it doesn't matter, because Most People will keep using Twitter, Most People will keep using QWERTY layout, count all of your acquaintances, I doubt any of them speak Esperanto.

        Well at least the idea comes through, but I don't think it makes sense to argue whether Lua is actually better than JavaScript or not.

        • david-gpu 6 days ago |
          Indeed. If one primarily values certain technical aspects, Beta was "better" than VHS. But if one primarily values popularity, profitability or practicality, then VHS was "better". And so on with the other examples.

          So when we go back to this:

          > Esperanto is certainly not better than English; and I really doubt Lua is better than Javascript

          All I get from it is "I personally have a strong opinion about what makes a language 'better'". Nothing wrong with that, but it's independent from the argument made by TFA. Perhaps I misinterpreted.

      • coldtea 6 days ago |
        >Doesn't that depend on how one decides to "score" a language?

        Not as much, because not all ways of scoring a language are as good either, and in the ways of scoring that matter, English is better than Esperanto.

        • fragmede 6 days ago |
          In terms of not being a bag of special cases, and thus easy to use, Esperanto is better than English. Like, if you were to design a language from first principles, you'd come up with Esperanto. The only problem is the massive inertia English has, which makes it "better". In terms of design, it's absolute trash. But it's what humanity's got. Trying to learn English as a second or third or fifth language is just so difficult.
          • mf_tomb 6 days ago |
            Those special cases are useful or the natural result of speakers coming from other languages. If esperanto were used widely for many years, it would also develop special cases over time. In 200 years, it would be as irregular as english, as it borrowed words and phrases from other languages.
            • D-Coder 5 days ago |
              > If esperanto were used widely for many years, it would also develop special cases over time.

              You've never dealt with Esperantists, I can tell.

              • mf_tomb 5 days ago |
                Actually, it's already happening, without being widely used https://en.wikipedia.org/wiki/Esperanto_vocabulary#Idioms_an...
                • em-bee 2 days ago |
                  those idioms and slang still follow grammar rules though. they are not irregular.

                  also the irregularities in english developed over centuries by contact with other languages in an environment that lacked the normative influence of globalization and modern communication tools.

                  at the time english was also not the defacto language for international communication that it is today. this status is responsible for efforts such as a wikipedia in basic english that makes information easier to approach by non-native speakers.

                  as esperanto was expressly created with the goal of being an international language, any attempts to introduce irregularities will meet a lot more resistance and therefore development of an irregular grammar is unlikely to happen.

          • coldtea 6 days ago |
            >Like, if you were to design a language from first principles, you'd come up with Esperanto

            That's the problem. It's design by commitee instead of evolutionary organic design. It's how cyborgs think people oughta talk.

        • johnnyanmac 5 days ago |
          >not all ways of scoring a language are as good either

          I feel you understand the author' point but still disagree for some reason.

          I'll put the metaphor back to programming. There's programming for quality and programming for financial gain. If your metrics are the latter, then Javascript is the best language. But many people here do think as engineers, and thus there are other qualities that "are not as good" ways to score a language but maximize the ability to deliver a stable product.

    • yyuugg 6 days ago |
      Having worked with Lua and JS professionally for years, Lua is far, far worse than JS.
      • darknavi 5 days ago |
        I love Lua for game dev, but JS works fine and Typescript is awesome.

        I loath 1-based indexes though. Just odd.

    • jszymborski 6 days ago |
      I think maybe they meant it is a better lingua franca than English, which I'm a little more likely to agree with (Esperanto is by no means perfect for this)
    • joshdavham 6 days ago |
      > Esperanto is certainly not better than English

      Agreed. Until Esperanto starts having actual native-speaking communities, I will look at it the same way I look at Klingon or Elvish.

      • dogmatism 6 days ago |
        Well, there are denaskuloj, but aside from that, I don't think languages are adopted into communities to replace other languages based on their merits, but based on socio-religious factors that have nothing to do with the language itself
      • johnnyanmac 5 days ago |
        >Until Esperanto starts having actual native-speaking communities

        that was the point of the OOP, yes. No one cares about quality, but popularity. And OOP feels the same.

    • prmph 6 days ago |
      For me, one major weakness of English is having adjectives appearing before nouns. The more time passes, the more I hate that aspect of English. It messes up all sorts of things. Most other languages don't have this problem.

      Consider that in programming, technical docs, even normal writing, it is almost always better to the most important aspect of a name come first. The adjective-noun order in English makes this awkward all the time.

      • rightbyte 6 days ago |
        You can go for 'Achilles the swift' order if you want though.
      • kstrauser 5 days ago |
        I love its contribution to wordplay. You can write things like “yesterday we sat down to a meal of golden, moist, roast whisky” because the adjectives lead up to a set of expectations about the subject that turn out to be untrue.
  • cedws 6 days ago |
    C and C++ are languages of an era. C++ will be unseated eventually but it will take another decade at the minimum for a new generation of programmers who have used the 'modern' languages from day one to overthrow the incumbents. Then another few decades to rewrite everything.
    • stefanos82 6 days ago |
      > Then another few decades to rewrite everything.

      This will never going to happen for obvious reasons; if it ain't broken, don't fix it!

      Create interoperability with other languages, like what Swift is currently attempting to do, yes; but to completely rewrite an entire project that consists of millions of lines, I don't think so.

      • cedws 6 days ago |
        All code has a lifespan, either because it rots or it becomes irrelevant/unneeded. Existing C++ code will gradually expire and the most important pieces will indeed be rewritten, accelerated by shrinking expertise.
        • davidcbc 6 days ago |
          This may be technically true on a long enough timeline, but COBOL is still the backbone of the financial sector even though companies have dumped millions into attempting to convert it to something new with limited success.
          • cedws 6 days ago |
            For sure, we can debate the timeline, we can debate what language will replace C++. The way I read stefanos82's reply is that they don't believe C++ code will ever be rewritten, which is obviously not true.

            COBOL running the financial sector is a myth in my opinion. There are still companies running aspects of their business on it, but calling it the 'backbone' is an overstatement. If you tallied up lines of code by language in the sector, I would wager COBOL makes up less than 1%.

            • davidcbc 6 days ago |
              The backbone is a minority of the bones in the body too, but without it you're screwed.

              My previous job was at one of the largest investment companies in the world, if the COBOL went away the company would collapse.

              • throwaway2037 6 days ago |
                What company?
          • jamesfinlayson 6 days ago |
            Yep, I've worked for two companies where Fortran handles all of a major department's business - in both cases it was buried deep under layers of more modern stuff... but it was hugely risky to change it so it stayed.
            • goku12 6 days ago |
              While the argument is generally correct, Fortran and COBOL aren't in the same league. Fortran is still being upgraded and has some use cases that are hard to achieve in another language. I've seen the Rust subreddit recommending use of old Fortran code with Rust, rather than rewriting it in Rust. Unlike most other languages like C++ and Rust, Fortran kept its scope mostly limited to numerical processing - making it still one of the best solutions to code highly parallel numerical algorithms in.

              Fortran isn't surviving just because nobody wants to rewrite Fortran code. Unless you're talking about Fortran77 code.

              • jamesfinlayson 6 days ago |
                Oh agreed - Fortran is much more alive than COBOL - but in both cases I think the Fortran had outstayed its welcome. I never saw one of the codebases but the one I did see was Fortran 77 I believe, and there were a lot of gotos and labels.
          • throwaway2037 6 days ago |

                > COBOL is still the backbone of the financial sector
            
            Really? Is that commercial banks or ibanks? I think this is a myth.
      • pdimitar 6 days ago |
        > if it ain't broken, don't fix it!

        All the CVEs found in the last several years would like a word with you.

        • AnimalMuppet 6 days ago |
          All the code rewrites from the last several decades would like a word in return.

          A bunch of those rewrites managed to miss critical things that were encoded in the existing logic in non-obvious ways. They broke a bunch of workflows that way.

          A bunch of others went wildly over-budget and wound up getting shut down before they produced anything usable.

          But surely the documentation will tell you all the use cases, and the expected inputs and outputs, right? Right? Oh, you don't have documentation like that? Yeah, then it's used in ways you don't know about, and your rewrite is likely to break them. (And that's true even if you do have such documentation, because it's incomplete.)

          Rewrites are hard. They're deceptively hard. They look like they should be easy, and they very much are not.

          "But this time we're going to use Rust!" Yeah, but the thing that makes rewrites so hard was never the language, so using Rust isn't going to actually fix it.

          • 8fingerlouie 6 days ago |
            > Rewrites are hard. They're deceptively hard. They look like they should be easy, and they very much are not.

            This is a major reason why so many financial/healthcare/insurance/government institutions still runs COBOL software on mainframes. Many times, you're looking at what is essentially a monolith (in many parts, but everything is connected in some way) that was 50+ years in the making.

            Rewriting it is a huge and extremely expensive task, and had it not been because COBOL is considered a "bad language" by the young people, and thereby causing problems with recruitment, i'm guesssing the mainframe would be around for 100+ years to come.

            As it is now, these companies are forced to migrate away from COBOL, and most companies in the financial sector would probably go for Java, which is posed to becomming the new COBOL.

            If you start a career today as a young COBOL programmer, you will most likely have a high salary (for your career) for your entire work life.

            The mainframe is certainly on the way out, but it's a big beast to move, and most "estimates" i hear from financial institutions is that they plan to migrate away in 10-30 years, and predicting what happens in 30 years is kinda pointless. Suffice to say that the Mainframe and COBOL is probably here for another 30-50 years.

          • pdimitar 6 days ago |
            I agree with your take and want to add that "we want less CVEs" and "we want meaningful rewrites" are not necessarily at odds with each other. We can have both.

            I'll also note that efforts like rewriting a lot of UNIX userland in Rust also introduces the benefits of rewrites -- you have to think super hard if you want that obscure command-line switch that only works in X way if another switch has another value or it does the thing Y if two other switches have these other values. I forgot the examples but that's what happened there: people figured "we will not implement command switches X and Y" and lo and behold, people using those tools never even noticed, myself included.

            So, rewrites have positives as well. And not everyone doing rewrites is clueless.

            • AnimalMuppet 5 days ago |
              I didn't say that those who do rewrites are clueless. I said that rewrites are really hard - far harder than most people expect.

              That weird switch behavior? I almost guarantee that someone, somwhere, some when depended on that behavior. Either they no longer use the switch behavior or they no longer use the tool, or they just don't use the rewritten version. But how do you know that? In the best case, the code would have a comment: "This code is to simulate Berkeley 3 behavior for users porting from..." But even that doesn't tell you whether anybody today still depends on it.

              I mean, it could be a valid strategy to not rewrite weird behaviors - any of them - and see what breaks, and then only add the ones that are still needed. The upside is a much cleaner rewrite, with fewer (and, hopefully, better documented) weird behaviors. The downside is that you have to break stuff temporarily to find out. (Hopefully you break it in live staging rather than in production...)

          • johnnyanmac 5 days ago |
            >Rewrites are hard. They're deceptively hard. They look like they should be easy, and they very much are not.

            well yeah, when we switch to an industry that values poaching over retention, you're going to have way too many cases of landmines whose knowledge was held by an employee who left or got laid off 4+ years ago. That makes them much harder than they need to be.

            A close 2nd is indeed that documentation is the least valued business item out there. Employees who want to "grow" (financially) are practically encouraged to simply keep moving instead of ensuring future knowledge is spread.

      • leptons 6 days ago |
        Rewriting existing code in another language might be one thing LLMs can actually get good at. I wouldn't doubt if they could convert complex projects someday, without too much error or hassle.
      • johnnyanmac 5 days ago |
        I argue it's very broken. Business has simply made the decision to throw money at the symptoms rather than the cause. Maybe that is cheaper (I doubt it), but both approaches aren't going to be cheap, so what you gonna do?

        Apple is a rare exception, even if their incentives are perverse.

    • aninteger 6 days ago |
      At first I thought you were serious, but I can appreciate a good attitude with sarcasm.
    • nightowl_games 6 days ago |
      "Few decades".

      Im thinking more like at least a century.

      • timbit42 5 days ago |
        It will be faster than you think. At some point a big hack is going to occur and governments are going to step in and legislate to ensure it never happens again and we're going to have to rewrite everything written in C/C++ in safer languages. Rust and Ada are safe but I'm hoping something better comes along before the government steps in.
        • otabdeveloper4 3 days ago |
          Literally never in the history of computing has a "big hack" ever happened because of out-of-bounds memory use.

          It's always a misconfigured default.

    • jayd16 6 days ago |
      C++ is really long in the tooth from a language design and tooling perspective. In that sense its due for disruption. So yes, it seems like C++ is on the way out.

      On the other hand, Rust is not a strict upgrade. In game dev, runtime performance and iteration time are priorities. Safety is secondary. Rust isn't gaining that much ground in games because Rust appears to be unnecessarily burdensome. Async is especially useful for UI and game-thread style programming and that seems to be a weak spot of Rust as well.

      There's still room for something besides Rust to steal C++ market share.

    • otabdeveloper4 3 days ago |
      Modern C++ is a lot more "modern" than modern Rust.
  • catlifeonmars 6 days ago |
    IMO choice of language is a design decision. Weighing the pros and cons of a particular language without specifying the use case and project requirements seems ass backwards to me.

    To illustrate, consider if we rewrite the title: “Goodbye, Phillips head screwdrivers, I wish you success, but I’m back to flat heads”. Seems silly, doesn’t it?

    To be fair though, I imagine this article is written as a reaction to Rust proponents making similar arguments.

    • pdimitar 6 days ago |
      > Weighing the pros and cons of a particular language without specifying the use case and project requirements seems ass backwards to me.

      Practically every company I talked with about Rust positions named very good reasons to move to it.

      N=1 and all, yup, but your opinion is N=1 as well.

      There are several very engineering-sound reasons to choose Rust and people are aware of them and are appealing to them when considering it.

    • dartharva 6 days ago |
      Most regular hard-and-fast organizations outside of the SV bubble don't subscribe to this. They will rather tweak design around to match whatever labor pool is available (e.g. Java for most code farms in the past decades).
    • fargle 5 days ago |
      > To illustrate, consider if we rewrite the title: “Goodbye, Phillips head screwdrivers, I wish you success, but I’m back to flat heads”. Seems silly, doesn’t it?

      you could just as easily say "goodbye allen, but i'm going to torx" or any <insert-things-here> pair. it's only silly if both of the interlocutors happen to agree on the relative merits and that the difference is large enough to be called "silly".

      the problem is responses like that amplify the vibes of "well, it's clear that everyone agrees that rust/phillips is just objectively better in all ways". i don't think this discussion would be occurring if that were true.

      the right thing is to drill down into the specific trades, and i'm scratching the surface.

      oh, you have a greenfield project where manual memory management in C or C++ is burdensome and error prone and it's kicking your butt. perhaps rust might be a good fit?

      or perhaps you have a problem where you need to maximize the code interchange with a few million lines of existing code and a large set of existing experienced developers? well, maybe not then...

    • johnnyanmac 5 days ago |
      > I imagine this article is written as a reaction to Rust proponents making similar arguments.

      It was even simpler in that they aren't confident of mass adoption. I'm unsure if that's Rust's fault (and honestly, finding any job in this market is a small miracle), but it's a valid factor to not want to be stuck to something forever niche.

  • rezmason 6 days ago |
    I don't think the goal of Rust has to be to unseat C++, just like the goal of Macs is no longer to unseat Windows. Here are some nobler goals:

    * be a language that users and non-users believe is better

    * be a language that people learn things in before entering the industry

    * be a language for solving important problems, if not every problem

    * if a billionaire buys C++ and makes it terrible, be an alternative

    Edit: unrelated— I really struggle with writing lists on HN. :-(

    • pdimitar 6 days ago |
      > I don't think the goal of Rust has to be to unseat C++

      Agreed, but it's also true at the same time that projects you would choose C++ for are also very legitimate candidates for Rust. So they are competing, even if that's not the goal of both communities.

      > be a language that users and non-users believe is better

      Well, lately one person that contributes Rust to the Linux kernel got attacked with ridiculous screaming like "you will never force us to use Rust!" -- and he never did that. So he (or was he somebody else? can't remember now) basically stepped down because it turned out that nobody could challenge his technical work so they started attacking him on every other platform. Inevitably, you get enough of this and want to be left alone. Sad... but that's humans apparently.

      As for non-users, even more difficult. But having studies like those of Microsoft and Google that clearly demonstrate that between 60% to 75% of all CVEs are due to memory unsafety, helps a lot.

      > be a language that people learn things in before entering the industry

      That one is needlessly difficult because a lot of professors are stuck in the early 2000s. Read: they only know Python or JS or Java or C# and they will never learn anything else. Young minds are impressionable so these fossils only perpetuate the problem of indoctrinating people and preventing them from utilizing the innovations in the PL area.

      > be a language for solving important problems, if not every problem

      Too generic to work, I am afraid. :/

      You'll find people on HN arguing that you can solve every problem in the CS area just fine with Brainfuck and that we are all brainless lemmings for not seeing the light. Now replace that language with literally every other and you'll still find people saying the exact same thing...

      > if a billionaire buys C++ and makes it terrible, be an alternative

      That one is not so bad IMO, be it Rust or any other language really. If this happens the community will still push to do things like they want to, ultimately resulting in a fork if the buyer is stubborn enough.

      No money in the world can make people suddenly write terrible code if they are passionate about doing the opposite.

      • rezmason 6 days ago |
        > You'll find people on HN arguing

        No I won't!!

        Sorry.

  • tschellenbach 6 days ago |
    come to the land of no drama, no changes and always productive Go :)
    • tail_exchange 6 days ago |
      I love Go, but they are not really interchangeable. If you do systems programming and you need a very low-level language, Go is not a good alternative. Though if we are talking about more high-level applications like web servers, then I totally agree.
      • TylerE 6 days ago |
        I could argue that at least 90% of software does t need a very low level language.
        • goku12 6 days ago |
          That 90% is moot if you're trying to replace C++. Rust is a better fit than Go. Granted that Go iteration times are better. But Rust is by no means just a low level language. The abstractions in Rust are fantastic. They feel very ergonomic and high level. I think the real problem with Rust is that many people can't come to terms with the borrow checker. It's whole another skill set to know what the BC is trying to achieve, how to solve BC errors and the alternatives available when you can't. Once you know that though, Rust feels very productive - even extremely helpful in resolving problems in advance.
          • TylerE 6 days ago |
            Believe it or not it’s possible, even desirable, to use an appropriate solution to the problem at hand, rather than treating everything as a nail just because you’re find if your hammer.
            • goku12 6 days ago |
              That argument is selectively and rather condescendingly applied to Rust far too often. In this particular context (both the parent comment and the article), that criticism should apply more to Go than to Rust. Besides, I don't understand the argument of asking everyone to learn a dozen different languages for an 'appropriate solution at hand' when the differences between them don't justify such effort. I don't dislike Go. But it's disingenuous to argue that Rust shouldn't be used where Go can be.
              • arccy 6 days ago |
                perhaps it's applied to rust more often because rust evangelists are... louder.
                • goku12 5 days ago |
                  Another misused and overused criticism. I don't see people forcing Rust as much as those who make unsubstantiated claims of Rust being the inappropriate for some use. It's that group that overwhelmingly uses this particular falsehood.
          • dgfitz 5 days ago |
            Is there a tool I can only write in rust and not python?

            Why do we throw around “low-level” like it meant anything besides “not JavaScript”… or is that actually the definition?

    • pdimitar 6 days ago |
      I have written no less than 20 hobby mini-projects with Go but it's hardly an alternative to Rust. They serve fairly different purposes. Sure you can write almost any project X with either language but most of the time Go or Rust would be a bad fit for project X and a near-perfect fit for project Y.
      • galleywest200 6 days ago |
        I was thinking about this earlier today. I decided, albeit probably in a manner way too naiive... use Go if you want to write an app and use Rust if you want to write a program.
        • pdimitar 6 days ago |
          I don't have your context so I'm not sure what you mean but in general, it's rather easy to write a web backend with Go, yes. And Rust is a very good fit for many types of servers.
      • stackedinserter 6 days ago |
        What kind of projects that you can realistically be involved in, fit Rust but not Go?
        • pdimitar 6 days ago |
          Highly loaded network backbones come to mind. At one point almost every GC language starts to struggle.

          I've written Rust services in financial companies and it maintained stable memory footprint and near-nonexistent higher P95 latency... for months without restarts.

          • throwaway2037 6 days ago |
            Your second paragraph: I expect that this must be a microscopic part of their total source code footprint. Is the software used for (equity/futures/options) exchange connectivity? (Oh no, please don't tell me "crypto".) I cannot think of anything else that would warrant the investment in the 2020s.
            • pdimitar 6 days ago |
              Depends what you mean by microscopic. If the entire project is a traffic forwarder, proxy, firewall-like, dispatcher / router etc. then that's the heart of the project and having the performance benefits of Rust there is absolutely crucial.

              It was not only crypto. We're also talking telecom nodes and there are a lot of different protocols and needs around them (I was surprised how many, and some telecoms are finally waking up to the 21st century and started utilizing proper containerization and virtual networks to enforce compartmentalization / isolation / security).

              On the broader topic: nowadays I default to Golang due to its better productivity and shorter dev iteration cycles, for what it's worth. However, there are projects where picking Golang over Rust would be irresponsible. Not the majority of all projects out there, absolutely, but there is an important subset that cannot be ignored.

              PERSONAL NOTE: Sadly most of us will never work on those, and I am trying hard lately to change that for myself. Sick of web dev, I started hating it so much that I can do it extremely efficiently and almost with my eyes closed but I still can't forever ignore my needs; we are creative creatures and forcing ourselves to be assembly line workers only leads to spiritual and mental health death.

    • __turbobrew__ 6 days ago |
      I can tell you that the website for a very large company with billions in revenue has gone down several times due to nil pointer errors in golang.

      I love golang and it is my language of choice but the type system still lets you shoot your foot off sometimes.

    • neonsunset 6 days ago |
      Besides few areas, Go is a backwards language. I'd rather use F# or Kotlin. And for performance with GC escape hatch it's borderline impossible to beat C#.
  • PeterWhittaker 6 days ago |
    Another commenter mentioned the NSA and safe languages, which is what prompted our move...

    ...and I have to say, Rust is fantastic. I was reading the O'Reilly book when I was doing some gnarly three-star C work and I kept thinking that it would likely be far easier and safer in Rust.

    We're now at the point where all new work is Rust and that gnarly, performant AF piece of C that just flies will be replaced with a simpler, safer Rust version.

    Another commenter mentioned speed of prototyping. That was a concern for me, too, but so far real life has shown me the opposite: prototyping is only slightly slower, mostly because I am having to learn various Crates instead of using system calls and their libc variants I've known for years, but incremental debelopment from proto to poc to mvp to product is faster because there is far less dumb at each step: if it built, it is safe(r) to extend.

    Maybe it is because so much of what we do is low level high performance system programming, I dunno, but, after 37 years, I may soon have invoked a C compiler for the last time.

  • joshdavham 6 days ago |
    > the problem with Rust is that it just doesn't have critical mass and, frankly, I don't think it will ever have

    Let’s check back in a couple of years!

    • goku12 6 days ago |
      I think it already has. It just isn't very visible to us. Rust becomes easy (especially the borrow checker) once you know how the hardware works. This is unfortunately true for even non-system programming in Rust. However, those who deal with hardware - OS devs, web engine devs, DB engine devs, etc - can see the problem and appreciate what Rust offers. That's why we see big companies like Microsoft, Google, Amazon and even Apple adopt Rust quickly. It's just not visible to us on the surface.
  • npalli 6 days ago |
    I wonder how much of this love of Rust stems from the fact that he actually didn't have a full time job programming in Rust. When one starts off doing hobby projects in Rust the experience can be very pleasant thanks to cargo (btw, it is a bit puzzling that vcpkg is not adopted more broadly in C++ land since the gap from cargo is not that bad).

    However, once you get a job writing programs and find out you need to quickly prototype, refactor the code or make changes under a strict deadline, not good, it quite literally is the worst language to make large scale updates beating even C++. This is not counting the other memory safe languages (golang, C#, Java, Kotlin, etc..) which is where you should first target.

    • Tuna-Fish 6 days ago |
      My experience is the exact opposite. Rust is slow for the initial programming, but great for making changes in, because the type system holds your hand and makes sure your changes are sound.
    • bryanlarsen 6 days ago |
      The disadvantage of doing a big refactor in Rust is that you can't do a partial refactor -- it won't compile until you've fixed everything.

      The advantage of doing a big refactor in Rust is that you can't do a partial refactor -- it won't compile until you've fixed everything.

      • echelon 6 days ago |
        Why would you want a refactor into a broken state?

        You always need to figure out how much you're going to bite off with each refactor. It's usually possible to do things incrementally.

        • zsyllepsis 6 days ago |
          I don’t think that’s what the parent was saying.

          There are cases when refactoring Rust code where it’s possible to hit limits in the compiler related to e.g. lifetime inference. When these limits are hit, simple straightforward refactorings that are perfectly safe become more complicated - suddenly you’re forced to manually annotate lifetimes, and to thread those lifetimes through function calls, and…

          And your small, incremental refactor suddenly isn’t. It doesn’t happen all that often, and they’re working to reduce how often users run into these challenges, but a number of cases like this still exist. And when you run into them it can be a frustrating experience.

          • estebank 6 days ago |
            Personally I'm convinced that the solution to that is not for the language to be more implicit but rather to make tooling for refactoring more front and center. A task for "add a lifetime to this struct everywhere it's mentioned" is already catered to by modifying the original type and then applying rustfix, but more advanced but relatively common changes should also be mechanized away. The annotations are there not only for the benefit of the compiler but also the developers.
        • jayd16 6 days ago |
          You might want to test some optimization or refactor without crossing all the Ts. Lost of reasons you'd want to quickly iterate without doing the maximum amount of work needed upfront.
    • brson 6 days ago |
      Rust was specifically designed to be refactorable and in my experience it is. It was part of the dogfooding process of building Rust in Rust - lots of changes to the language, lots of changes to the compiler, lots of churn. Rust's strong type system means you can refactor and be confident that programs continue to work.
    • lvkv 6 days ago |
      > it quite literally is the worst language to make large scale updates beating even C++

      Having worked in both C++ and Rust codebases professionally, my experience has been the complete opposite. I have to be extremely cautious when making changes to C++ codebases, (especially async ones) and it’s always a huge time sink trying to just get the damn thing and its tests compiled. Rust’s compiler and tooling, on the other hand, allow me to make high-pressure changes much more confidently. It’s not perfect, but I’ll take it over the average C++ project every time

      • echelon 6 days ago |
        Rust is the easiest language I've ever made refactors in. This article is nonsense.

        I've got a massive multi-binary monorepo and it's so easy to make sweeping refactors to core libraries that impact all build targets.

        I can't fathom doing this in C++, or worse, a dynamic language.

    • pkulak 6 days ago |
      I use Kotlin all day at work and still think it’s a wonderful language.

      I never use Rust at work and also think it’s a wonderful language. Rust is really just a fun language to write apps in. Is it okay for us to admit that yet?

      • lmm 6 days ago |
        Funnily enough I read the article and thought of Scala, which I love but can no longer find a job doing - and can't help thinking it's in large part due to FUD spread by the Kotlin people.
        • vips7L 6 days ago |
          I’ve casually used Scala at work and home over the past 5 years. I mostly think this is because of the community and also the tooling and libraries.

          WRT the community the functional zealots have pushed out everyone that doesn’t align to their ideology. Everyone that just wanted a better Java has moved on to Kotlin or back to modern Java.

          WRT the tooling: scalac and sbt are so slow it’s painful and even IntelliJ can’t figure out what’s going on in Scala sometimes.

          WRT libraries: every single time I have to upgrade play or the scala version there is a breaking change that either forces me to refactor or is undocumented and screws me at runtime.

          So mostly at least for me, I’ve been burned by the language too many times to start a new project in it, especially at work where it will be long lived and I’ll eventually have to upgrade things.

      • gtani 5 days ago |
        Kotlin's ex-lead posted a nice graph of prog languages, the axes being immutable encouraged vs not and 20th vs 21st century. Unfortunately paywalled but the cluster in lower right, immutable by default/21st century (swift, rust, scala, kotlin, f#), is a really nice group of languages.

        Come to think of it, the 21st century/mutable by default is a nice group also: groovy, C#, golang, TS, Dart and Bright's D.

        https://elizarov.medium.com/immutability-we-can-afford-10c0d...

        blurred scan: https://www.joyk.com/dig/detail/1595957460688776

    • Maxatar 6 days ago |
      Refactoring C++ is an absolute nightmare due to templates and overloading. If you rename a function for example, tools can't propagate that change through a template because there's no way to know if that template is only ever used to call that particular function, and not some other function that happens to share the same name (some overload).

      Another way to think of it is that in C++, templates are dynamically typed, and so templates suffer from all of the same refactoring problems that dynamically typed languages do.

      In Rust that problem doesn't exist, there is no function overloading and generics are "statically-typed" via traits, so you can factor code that resides within generics just as you would refactor any other code and it all just works.

      • tcfhgj 6 days ago |
        You probably are looking for duck typing
    • Buttons840 6 days ago |
      > you need to quickly prototype, refactor the code or make changes under a strict deadline, not good

      How many projects like this shouldn't be written in C++ in the first place? C++ isn't automatically faster than Java, and with the level of care you're describing ("strict deadlines, just get it done") you're unlikely to realize the advantage of C++.

      • zozbot234 6 days ago |
        Rust is a lot better at quick prototyping than C++. There is a specific idiom to writing prototype "throwaway" code in Rust though, where you .clone() and use RefCell<> and Rc<> a lot more than you normally would (not to mention really niche features like Any). The advantage is that this boilerplate guides you when refactoring the code for better reliability and performance later on.
    • saghm 6 days ago |
      I'm not sure what's happened on the Rust projects you've worked on professionally, but having used Rust for over nine years now personally and about five years professionally, every experience I've had trying to refactor large projects in Go, C++, Python, and Ruby at work has been strictly worse than even my worst experience having to do so in Rust. Following the compiler errors makes it super easy to follow a chain of cascading changes from needing to change something that gets used elsewhere, which combined with the usual strategy of using the test suite to detect regressions makes it as easy as I could ever imagine. I've often had the experience where I've done large refactors that touch dozens of files and thousands of lines of changes where the tests pass immediately after finishing the changes to get it to compile, and in the refactors at least that size (including ones larger than that where it isn't as cinnamon to where that doesn't happen as often), the remaining work to fix things beyond stuff the compiler can catch is still much smaller than I've had to deal with in other languages.

      Obviously, some amount of this is due to my own level of comfort in Rust and not specific to the language, but even if I accepted your premise that Rust is horrendous for large changes, that still would mean that being comfortable with a language can easily make up for any inherent issues with refactoring due to the language itself. If you strongly dislike working on large Rust codebases, I agree that it's probably better to avoid trying to use it professionally, but my experience is so radically different from what you describe that I have trouble believing that this is due to Rust being objectively unfit for large refactors to the extent that you describe.

    • efficax 6 days ago |
      You hear this about refactoring a lot and I don't get it. I've done several multi-thousand line refactors of a 500k line rust codebase in the past few years, and it's absolutely fantastic for this task. The type system guides you along, and once the thing compiles, it almost always works exactly as you intended it to. the "quick prototyping" languages like say python are a nightmare to do large refactors in, in my experience. at least if you don't want type system timebombs lurking in infrequently executed corner cases.
    • ribadeo 6 days ago |
      Rust is one of the easiest languages for code refactoring, in my experience: the compiler amd clippy tell me everything i forgot to do. Just literally doing what clippy suggests often gets it compiled.
  • ksec 6 days ago |
    >Rust is a superior technology to C++....it disciplines you to do the things the right way.

    >But Rust is better in the same way that Betamax was better than VHS, Mastodon is better than Twitter, Dvorak keyboards are better than QWERTY, Esperanto is better than English and Lua is better than Javascript: in communication technologies, adoption and critical mass are 90% of the game and the other 10% are bikeshedding, at best. And programming languages are a communication technology, they're means to communicate ideas to other programmers.

    Love this. May be I should repost this every time there is an argument about Rust. And to expand on that, in communication technology, the one easier to use is going to get wider spread / adoption. And while there were never much hype around Go, I think it is a very good example.

    But a lot of Rust [1] ideas are now being polished and used elsewhere like Swift. I am sure we will continue to be experimented in other languages and real world to test whether the trade off is worthwhile.

    [1] ( ok may be Cyclone or something earlier in case someone wants to nitpick )

    • synergy20 6 days ago |
      Golang is not much more widely used comparing to rust? both are 17+ years old and they're around 2% of the market.
      • serbuvlad 6 days ago |
        I think a question that must be asked is "what market?" Go is a very niche language in it's application: it is ubiquitous in the Docker/Kubernetes DevOps world. It's also successful as an alternative to Node in the server/micro services world. And there are many CLI tools written in it (but CLI tools can be written in any language whether or not it has critical mass - there are popular ones even in Haskell!).

        Excluding CLI, Go's use cases virtually did not exist when Go was created. So Go was "the right language at the right time" to grow up with it's niches (decent performance, easy to learn, easy to reuse library code, easy to deploy, easy concurrency). It is virtually non-existent anywhere else.

        On the other hand, Rust competes in exactly the same high-performance/low-overhead space that C++ dominates. Because of Rust's complexity, it is very unlikely that it can compete anywhere else. Rust must displace C++, or at least be a viable alternative to it.

        • alfiedotwtf 6 days ago |
          > Because of Rust’s complexity

          I would argue there is 2 types of complexities here:

          1. Complexities when developing (Rust) 2. Complexities once running in production (C++)

          I’d much much prefer to have errors and frustrations developing than users dropping out of the sky at 40,000ft

          • dartos 6 days ago |
            The issue is that for all rusts complexities, it can still have production issues.
            • bennettnate5 6 days ago |
              ... and for all of C++'s perceived simplicity compared to Rust, it can still have compilation issues (looking at the compiler errors output by template classes can be a downright nightmare)
              • dartos 5 days ago |
                For sure.

                But C++ devs aren’t trying to convince rust devs to change their stack.

                • alfiedotwtf 3 days ago |
                  But I can guarantee C++ developers are trying to convince the world that C++ is safe enough for everyone
                  • dartos 2 days ago |
                    Can you?

                    I’ve never heard that from a C++ dev.

                    I don’t think any C++ dev worth talking about thinks that C++ is particularly safe, just that (modern) C++ has plenty of powerful safety features. (Like smart pointers. Analogous to rust’s Rc and Arc)

                    So much so that it approaches rust’s safety promises in the most common cases.

                    In what I’ve seen, C++ devs are largely unconvinced that rust is more safe than modern C++ in the most common cases, but rust has a much higher complexity cost, especially when integrating with C code.

                    It’s really hard to convince hardcore C and C++ devs to use rust, because most of the touted features are seen as fixes for skill issues. Not because they believe that rust is not safer.

        • kstrauser 6 days ago |
          I wrote a BBS in Rust. It need sleep neither high performance nor low overhead, but it was a delight to write. For example, the compiler error messages are so detailed and explanatory that I learned a lot of the language from it telling me what I was doing wrong and offering suggestions.

          I would’ve written it in Python a year ago. Now I wrote it in Rust because it was genuinely fun and the results came out nicely.

          I have zero interest, none, nada, in C++. (Readers: please don’t try to win me over. I know more about the subject than you might think and it’s an informed opinion.) For me, Rust doesn’t compete with C++ at all. It’s probably replacing my Python coding more than anything else. The output looks and feels quite Pythonic, but with strict types and AOT compilation to native code. I’m loving it.

          • jjav 6 days ago |
            > I wrote a BBS in Rust.

            A BBS? Does this have a different meaning now than in 1986? Where do I dial up to it?

          • crabsand 5 days ago |
            This is my experience as well. I wrote Telegram bots in Python and Go for myself, they had weird bugs difficult to debug. Then I wrote it in Rust and it works. I don't have to go back every three weeks to reset the server. Would I write it in C++? No way.
        • binary132 6 days ago |
          What do you mean when you say “Go’s usecases did not exist”? It was invented to write concurrent servers in that would have readable, performant implementations suitable for use across teams, to make code review faster and better, to displace C++, and to prove that certain design principles from Dis / Plan9 were superior to those in Java. I’m not really clear how those usecases did not exist at the time. If you mean “Go is for scheduling containers”, you are wrong, but just because one popular application exists that doesn’t imply that is “what it’s for”.
          • glonq 5 days ago |
            I inherited a project that uses Go for an industrial control system. It needs to manage valves and pumps and sensors in a performant and accurate and reliable manner, and that's what the developer (an electrical engineer) chose. FWIW the system has been in production for a couple years and works splendidly.

            The me of yesteryear probably would have developed such a thing in C++. In an alternate universe, there's a version of me that learned Rust 5-10 years ago and would have chosen that.

            • zozbot234 5 days ago |
              > an industrial control system. It needs to manage valves and pumps and sensors in a performant and accurate and reliable manner

              How does it deal with GC pauses? Wouldn't they introduce unacceptable jitter for this kind of application?

              Anyway, it's relatively straightforward to rewrite from Go to Rust if you aren't doing things that essentially rely on GC (which is quite rare).

              • glonq 5 days ago |
                A PLC controller deals with anything that requires tight timing, so the Go portion is mostly higher-level control of the system and states.
                • AstralStorm 4 days ago |
                  So only high level non-safety-critical code, I see.

                  I hope someone properly checked that no safety properties depend on Go there. I bet nobody actually did so...

              • binary132 5 days ago |
                Go’s GC is pretty snappy these days, but I don’t think it’s that snappy. :)
      • zozbot234 6 days ago |
        Rust is not "17+ years old" in any relevant sense. Rust 1.0 only came out in 2015, and the first genuinely usable version arguably was only in late 2018 after non-lexical lifetimes (NLL) were added. Golang is a lot older than Rust, practically speaking.
    • BWStearns 6 days ago |
      I largely agree with the "programming languages are a communication technology [thus critical mass is critical]" bit, we spend more time reading and explaining code than we do writing it. That's why I'm really hopeful for Rust web frameworks like Loco to get to mainstream-ish.

      There are just _so goddamn many_ webdevs that a reasonably popular web framework can bootstrap a language out of the mid-popularity uncanny valley. On the flipside, a lot of webdevs are interested in Rust, but aren't really personally set up to do some embedded or systems stuff, so the activation energy for a given developer getting into it remains slightly higher than other languages.

    • michaelmrose 6 days ago |
      Beta wasn't better. VHS matched broadcast quality for less money and substantially more runtime per tape.

      Dvorak isn't particularly better because typing speed isn't worth optimizing for if you are good enough and the difference if any is small.

      Lua isn't better than js if it needs to run in the browser natively.

      • ranger_danger 6 days ago |
        As with most things, I think that not only is "better" subjective, but such dogmatism is a sign that you are not considering that other relevant perspectives or context may exist that can disagree with you. I think true intelligence by definition requires humility and realizing that we can't know everything, there are things we don't know that we don't know, and the world is not so black and white.
        • michaelmrose 5 days ago |
          Good point. At the cost of relearning typing some folks may increase their speed but its not easy to determine if they would have won similar gains spending time improving habits with qwerty.

          That said its nearly irrelevant because for most jobs typing speed isn't a limiting factor for those with average typing speed for proficient users.

      • dismalaf 6 days ago |
        > Dvorak isn't particularly better because typing speed isn't worth optimizing for if you are good enough

        Is Dvorak even quicker? I tried learning it and found some quirks, for example, lots of English words end in "ght" (thought, bought, draught, taught, etc...) which is extremely awkward to type on a Dvorak layout (you need to strike all three with one finger whereas on QWERTY it's split between both hands so you can alternate).

        I agree with your point though. I type 80+ WPM on QWERTY with no maintenance and honestly, I type way faster than I can even think about what to type (especially for programming). Now that my college essay days are way behind me, I don't think it even matters.

    • FpUser 6 days ago |
      >"Rust is a superior technology to C++....it disciplines you to do the things the right way."

      It is not. The only thing it disciplines one to do is to bend them to confines of particular safety model. And Rust creators do not have the ultimate authority to say what is the right way anyways. No one does. There are multiple concepts fitting different situations. Rust ignores many. As a general language it looks way too opinionated to me.

      • macgyverismo 6 days ago |
        This is what keeps tripping me up, it is very difficult to be both general and not opinionated. C++ is general, you can use it however you want. Especially in many unsafe ways. Like it or not, this is great news for a general low-level language. A language that tells me how to build, where my files should live and what tools I am to use may be a great user experience, it is not very general. Still not sure what to make of this and where I land on this.
        • FpUser 5 days ago |
          >"Like it or not,"

          I do not give a flying fuck. Language is a tool. I work with many languages. If clients wants language XYZ then XYZ it is. My private opinion does not matter in this case

          • johnnyanmac 5 days ago |
            >If clients wants language XYZ then XYZ it is.

            I don't care how much you pay me (well, not in a practical sense), I'm not going to bash a bunch of screws in with a hammer. In my industry, the languages and tools do in fact matter and impact the quality of the project. It's hard enough as is without some unreasonable clients saying "oh yeah, can you make this in powerpoint?"

            • FpUser 5 days ago |
              >"I'm not going to bash a bunch of screws in with a hammer."

              My clients are not that dumb.

              • johnnyanmac 5 days ago |
                I'm exaggerating with that metaphor, but it's honestly not as much as I'd wish. I envy your clients. But I'm not too surprised, either. That's just a result of my domain, sadly.
      • zozbot234 6 days ago |
        > Rust ignores many [safety models]. As a general language it looks way too opinionated to me.

        I'd like to see some actual examples of this, and I assume many Rust devs would react the same way. In practice, most proposed "safety models" that Rust complains about don't really work when considering that code must be enabled to interact not just within a single module but rather across modules. This is where Rust nudges developers to make the right choices for successful programming "in the large", while still providing the "unsafe" featureset for safety assurances within a single, self-contained context.

        • FpUser 5 days ago |
          > Rust ignores many [safety models]

          ...

          >I'd like to see some actual examples

          When I said opinionated and ignores I did not mean safety models. I meant programming concepts like OOP for example. And do not tell me that it is not needed, wrong, etc. It is totally fine and useful for some situations and not so much for others. Developer should have a choice.

      • johnnyanmac 5 days ago |
        >Rust creators do not have the ultimate authority to say what is the right way anyways. No one does.

        If you feel that way, you are free to take the reigns and put unsafe blocks everywhere. Languages by design need to be opinionated (even stuff like machine language), and most of them do not let you say "it's cool, I know what I am doing here" to begin with.

    • carlmr 6 days ago |
      >the one easier to use is going to get wider spread / adoption

      Between Rust and C++, this is Rust. In C++ you need to a lot more memory safety verification in your head, there are thousands of footguns that you need to be aware of at all times, the template metaprogramming facilities are really hard to grok with their weird syntax.

      Rust is strict, but for the kinds of applications that you would replace C++ in this makes it a lot easier to learn.

      I think the sentiment that Rust is hard comes from people that come from managed languages (Python/Java/C#) that aren't used to manual memory management. From that perspective Rust is indeed hard.

      • chucke1992 6 days ago |
        C++ has much more bigger inertia. It is like the "default" for all the areas where it is being used. So when learning a language people would rather go to C++ first and then to Rust, if they are really planning to work in corresponding area (game dev etc.). Or even go to C.

        Rust will probably replace C++ in some areas where it is a legacy app (or part of the app) that is not changed frequently anymore.

      • grayhatter 5 days ago |
        I'm used to writing C, and think pointers are easy to understand. I wouldn't call rust 'hard' to learn, but it is without a doubt painful. You also aren't doing manual memory management in rust either... I'd assume the sentiment comes from the irrelevant hoops rust makes you jump through to just compile something simple.

        You don't need to be aware of 1000s of foot guns for every block of non rust code. But you do have to remember dozens of pedantic rules, or stdlib wrappers just to trick rust into allowing you to compile your simple/demo code.

        • ipdashc 5 days ago |
          > You don't need to be aware of 1000s of foot guns for every block of non rust code. But you do have to remember dozens of pedantic rules

          Have you tried using rust-analyzer? I'm usually a bit of an IDE skeptic, but Rust is one of those languages where tight integration with the IDE really helps IMO. It's night and day, I honestly wouldn't want to write Rust without rust-analyzer, but with it it's quite pleasant.

          • grayhatter 4 days ago |
            I deleted all IDE features (other than good highlighting) and I'm never going back! I kept adding more and more IDE features, and my subjective enjoyment and happiness writing code kept decreasing. I deleted them, and I love writing code again!

            I think the fact that the language is aggravating without complex and tight IDE integration is one of the best indictments of the language there is. Java is another language that's intolerable without impossibly complex IDE support. The more rust matures the more it feels like that.

            • tialaramex 4 days ago |
              Unlike your parent, I don't use an IDE at all, I write Rust in just a plain vim, no language server, I don't even bother with syntax highlighting.

              Still, I'd say that actually the distinction that's aggravating you is almost entirely that Rust won't compile a lot of code that's nonsense, whereas in C++ that code compiles - it's still nonsense, but it compiled anyway. I think that's just plainly worse.

              • grayhatter 4 days ago |
                The very first time I used rust for a work project, I tried to implement a tree... well actually I tried to implement a linked list first, later hoping to expand it into a graph.

                The distinction that's aggravating me is the compiler refuses to compile code that I know is correct, but it's not smart enough to prove it, so it just gives me the finger instead.

      • UncleMeat 5 days ago |
        Yep. I've been developing in C++ professionally for a decade and I still have to look up "what's the safe way of making a string literal available in a header file" when it comes up.
        • MrLeap 5 days ago |
          C++ was the first programming language I ever learned, but I've only written a few hundred lines of it over the last 2 decades. Never professionally.

          Can you elaborate on the dangers of doing this incorrectly? What kinds of dangers are there in making a string literal available to a header file.

          • ranger_danger 5 days ago |
            Not OP but I think it depends on your definition of 'string'. For example there are some very grumpy devs who believe that C has no strings, and that "const char*" cannot ever be considered a string, and that anyone else who claims so is wrong.
            • tialaramex 4 days ago |
              This is made more confusing by C++ basically insisting that your "basic" built-in string type has to have the small string optimisation. The guts of std::string in any of the three popular stdlib implementations are... pretty complicated. In contrast Rust's String is literally just Vec<u8> [a growable array of bytes] plus a promise that these bytes are always a UTF-8 encoded string.

              And by C++ taking a long time to get the natural string slice type, which it calls `std::string_view`. This type is what you almost always want in APIs that aren't responsible for growing and changing strings - for the names of things, labels, parsing and so on. Because this type was not in C++ 98 or C++ 11 or even C++ 14 people would use `std::string` instead even though they did not need to modify, let alone grow, the text or, since they don't want the overhead of `std::string`, they would use `char *`

              It was correct for C++ to seek to do better than C here, but while what they delivered was a lot more powerful it's not clearly better and I think has contributed to widespread misunderstanding.

              • saagarjha 4 days ago |
                C++ doesn't require any of this. Everyone implements it this way because it is cheap and improves performance. And people don't take (const) char * they take const std::string &.
    • Koshkin 5 days ago |
      > they're means to communicate ideas to other programmers

      This is somewhat of an anthropocentric point of view. (In particular, assembler is as far as it gets from this.)

      • saagarjha 4 days ago |
        People can and do write assembly code for others to read.
    • johnnyanmac 5 days ago |
      >May be I should repost this every time there is an argument about Rust. And to expand on that, in communication technology, the one easier to use is going to get wider spread / adoption.

      Which frustrates me in many respects. Especially in a specialization like tech where the audience should be used to picking up new tools to make for the best project. But I know most projects are made with business constraints in mind (i.e money and time) and cheapest almost always wins.

    • baranul 5 days ago |
      More than just Swift has been influenced by various ideas in Rust. Zig and Vlang are among such other newer, easier, modern features having and somewhat safer languages who claim and show influence.

      Languages like Golang, can make a good argument of being the VHS to Betamax, because it is among the easier to learn memory safe languages. Golang is much more strongly positioned to take over C#, Java, and even Python spaces. Not just technically, as a language, but because of the large corporate machinery and jobs behind it, that is the result of being a Google product.

      As for Rust's main claim to fame, memory safety, lots of other lesser known languages are hard at work to become direct viable alternatives to Rust. Some of them are: Hylo, Vale, Lobster, etc... Vlang, while not quite trying to aim as high as the others (on memory safety), uses an optional GC (like Nim and Dlang), and is among the safer languages. It then becomes a question of how much the extra burden of Rust is needed, for the project in question.

  • jksmith 6 days ago |
    "There is an huge junkyard of technologies that failed to gain broad acceptance, many of them far more revolutionary than Rust (e.g.: Lisp, Smalltalk). I don't see why those technologies' story can be avoided."

    Yeah, but I think more importantly much of the value that Rust brings would have been available 30 years ago if language development/selection wasn't so siloed, full of biases, and driven by (often undeserved) popularity.

    • bobajeff 5 days ago |
      As someone who is fascinated with Smalltalk and to a lesser extent Lisp. I think the reason those didn't catch on more broadly is that they were too early and different.

      Smalltalk I believe was designed to run on computers that wouldn't be around until the 90s and and when the 90s arrived it didn't have a big company pouring gobs of money into marketing it unlike Java. There are other factors that also contributed it's unpopularity. Like who wants to distribute a whole system for each smalltalk program they sell?

      I think also Lisp and APL weren't designed to run on the weak PCs in their day. You needed to use a timesharing system to program in them.

      • igouy a day ago |
        > ... when the 90s arrived it didn't have a big company pouring gobs of money into marketing it unlike Java.

        IBM not big enough? :-)

        But of course IBM's consulting group were technology neutral and pivoted from Smalltalk to Java when the wind changed.

        > Like who wants to distribute a whole system for each smalltalk program they sell?

        Smalltalk was marketed to corporations as a 4GL replacement for green screen systems. So enterprise wide client-server apps for insurance/reinsurance, call center outsourcing, assembly line control, options/derivatives/reconciliation, ERP CRM TLA TLA, etc etc

        I don't claim to have been in "The Room Where It Happens" meetings, so I'll just say that from my lowly perspective during that period Allen Wirfs-Brock's comment ring true.

        https://wirfs-brock.com/allen/posts/914

  • tikhonj 6 days ago |
    "Popularity is the only thing that matters, and Rust is not popular enough."

    What a fundamentally narrow and depressing point of view.

    "Nobody gets fired for IBM" should not be an aspirational sentiment!

    And the top comments take the first part axiomatically and only disagree on how (un)popular Rust is.

    Lots of ideas and technologies can be useful and successful without becoming massively popular. There's a reason we don't all eat McDonalds and listen to Pop music.

    So why shouldn't we expect the same from different ways of thinking about and practicing programming? It's clearly possible to be productive and effective in "unpopular" languages—I've seen it first-hand with OCaml and Haskell teams, and secondhand with lots of other tech—so why not encourage that? I'd rather have an industry that values good taste than slavish trend-following, thank you very much.

    • echelon 6 days ago |
      Rust is extremely popular and is only getting bigger with every passing year. It's got incredible velocity and is about to break into the TIOBE top ten.

      The Rust critics can't stop other people from using and enjoying it. It's unstoppable at this point.

      > For higher level stuff (e.g.: web backends) Go offers faster iteration cycles than Rust

      Rust is excelling in this space and in so many other use cases it was never originally imaged for. Have you seen the Actix/Axum adoption? It's insanely popular, and it's such a nice and low defect rate language to write web endpoints in. It's actually highly productive in this use case.

      > Yes, Rust adoption is rising but competing technologies are also getting better

      Other languages are not "catching up" on competing with Rust. Adding sum types is great, but that won't deliver the same benefits. Rust features make it fit into a truly unique space.

      > a big push in advancing programming languages was the support of big corporations

      No big companies using Rust? All of the big companies are using it!

      > the first rule of Rust jobs is that no one talks about Rust jobs

      There are Rust jobs! I'm hiring Rust devs.

      • ethagnawl 6 days ago |
        > It's insanely popular, and it's such a nice and low defect rate language to write web endpoints in. It's actually highly productive in this use case.

        I concur. Lots of folks here and elsewhere will make claims about how Rust isn't a good fit for this space because _it's a systems language_ or because the iteration cycle is too slow and it isn't meant to replace Python/JavaScript/whatever, anyways. To that, I call BS. It's (objectively) a general purpose programming language and can be used to do whatever you need it to.

        To your point, I've also found it extremely productive for web development. Even if it does require more work up front, that's (usually) work you're not doing on the back-end chasing and squashing bugs or trying to cover corner cases which you hadn't accounted for -- but the Rust compiler would have.

    • akira2501 6 days ago |
      > What a fundamentally narrow and depressing point of view.

      I want to get work done. Not be a part of some "software taste revolution." If you can't help me get my work done you're not on the list.

      It's your point of view that is narrow. If popularity is not material then the loss of a single developer will have no impact and Rust will be the same as it ever was. Otherwise popularity matters and you should endeavor to observe and catalogs Rusts shortcomings so they can be addressed.

      • robertlagrant 6 days ago |
        > If popularity is not material then the loss of a single developer will have no impact and Rust will be the same as it ever was

        If lots of articles are written saying that popularity is all that matters, then people will start believing it, and it becomes a self-fulfilling prophecy. That's the narrowness.

        • akira2501 6 days ago |
          > then people will start believing it

          I don't subscribe to this philosophy. People will repeat it in certain contexts to avoid sounding out of touch and incurring social bullying but I have genuine doubts that their beliefs can be so easily manipulated.

          > and it becomes a self-fulfilling prophecy

          If you do believe this then your answer is just to write a bunch of articles in the opposite direction. It's a gross sort of world to accept living in; though, this is probably why I hold the belief I've espoused above.

      • johnnyanmac 5 days ago |
        And Open Source was founded on the ideals of proper engineers, not getting a paycheck and clocking out ASAP.

        ironic to call someone's POV narrow just becasue it disagrees with your worldview.

        >I don't subscribe to this philosophy. People will repeat it in certain contexts to avoid sounding out of touch and incurring social bullying but I have genuine doubts that their beliefs can be so easily manipulated.

        We had an entire election where a state was bought with votes, admitted it was a scam, and is using the courts as a cost of doing business. Beliefs can in fact be manupulated more easily than you expect for the common people.

    • makeitdouble 6 days ago |
      > "Popularity is the only thing that matters, and Rust is not popular enough."

      This is unfair to the article, when the actual focus is on finding a job and paying the bills.

      It doesn't have any of moral bankrupcy of the "Nobody gets fired for IBM" situation, where we'd be enabling corrupt companies because everyone else is also turning a blind eye.

      • tikhonj 6 days ago |
        If the post had just been "I'm doing C++ instead of Rust because I could find a C++ job but not a Rust job", that would have been totally reasonable and I would not have said anything. But that was not what the rant was saying—otherwise it would have been boring and not made it to HN and /r/rust.
    • dartharva 6 days ago |
      > What a fundamentally narrow and depressing point of view.

      Maybe not for you HN patricians, but most regular people in the world want stability and have other immediate priorities far above becoming a programming language revolutionary.

      • johnnyanmac 5 days ago |
        well yes. But that's why I'm here and not on Twitter or Tiktok. To seek curiosity, share knowledge, and overall hope to better oneselves.

        I'm not surprised to see this mentality because this is also ultimately a place to foster entrepreneurs, who revolve around money. But it's still saddening to see curiosity be mocked.

  • srj 6 days ago |
    Am I the only one who loves writing C++? I've used some newer languages like Kotlin, and that's good too, but I always come back to C++. I think a lot of the criticism is from the old way it was written, before C++11/17.
    • MathMonkeyMan 6 days ago |
      C++ is a lot of fun, and there exist many compelling subsets, but the language as a whole is a minefield that you need years of experience to navigate, and probably can never master.
      • nightowl_games 6 days ago |
        Kinda.

        The vast majority of c++ I encounter is simple orthodox c++.

        No one I know cares about new features in c++ and bemoans having to ever write a template.

        No one really cares about bulletproofing types, ie: copy/move constructors and all that stuff.

        I'm sure it's different at big companies but the vast vast majority of c++ is just simple procedural code.

        • 8fingerlouie 6 days ago |
          > the vast vast majority of c++ is just simple procedural code.

          Probably because where C++ is needlessly complex, C is beautifully simple.

          I've used both C and C++ in my career, spending 10+ years as a C programmer (kernels, applications and embedded stuff), as well as 4-5 years as a C++ programmer in a financial institution.

          I find the thing most "new C/C++ programmers" complain about is memory management and type safety, but honestly, once you have a few years worth of experience, memory management is almost second nature. Most of the time i write the free() statement at the same time as i write the malloc() statement (if applicable).

          • weebull 6 days ago |
            One of the things I loved about Python when I learnt it was how it dealt with `public`\`private`\protected``. It was "we're all responsible adults. No need to hide anything. We'll just use a naming convention for members that we don't expect people to directly use."

            "Enforce encapsulation" suddenly became. "Respect encapsulation" in my head and a bunch of Java/C++ problems evaporated.

            • kstrauser 5 days ago |
              I do love that about Python. The encapsulation is there but you can work around it if you’re willing to take responsibility for breaking the gentlemen’s agreement. That’s a lovely pattern.
              • karmakurtisaani 5 days ago |
                This gets more and more horrible the larger the code base grows and the more developers get involved.

                My current preference is to have everything public, but immutable.

                Edit: except for functions. Private functions are a great way of keeping downstream users from touching them. Only expose what you are willing to support.

                • kstrauser 4 days ago |
                  My experience has been otherwise. There’s almost never a reason to be playing with something like db_connection._socket, but in that one place in your codebase you really really need to, it’s a lifesaver to have access to it.

                  Linters should be shouting about it and in the PR you’d need to explain why you turned off the warnings to do it anyway, with comments explaining why there was no other feasible option and this was the least bad choice.

                  BTW, I rarely write _methods and almost never __protected attributes. _something just means “it’s here but you really shouldn’t be playing with it.” I don’t see an advantage to using __anything.

    • jayd16 6 days ago |
      Tooling is a pain, packages are a pain, compiles are slow, the language is inconsistent, header files why..., the list goes on and on and its not outdated complaints.

      (lots of reasons to like it, too)

    • pjmlp 6 days ago |
      I love C++, it was my next language after Turbo Pascal, there was a small stint with C, but already in 1992 it felt outdated.

      However, during the last decade C++ culture suffered, probably it has taken too many C refugees.

      What you call old way, it is still how many folks write C++ in big corporations, I tend to complain that I only see Modern C++ in conference slides, and my own hobby coding.

    • macgyverismo 6 days ago |
      I love it too, it tends to bend to my will, for better or worse. It feels like it doesn't stand in my way, and that further translates to feeling like there is nothing between my program and the hardware it runs on.

      No need to school me on how that isn't true, I'm just describing my feeling and why I love C++.

  • eggy 6 days ago |
    I like the Betamax vs. VHS, X vs. Mastodon bit, because technically if you want a safe, high-integrity programming language today, you would choose SPARK2014, the Ada language that has a legacy of mission-critical real-world software projects for decades, proven verification tools and and it is easy to read and write. Rust gained favor with the tech crowd, while SPARK was being used in avionics, aerospace, and other high-assurance software. Why would you choose Rust a relatively new, unproven language (cite some mission critical software that has been running for a decade written in Rust besides a browser) for crypto, aerospace, AWS, and other critical areas? Programming language adoption is just as much about fashion as it is about a true pros/cons in tech.
    • woodruffw 6 days ago |
      I think the answer to “why” here is (and will always be) familiarity: Rust bears syntactic and semantic resemblance to already popular languages. Ada doesn’t to the same degree.

      (This could be framed as a fashion choice, but I think the more neutral framing is precedence: Rust achieves desirable language-level properties without exhausting the novelty budget for people writing non-government software.)

      > cite some mission critical software that has been running for a decade written in Rust besides a browser

      This will be hard for anyone to do, given that Rust 1.0 was in 2015, so 9 years ago.

      However, if you want examples of Rust running in mature, critical environments: my understanding is that Firecracker has been a key part of AWS’s serverless control plane for years now. Similarly, my understanding is that Windows has been shipping Rust in the NT kernel for the last year.

  • jvanderbot 6 days ago |
    The root issue I have with this and many other articles is the false dichotomy around this vs that programming language.

    I would feel comfortable interviewing for a Rust, C++, job, and probably a C, Pytbon position as well, just because the industry I'm in might require it.

  • synergy20 6 days ago |
    For me, Rust has a size issue, its std lib after strip is at least 3x as to libstdc++, and Rust is default to statically link to that lib! When you have a few Rust binaries, the storage space adds up quickly, not a good fit for embedded boards where storage is limited(same problems for Go, by the way).

    Why can't Rust have a mode to do what c/c++/etc doing, that is, a reasonably sized standard library to link to? Yes I'm aware of 'how to minimize rust size' and 'prefer-dynamic', still comparing to c/c++, it is so much worse when storage size is a concern.

    • robertlagrant 6 days ago |
      Maybe it can. Why don't you propose[0] a list of features that would fit your requirements? You never know!

      [0] https://lang-team.rust-lang.org/how_to/nominate.html

      • synergy20 6 days ago |
        I'm not very hopeful as it has been discussed in the past. If Rust will ever replace C++, binary size is one of its biggest weakness in my opinion.

        Been safer is far from enough to replace the incumbent, you also need win in simplicity, speed, size, ecosystem,etc. Size at the moment is the most obvious problem as far as I can tell.

    • zozbot234 6 days ago |
      • synergy20 6 days ago |
        yes as mentioned,it's still too large compared to c++ when i have multiple executables
    • yolovoe 5 days ago |
      An increasing amount of AWS EC2 dataplane (Nitro firmware/software) is using Rust.

      We hit this issue too, and our solution was to go busybox-style with binaries. One binary that then gets linked to with different names. Solved the problem for us.

      • synergy20 5 days ago |
        firmware probably needs no stdlib at all,just the language itself,so rust for low level is fine

        when stdlib is needed then size becomes a big issue, yes busybox approach helps,but.

    • johnnyanmac 5 days ago |
      It's probably less a concern because storage size at that level (MB's) is only really relevant in Embedded. So it was lower priority for stakeholders compared to the other advantages
  • fsckboy 6 days ago |
    I like C. I learned it a long time ago, it was one of my favorite languages to learn, and I'm comfortable using it.

    I'm open to learning new languages, but learning new languages from people who talking nothing but trash about C does not inspire confidence. Nobody who loves unix says "you need to try Windows." At the same time, Windows lovers trash Unix. So the two schools remain separate.

    if you want to sell Rust, find people who like C who will recommend Rust and shut everybody else up, then people who like C will listen.

    edit: thought of one, the soles of shoes

    • pornel 6 days ago |
      Before Rust, C was my preferred language. It's really hard to talk about Rust in a way that doesn't sound like talking trash about C, because Rust's main reason to exist is preventing safety issues that… people programming in C usually say are not C's fault, so there's nothing to fix there.

      The other aspect is that Rust has been developed recently, and didn't have to deal with all the legacy constraints of C. The features that Rust has would be mostly boring compared to modern GC or scripting languages, but they're notable for being in a language that can be as low-level as C. Comparing them directly to C does like trashing C — namespaced modules instead of textual inclusion, macro preprocessor based on AST (do-while tricks not needed), no headers, no need for build scripts in most programs, package management that works on Windows and macOS too, etc. Many other languages have this stuff, but C doesn't, so they're an interesting upgrade from C just because C is so old.

  • kazinator 6 days ago |
    You can make a pointer-based graph structure with cycles in C++ without a fuss. You can decide how the memory managed and implement exactly that with minimal barriers in your way.
    • an_d_rew 6 days ago |
      True... but whether the ability to so is a superpowers strength or a debilitating weakness depends on both your values and point of view!
  • dmitrygr 6 days ago |
    For personal projects, I use C because it is fun and brings me joy without getting in my way, while Rust brings me pain, and (when i must seek help) derision from the community. Here, I choose fun and joy.

    For work I use C because that is what all existing non-toy kernels are written in and will continue to be written in until long after i've retired, been buried, and decomposed. Here, i choose what employers want and will pay for.

    • johnnyanmac 5 days ago |
      > i choose what employers want and will pay for.

      with the US mandate away from unsafe languages, that may change faster than you think. Unless you are already quite close to retiring.

      • dmitrygr 4 days ago |
        Mandate? When did the president sign a law written by congress banning C? And even then, the courts have ruled programming as speech, so first amendment applies. I’m not even remotely considering the possibility of letting the thought of pondering maybe worrying cross my mind here.
        • johnnyanmac 4 days ago |
          Mandate is a strong word, but this month: https://news.ycombinator.com/item?id=42013379

          "For existing products that are written in memory-unsafe languages, not having a published memory safety roadmap by Jan. 1, 2026, is dangerous and significantly elevates risk to national security, national economic security, and national public health and safety,"

          Obviously they can't ban a language. But if you work in the public sector, are a defense contractor, or otherwise have companies which do or want to do work for the government (which yes, includes most FAANGs), this will influence quite a bit of decisions in the US tech industry.

  • readthenotes1 6 days ago |
    "Dvorak keyboards are better than QWERTY,"

    As I understand it, the advantage of Dvorak was that in the study that promoted it, the Dvorak people got retraining and the qwerty people were taken as is.

    Once both sets were sent through training, the Dvorak advantage disappeared

  • ribadeo 6 days ago |
    Meh, I'll take his closing advice. If this were written in 2018 i might agree. Rust is currently exploding, however. C++ is footgun central, which is the opposite of typesafe. Go doesn't care about typesafety, and had it's heydey already. Rust is eating everything in 2024. People have begun to appreciate an approach to maintaining comprehensive typesafety from the db to user input. Rust is capable of holding much info about what it specifies, and is basically lossless as a specification. Rust is already eating the world, it just took a couple of decades of committee bikeshedding to achieve it. People are starting to understand why typesafety matters, as they flail around in bug soup.
  • AstralStorm 4 days ago |
    About the only remaining issues I personally face is the suspicious lack of plotting libraries, and bit of an insufficiency in maths libraries, especially for higher level operations than just linear algebra.

    There's no scipy, numpy and matplotlib equivalent yet. Both C and C++ do better in this particular area...

    Peroxide is a good start, but it cheats much like scipy by calling into Fortran, while having some very pecuilar APIs thanks to that.