Threads for ahu

    1. 4

      Awesome article, thanks. By the way,

      In addition, there is a clever lipid (fatty) packaging system that gets the mRNA into our cells

      Any chances of expanding on this subject a little bit? How exactly it enters the cell? Could you share some approachable papers/articles about it?

      1. 5

        Sadly i don’t understand a lot of that part. But other people do, I’ve been trying to get Derek Lowe to do a writeup. But he’s also busy.

    2. 5

      Thank you for the article! What a fascinating read, and you made it so digestible.

      The part I had the hardest understanding was the video from Wikipedia. I feel like I almost get it, but I just want to know even more nitty gritty details, like what are each of those colored things? How do they get there? Why are they being locked into place onto the ribbon? How do they get off the ribbon? How is the machine formed in the first place? It’s so fascinating, but the more details I’m given, it seems to prompt even more questions.

      I couldn’t help but wonder what kinds of nefarious things could be done with that Ψ trick. It seems like this is just a silver bullet to make intentional viruses infect humans that completely evade our immune systems?

      1. 6

        So the flying things are explained in the video on - and I think your question about the Ψ-trick might be addressed by some of the other answers on this page.

        1. 2

          Thanks for the tip, I ended up purchasing Molecular Biology of the Cell, can’t wait to read it!

      2. 4

        The Ψ thing (that I was wondering about as well) discussed elsewhere was “Could nature figure out Ψ organically and thereby evolve viruses that evade our immune system?” and thankfully the answer is a resounding “No” (unless the entire mechanism including ribosomes learns how to create those things, I suppose, by which point the immune system probably catches up as well?)

        It’s not explicitly spelled out, but as I understand it, this also means that an artificially created/modified virus that comes with Ψ to evade the immune system couldn’t make our cells create Ψ. So either such a virus would be replicated with U in place of Ψ (if the functional equivalence extends to the replication) or the replication would fail entirely (because Ψ is an invalid input to the full replicator pipeline), I’m not sure.

        Either way, the best outcome for such a virus (it’s replicated with U) would be that it can create a larger starter colony inside the organism of the first infected victim but any follow-on generations, including those transmitted to other individuals are fully visible to the immune system.

        (disclaimer: lots of conjecture)

    3. 10

      Amazing article, thank you @ahu

      A few questions, if I may — and please understand that I don’t even know what I don’t know about this sort of thing, so forgive me if these are stupid or silly questions.

      1. If we’re modifying our own cells to make the spike proteins, how do we stop all our cells from getting modified? Do the modified cells not replicate? Is the mRNA “used up?”

      2. With the advent of these technologies, are we basically able to create vaccines on demand very rapidly, or are these techniques only applicable to SARS-CoV-like viruses (not that that isn’t enough!)?

      3. Did previous vaccines modify our existing cells like this, or is this new to the mRNA technique?

      4. Replacing U with psi makes our immune system ignore the protein. Is there any chance evolution will give us a virus with U replaced with psi in nature, making a virus that is just completely ignored by our immune system? That seems like it would be bad.

      And finally, I am not a religious man, but…I definitely have a sense of wonder looking at how DNA and RNA work and encode information, and I am in absolute awe at what humankind can do now. As someone said, we’re halfway between apes and God and seem to be heading in the right direction…

      1. 14

        1: Yes, explicitly. The mRNA is “one shot”, and it degrades quickly. By design. 2: Yes and no. This technology has been tried against influenza for example, but that is a very very clever virus. But it appears that mRNA will be extremely useful for coming to the universal flu vaccine. And even if we can’t do the universal one, we could quickly print the most useful one for.. this month :-) 3: Previous vaccines injected dead or living or modified existing viruses. Some of these did the very same thing - get our cells to build proteins. That part is not new. It is just a lot more surgical now. 4: Good point, but there is happy news. The whole “architecture of life” can’t make these psi things. And viruses ride that architecture. This needs a lab.

        And yes, I am not religious either but the sheer sense of AWE can be overwhelming!

        1. 5

          May I double-check my understanding of #4 with you? Biology is not my field but the way I think of it is that cells and organisms are basically factories for assembling/moving around/ripping apart chunks of molecules, of various types. So it sounds like this Ψ faux-RNA sequence is a piece of molecule that never appears in any living organism, but is the right shape that it slots into the “build protein” machinery and tells it to make the same thing that a U would in its place. But if you feed that RNA sequence it into the cell’s “copy DNA/RNA” machinery then it doesn’t work, because the molecular machinery doesn’t know how to handle it, and because there’s no molecular machinery in any living organism for manufacturing the Ψ piece-of-molecule and bringing it to the right place. So to teach a cell how to handle a Ψ in its genetic sequence you’d have to make a whole metabolism that could build it, tear it apart, and get it to the right places in the right amounts. Am I understanding this properly?

          Pretty cool, if so. Basically sounds like genetic ROM.

          1. 5

            You got that right. To change this is definitely a forklift operation :-)

        2. 3

          Could someone artificially enhance an existing virus by replacing U with Ψ as some sort of biological warfare?

          Edit: Also, thank you for making this so understandable! This was probably the best thing I’ve read all year.

      2. 5

        For a sense of scale on #2 at least… they mention in the article that they had to make some alterations to the protein the cell synthesizes this way to make it actually work properly and not just fold up into a mess. These alterations were based on research that other people did in 2017 on similar viruses in the family. So even if it’s “easy” to use this technology to tell cells to make new things, there’s more than a little finesse in making things that do what you want.

    4. 36

      If there are any questions or remarks, I am right here!

      1. 15

        I wish I could invite this story multiple times. The perfect combination of being approachable, while still being packed with (to me) new information. Readable without ever being condescending.

        One thing I learned was that DNA printers are a thing nowadays. I had no idea. Are these likely to be used in any way by amateur hackers, in the sense that home fusion kits are fun and educational, while never being useful as an actual energy source?

        1. 14

          So you can actually paste a bit of DNA on a website and they’ll print it for you. They ship it out by mail in a vial. Where is breaks down is that before you inject anything into a human being.. you need to be super duper extra totally careful. And that doesn’t come from the home printer. It needs labs with skilled technicians.

          1. 8

            Could any regular person make themselves completely fluorescent using this method? Asking for a friend.

        2. 5

          You may be interested in this video: Someone modified the DNA of some yeast to produce spider silk. The whole thing is super interesting (if slightly nightmarish at times if you’re not a fan of spiders).

          1. 2

            So that’s going to be the next bioapocalypse then. Autofermentation but where as well as getting drunk, you also poop spider silk.

      2. 5

        Thanks for the awesome article! Are there any specific textbooks or courses you’d recommend to build context on this?

        1. 12

          Not really - I own a small stack of biology books that all cover DNA, but they cover it as part of molecular biology, which is a huge field. At first I was frustrated about this, but DNA is not a standalone thing. You do have to get the biology as well. If you want to get one book, it would have to be the epic Molecular Biology of the Cell. It is pure awesome.

        2. 2

          You can start with molecular biology and then a quick study of bio-informatics should be enough to get you started.

          If you need a book, I propose this one, it is very well written IMO and covers all this stuff.

      3. 2

        Great article! I just have one question. I am curious why this current mRNA vaccine requires two “payloads” ? Is this because it’s so new and we haven’t perfected a single shot or some other reason?

        1. 3

          As I understand it[1] a shot of mRNA is like a blast of UDP messages from the Ethernet port — they’re ephemeral and at-most-once delivery. The messages themselves don’t get replicated, but the learnt immune response does permeate the rest of the body. The second blast of messages (1) ensures that the messages weren’t missed and (2) acts as a “second training seminar”, refreshing the immune system’s memory.

          [1] I’m just going off @ahu’s other blogs that I’ve read in the last 24 hours and other tidbits I’ve picked up over the last 2 weeks, so this explanation is probably wrong.

        2. 2

          It’s just the way two current mRNA vaccines were formulated, but trials showed that a single shot also works. We now know that two shots are not required.

          1. 2

            The creators of the vaccine say it differently here: If I remember correctly, they claim that one shot protects you but doesn’t prevent you to be infective, while the second make sure that you don’t infect others

        3. 1

          Not an expert either, but I think this is linked to the immune system response, like some other vaccines, the system starts to forget, so you need to remind him what the threat was.

      4. 1

        Is there any information on pseudouridine and tests on virus encorporating it in their DNA?

        The one reference in your post said that there is no machinery in cells to produce it, but the wiki page on it says that it is used extensively in the cell outside of the nucleus.

        It seems incredibly foolhardy to send out billions of doses of the vaccine without running extensive tests since naively any virus that mutated to use it would make any disease we have encountered so far seem benign.

        1. 1


          Pseudouridine are RNA modifications that are done post-transcription, so after the RNA is formed.

          That seems to mean (to me, who is not a biologist) that a virus would have to grow the ability to do/induce such a post-processing step. Merely adding Ψ to sequences doesn’t provide a virus with a template to accelerate such a mutation.

          1. 1

            And were this merely a nuclear reactor or adding cyanide to drinking water I’d agree. But ‘I’m sure it will be fine bro’ is how we started a few hundred environmental disasters that make Chernobyl look not too bad.

            ‘We don’t have any evidence because it’s obvious so we didn’t look’ does not fill me with confidence given our track record with biology to date.

            Something like pumping rats with pseudouridine up to their gills then infecting them with rat hiv for a few dozen generations and measuring if any of the virus starts encorporating pseudouridine in its RNA would be the minimum study I’d start considering as proof that this is not something that can happen in the wild.

            1. 2

              As I mentioned, I’m not a biologist. For all I know they did that experiment years ago already. Since multiple laymen on this forum came up with that concern within a few minutes of reading the article, I fully expect biologists to be aware of the issue, too.

              That said, in a way we have that experiment already going on continuously: quickly evolving viruses (such as influenza) that mess with the human body for generations. Apparently they encountered pseudouridine regularly (and were probably at times exposed to PUS1-5 and friends that might have swapped out an U for a Ψ in a virus accidentally) but still didn’t incorporate it into their structure despite the presumed improvement to their fitness (while eventually leading our immune system to incorporate a response to that).

              Which leaves me to the conclusion that

              1. I’d have to dig much deeper to figure out a comprehensive answer, or
              2. I’ll assume that there’s something in RNA processing that makes it practically impossible for viruses to adopt that “how to evade the immune system” hack on a large scale.

              Due to lack of time (and a list of things I want to do that already spans 2 or 3 lifetimes) I’ll stick to 2.

      5. 1

        I enjoyed the article, reminded me of my days at the university :-)

        So here are some quick questions in case you have an answer:

        • Where does the body store info about which proteins are acceptable vs not?
        • How many records can we store there?
        • Are records indexed?
        • How does every cell in the body gets this info?
        1. 13

          It is called negative selection. It works like this:

          1. Body creates lots of white blood cells by random combination. Each cell has random binding sites binding to specific proteins and will attack them.
          2. Newly created white blood cells are set loose in staging area, which is presumed to be free of threats. All cells triggering alarm in staging area kill themselves.
          3. White blood cells, negatively selected not to react to itself, mature and are released to production.
          1. 1
        2. 5

          How does info spread through the body

          I came across this page relatively recently and it really blew my mind.

          glucose is cruising around a cell at about 250 miles per hour

          The reason that binding sites touch one another so frequently is that everything is moving extremely quickly.

          Rather than bringing things together by design, the body can rely on high-speed stochastic events to find solutions.

          This seems related, to me, to sanxiyn’s post pointing out ‘random combination’ - the body:

          • Produces immune cells which each attack a different, random shape.
          • Destroys those which attack bodily tissues.
          • Later, makes copies of any which turn out to attack something that was present.

          This constant, high-speed process can still take a day or two to come up with a shape that’ll attack whatever cold you’ve caught this week - but once it does, that shape will be copied all over the place.

        3. 2

          I did some projects in grad school with simulating the immune system to model disease. Honestly we never got great results because a lot of the key parameters are basically unknown or poorly characterized, so you can get any answer you want by tweaking them. Overall it’s less well understood than genetics, because you can’t study the immune system in a petri dish. It’s completely fascinating stuff though: evolution built a far better antivirus system for organisms than we could ever build for computers.

    5. 8

      Is this anything other than marketing copy?

      1. 3

        Anything with the word “5G” so far seems to be marketing copy.

      2. 2

        The useful information is from Delivering Functionality on downward. This describes some of what it takes to sell to and collaborate with enterprises. It’s a path that might lead quite a few FOSS projects to profitability. Most just don’t know what it takes to get there or even have resources to get there. Knowing what it takes is a good start, though.

        1. 5

          So to be really honest, one goal of this article was indeed share this knowledge, what does it take to sell to big enterprises. How can you make money with open source? Well, not with the software. A great article about sales to big enterprise is

          Secondly, this article practices what it preaches - it tells people within large enterprises “we get it, we know how your company works, please buy from us”. So Friendlysock has a valid point. But I hope the educational part on FOSS sales was worth it.

          1. 1

            Thanks for the article. It’s a good intro to the problems. I might share it with folks. I do want to address a potential myth:

            “ How can you make money with open source? Well, not with the software.”

            When arguing about licensing, I said that to folks on Hacker News. A few countered me that you can in fact sell GPL software. Stallman even encouraged it. Two examples were interesting. One said his company licensed tens of millions a year in GPL software to enterprises. That turned out to be SUSE, which maybe outlier like Red Hat. The other built custom software for mid-sized businesses which wasn’t necessarily a competitive advantage or secret sauce: just smoothed over internal processes. With company’s permission, he always licensed the apps as GPL since there’s potential benefits but no harm. There were also dual-licensed offerings but I’m focusing on F/OSS specifically.

            They gave me a few reasons companies would buy FOSS. Primary one is someone to blame for problems. You mentioned that in your article but maybe overlooked how it carries onto selling FOSS. Some other people said licensing and support are looked at differently in many enterprise. One is a justifiable operational expense adding value with support something that’s considered a liability to minimize. I have little data on this claim past anecdotal experience of non-FOSS projects that did fit that pattern. Yet another was long-term viability with a vendor that had been around for a while and would be around for a while. That kind of fits in with support but is also risk management issue. That’s my list of reasons an enterprise might license F/OSS software that they could get for free with or without support.

            What’s your thoughts or experiences on those?

    6. 1

      Matplotlib has always been great but seaborn has higher-level abstractions that make some graphs and showing relationships much easier. Since seaborn layers on top of matplotlib, you can still leverage some of the detailed matplotlib knobs when seaborn alone can’t quite tweak the presentation just as you’d like.

      1. 7

        I recommend against anybody using seaborn, for reasons I’ve stated before here

        Edit: Looks like the developer has gone so far as to delete the issue. Even more reason to avoid IMHO.

        1. 4

          I actively considered & was urged to include Seaborn in this post. But on closer look I could not immediately provide the intended user with any advantages based on Seaborn. I tried to find a plot based on the datasets in the post where Seaborn would shine, but couldn’t find anything.

        2. 1

          Looks like the developer has gone so far as to delete the issue. Even more reason to avoid IMHO.

          I agree: assuming your description of the situation and the HN comments are all accurate, it doesn’t look good for the project’s maintainer(s).

          I would charitably assume that mwaskom mistakenly assumed your question was a misunderstanding of how seaborn/matplotlib works. And just maybe it’s the intended design. It looks as if mwaskom is particular about sweeping GH issues, so I could expect that he may have overlooked the importance of the issue that you identified. Maybe I’m bending over backwards here but – Hanlon’s razor – he may have deleted the issue because he recognizes that it makes him look rash or foolish and he’s embarrassed by the error.

          I don’t think I’d stop using seaborn over this, but I will certainly evaluate its output much more critically now that you’ve brought it up.

    7. 4

      (author here - if you have any questions or remarks please let me know!)

    8. 15

      Rust meanwhile notes that you can’t safely write a performant data structure in Rust, so they urge you not to do that.

      The interesting thing to me is the linked FAQ ( literally doesn’t say that.

      It says:

      1. Efficient implementations of many data structures are provided by the standard library.
      2. Most data structures can be done in safe Rust, but for comparable performance, some would be better implemented using unsafe Rust. Not that it is impossible.
      3. Goes on to provide a specific example of how to do a doubly linked list in safe Rust, and describes how to do it also with unsafe Rust for better performance.

      I wonder if this was an oversight or misunderstanding?

      1. 10

        As a follow-up, in the conclusion you say:

        I think that in practice they may not be making real life shipped code a lot more secure - also because not that much actual Rust code is shipping.

        While just one of the undoubtedly many examples which could be brought up, I hadn’t realized the Quantum CSS engine from Firefox was so short! More seriously, the achievements in Firefox are remarkable and inspiring, and is a large amount of code shipping to real users, and used every day.

        One thing I like very much about the borrow checker is it took memory access problems and turned it in to a generic resource safety problem. Using the simple primitives available I’m able to easily encode usage requirements, limitations, and state changes through borrows and Drops and have them checked at compile time. This is really powerful, and I very much appreciate it.

        For whatever it is worth, I’m a rubbish C dev – not to be trusted to write a single line – who has found Rust to be an comfortable and pleasant experience in only a few weeks of free-time practice.

      2. 2

        Hi - I worded this incorrectly. What I meant to say was that the FAQ says performance will disappoint unless you go into unsafe mode. “For example, a doubly-linked list requires that there be two mutable references to each node, but this violates Rust’s mutable reference aliasing rules. You can solve this using Weak, but the performance will be poorer than you likely want. With unsafe code you can bypass the mutable reference aliasing rule restriction, but must manually verify that your code introduces no memory safety violations.”. I’ve updated the wording a bit. Apologies for the confusion.

        1. 6

          It is improved, but they don’t urge you to not do it. However, still, unsafe Rust is still safer than C.

        2. 3

          Oh boy, what a quote.

          1. 4

            It definitely is in context of bigger picture. The default in C for doing Rust’s level of safety is separation logic with tools like VCC. Hard to learn, slow to develop (2loc/day at one point), and solvers likely slower than compiler checks. Rust brought that level of safety to most apps using a simplified model and checker. Both the checker and resulting code usually perform well. The quote indicates it can’t handle some optimized, low-level, data structures. Those atypical cases will need verification with external tool or method.

            In light of that, Rust gets safer code faster than C in most verification cases but maybe equivalent labor in some. Rust still seems objectively better than C on being safe, efficient, and productively so.

            1. 2

              there are languages in which linked lists are primitives or maybe even invisible. But if you are going to specify a language for writing programs that include linked lists, you should not have to use pragmas. This is a characteristic computer science trope: “we have a rigorous specification of this which cannot ever be violated unless you push the magic button”. It’s a way of acting as if you have solved a problem that you have simply hidden.

    9. 30

      I enjoyed the author’s previous series of articles on C++, but I found this one pretty vacuous. I think my only advice to readers of this article would be to make up your own mind about which languages to learn and use, or find some other source to help you make up your mind. You very well might wind up agreeing with the OP:

      Programmers spend a lot of time fighting the borrow checker and other language rules in order to placate the compiler that their code really is safe.

      But it is not true for a lot of people writing Rust, myself included. Don’t take the above as a fact that must be true. Cognitive overheads come in many shapes and sizes, and not all of them are equal for all people.

      A better version of this article might have went out and collected evidence, such as examples of actual work done or experience reports or a real comparison of something. It would have been a lot more work, but it wouldn’t have been vacuous and might have actually helped someone answer the question posed by the OP.

      Both Go and Rust decided to special case their map implementations.

      Rust did not special case its “map implementation.” Rust, the language, doesn’t have a map.

      1. 16

        Hi burntsushi - sorry you did not like it. I spent months before this article asking Rust developers about their experiences where I concentrated on people actually shipping code. I found a lot of frustration among the production programmers, less so among the people who enjoy challenging puzzles. They mostly like the constraints and in fact find it rewarding to fit their code within them. I did not write this sentence without making sure it at least reflected the experience of a lot of people.

        1. 20

          I would expect an article on the experience reports of production users to have quite a bit of nuance, but your article is mostly written in a binary style without much room for nuance at all. This does not reflect my understanding of reality at all—not just with Rust but with anything. So it’s kind of hard for me to trust that your characterizations are actually useful.

          I realize we’re probably at an impasse here and there’s nothing to be done. Personally, I think the style of article you were trying to write is incredibly hard to do so successfully. But there are some pretty glaring errors here, of which lack of nuance and actual evidence are the biggest ones. There’s a lot of certainty expressed in this article on your behalf, which makes me extremely skeptical by nature.

          (FWIW, I like Rust. I ship Rust code in production, at both my job and in open source. And I am not a huge fan of puzzles, much to the frustration of my wife, who loves them.)

        2. 4

          I just wanted to say I thought your article was excellent and well reasoned. A lot of people here seem to find your points controversial but as someone who programs C++ for food, Go for fun and Rust out of interest I thought your assessment was fair.

          Lobsters (and Hacker News) seem to be very favourable to Rust at the moment and that’s fine. Rust has a lot to offer. However my experience has been similar to yours: the Rust community can sometimes be tiresome and Rust itself can involve a lot of “wrestling with the compiler” as Jonathan Turner himself said. Rust also provides some amazing memory safety features which I think are a great contribution so there are pluses and minuses.

          Language design is all about trade-offs and I think it’s up to us all to decide what we value in a language. The “one language fits all” evangelists seem to be ignoring that every language has strong points and weak points. There’s no one true language and there never can be since each of the hundreds of language design decisions involved in designing a language sacrifices one benefit in favour of another. It’s all about the trade-offs, and that’s why each language has its place in the world.

          1. 10

            I found the article unreasonable because I disagree on two facts: that you can write safe C (and C++), and that you can’t write Rust with fun. Interpreted reasonably (so for example, excluding formally verified C in seL4, etc.), it seems to me people are demonstrably incapable of writing safe C (and C++), and people are demonstrably capable of writing Rust with fun. I am curious about your opinion of these two statements.

            1. 8

              I think you’re making a straw man argument here: he never said you can’t have fun with Rust. By changing his statement into an absolute you’ve changed the meaning. What he said was “Rust is not a particularly fun language to use (unless you like puzzles).” That’s obviously a subjective statement of his personal experience so it’s not something you can falsify. And he did say up front “I am very biased towards C++” so it’s not like he was pretending to be impartial or express anything other than his opinion here.

              Your other point “people are demonstrably incapable writing safe C” is similarly plagued by absolute phrasing. People have demonstrably used unsafe constructs in Rust and created memory safety bugs so if we’re living in a world of such absolute statements then you’d have to admit that the exact same statement applies to Rust.

              A much more moderate reality is that Rust helps somewhat with one particular class of bugs - which is great. It doesn’t entirely fix the problem because unsafe access is still needed for some things. C++ from C++11 onwards also solves quite a lot (but not all) of the same memory safety issues as long as you choose to avoid the unsafe constructs, just like in Rust.

              An alternative statement of “people can choose to write safe Rust by avoiding unsafe constructs” is probably matched these days with “people can choose to write safe C++17 by avoiding unsafe constructs”… And that’s pretty much what any decent C++ shop is doing these days.

              1. 5

                somewhat with one particular class of bugs

                It helps with several types of bugs that often lead to crashes or code injections in C. We call the collective result of addressing them “memory safety.” The extra ability to prevent classes of temporal errors… easy-to-create, hard-to-find errors in other languages… without a GC was major development. Saying “one class” makes it seem like Rust is knocking out one type of bug instead of piles of them that regularly hit C programs written by experienced coders.

                An alternative statement of “people can choose to write safe Rust by avoiding unsafe constructs” is probably matched these days with “people can choose to write safe C++17 by avoiding unsafe constructs”

                Maybe. I’m not familiar with C++17 enough to know. I know C++ was built on top of unsafe language with Rust designed ground-up to be safe-as-possible by default. I caution people to look very carefully for ways to do C++17 unsafely before thinking it’s equivalent to what safe Rust is doing.

      2. 13

        I agree wholeheartedly. Not sure who the target survey group was for Rust but I’d be interested to better understand the questions posed.

        Having written a pretty large amount of Rust that now runs in production on some pretty big systems, I don’t find I’m “fighting” the compiler. You might fight it a bit at the beginning in the sense that you’re learning a new language and a new way of thinking. This is much like learning to use Haskell. It isn’t a good or bad thing, it’s simply a different thing.

        For context for the author - I’ve got 10 years of professional C++ experience at a large software engineering company. Unless you have a considerable amount of legacy C++ to integrate with or an esoteric platform to support, I really don’t see a reason to start a new project in C++. The number of times Rust has saved my bacon in catching a subtle cross-thread variable sharing issue or enforcing some strong requirements around the borrow checker have saved me many hours of debugging.

        1. 0

          I really don’t see a reason to start a new project in C++.

          Here’s one: there’s simply not enough lines of Rust code running in production to convince me to write a big project in it right now. v1.0 was released 3 or 4 years ago; C++ in 1983 or something. I believe you when you tell me Rust solves most memory-safety issues, but there’s a lot more to a language than that. Rust has a lot to prove (and I truly hope that it will, one day).

          1. 2

            I got convinced when Rust in Firefox shipped. My use case is Windows GUI application, and if Firefox is okay with Rust, so is my use case. I agree I too would be uncertain if I am doing, say, embedded development.

          2. 2

            That’s fair. To flip that, there’s more than enough lines of C++ running in production and plenty I’ve had to debug that convinces me to never write another line again.

            People have different levels of comfort for sure. I’m just done with C++.

    10. 7

      Interesting this was written by a powerDNS person, they are a very smart and helpful group of people and the PowerDNS codebase is a good read.

      1. 1

        Thanks Shane! We try :-) blush

    11. 18

      I suppose I know why, but I hate that D is always left out of discussions like this.

      1. 9

        and Ada, heck D has it easy compared to Ada :)

        1. 5

          Don’t forget Nim!

      2. 3

        Yeah, me too. I really love D. Its metaprogramming alone is worth it.

        For example, here is a compile-time parser generator:

      3. 4

        This is a good point. I had to edit out a part on that a language without major adoption is less suitable since it may not get the resources it needs to stay current on all platforms. You could have the perfect language but if somehow it failed to gain momentum, it turns into somewhat of a risk anyhow.

        1. 4

          That’s true. If I were running a software team and were picking a language, I’d pick one that appeared to have some staying power. With all that said, though, I very much believe D has that.

      4. 3
        1. 11

          In my opinion, until ocaml gets rid of it’s GIL, which they are working on, I don’t think it belongs in this category. A major selling point of Go, D, and rust is their ability to easily do concurrency.

          1. 6

            Both and allow concurrent programming in OCaml. Parallelism is what you’re talking about, and I think there are plenty of domains where single process parallelism is not very important.

          2. 2

            You are right. There is Multicore OCaml, though:

      5. 1

        I’ve always just written of D because of the problems with what parts of the compiler are and are not FOSS. Maybe it’s more straightforward now, but it’s not something I’m incredibly interested in investigating, and I suspect I’m not the only one.