7 ms·
As a professional molecular biologist who now does programming for a living, I wonder if the metaphor could be turned on its head: Imagine that every one of pe
by jakobnissen 5y ago
As a professional molecular biologist who now does programming for a living, I wonder if the metaphor could be turned on its head:
Imagine that every one of people who designed computers, from the chip makers, to the ones making the instruction set, to the firmware coders etc. had no concept of "abstraction", adherence to standards or even a logical, coherent design. Would computers be more like cells then?
I could imagine a CPU which does not have a clock to keep everything syncronized - where the die is not separated into logical areas of decoders ALUs etc but just a jumped mess of wires and logic gates that somehow works to do computation. There is no "assembly language" for this CPU, but give it the right binary inputs at the right time and it will probably do what you ask it to (depending on its complicated internal state).
- jacquesm 5y agoGenetic algorithms tend to design circuits that have some elements in common with what you describe.
- jcims 5y agoIt's my annual opportunity to trot out one of my favorite articles ever: https://www.damninteresting.com/on-the-origin-of-circuits/ https://www.damninteresting.com/on-the-origin-of-circuits/
- jacquesm 5y agoThank you for reposting this, it is still after so many years one of the most interesting results from computing that I am aware of the way that something that looks entirely alien to my electronics designer eye actually works is pure magic.
- nyanpasu64 5y agoThis horrifies me... This is why I'm not a biologist.
- jean_valje4n 5y agoThere is abstraction though. It's just fuzzy. 3 DNA base pairs abstract to an amino acid which has chemical properties. It's just theres some redundancy which 3 base pairs get converted to an amino acid. And if there's a single mistake somewhere with just one amino acid, the structure of the thousand amino acid long protein probably has some fault tolerance there. Those amino acids are arranged in a way in the DNA code to make bigger motifs, alpha helices, beta sheets, active sites, coordinating complexes with inorganic ions. It's all in the DNA code, though I suspect this train of thoughts is influenced by epigenetics. Parts of the DNA code also responsible for the regulation of how much the protein itself is expressed. That can still abstract to conditional and loop structures. Yes some of the base pairs strongly bind together in the double helice which can influence stability of the DNA strand. The GC pairing has 3 hydrogen bonds, where AT has 2, but I think this influences the distribution of junk DNA, as you still need codons to make proteins which is the central dogma of biology.
- PaulDavisThe1st 5y agoThere are lots of problems with this approach, even though of course it is also true on some rather important level. The first level of problems is that what you're describing applies to only a tiny percentage of the DNA in a cell, and even for that DNA, it may overlap/exist in parallel with completely different "codings" that are more to do with structure, packing and replication machinery than protein coding.
- morninglight 5y ago> This is why I'm not a biologist. I don't mean to distress you, but you are a biological computer. Just rejoice that you needn't read the release notes.
- PaulDavisThe1st 5y agothe definition of "computer" in "you are a biological computer" has been the subject of intense philosophical and scientific discussion for more than 70 years, and at this point I would say the best summary of the state of that discussion is "well, maybe but also maybe not".
- lou1306 5y agoIndeed asynchronous digital systems, such as asynchonous CPUs or "wavefront arrays" [1], have been experimented with in the past. Looks like they never picked up steam, though. [0] https://en.wikipedia.org/wiki/Asynchronous_circuit#Asynchronous_CPU https://en.wikipedia.org/wiki/Asynchronous_circuit#Asynchron... [1] https://en.wikipedia.org/wiki/Systolic_array https://en.wikipedia.org/wiki/Systolic_array
- not2b 5y agoAsynchronous circuits are very hard to design and prove correct unless they are very small, though there are abstractions that work for specific cases. Debugging race conditions and metastability problems, or proving that they can't happen, is no fun. But there's massive support for synchronous logic design, it is a well-understood discipline.
- hiptobecubic 5y agoIf we get to the point where design is done by algorithm and no one needs to understand why it works in detail, them I would fully expect that to happen. We're not there and I think that has been good. We have "evolved" computer hardware much faster than I would expect otherwise and have seen several very evolutionarily-challenging discontinuous jumps in design.
- nfkrk8j 5y ago
- moring 5y agoThe big difference between computers and living organisms is that computers are designed by humans and meant to be understood by humans. Those that design computers must understand them, and so do those that write code for them, those that write compilers, those that write operating systems, and so on. None of this applies to a living being or any of its parts. I think your thought experiment makes the mistake that such an abstraction-less computer would still be designed and built by humans. That won't work, because no human can understand the whole of it all at once, hence the need for abstractions. A computer "designed" by an incredibly complex computer program could push that barrier but probably not break it. If you really want an analogy to actual life, such a computer would have to be the outcome of some evolution-like process. And no, not what people like to call "evolutionary process" or something like that today, but actual evolution that mirrors biology -- and quickly becomes too complex to understand by humans.
- goldforever 5y ago
- Ericson2314 5y ago> Imagine that every one of people who designed computers, from the chip makers, to the ones making the instruction set, to the firmware coders etc. had no concept of "abstraction", adherence to standards or even a logical, coherent design. Would computers be more like cells then? Honestly that sounds like basically what we got. The "design coherence" on the scale of the entire industry has been pretty low for decades.
- edge17 5y agoNot sure what you mean here. What would high "design coherence" on the scale of the entire industry look like? I am sure things could be more optimal somehow, but the industry generally operates on a principle of interfaces - and it's true, the higher level you go (all the way up to the people using the technology) the messier it gets, but it certainly doesn't feel like an organism with no concept of "abstraction" as the parent describes.
- Ericson2314 5y ago> Not sure what you mean here. What would high "design coherence" on the scale of the entire industry look like? Like everyone uses NixOS/Nixpkgs and also it's more ergonomic. > But the industry generally operates on a principle of interfaces Aha! Actually I would say it does not, and there in is the problem. Most interfaces only have a few implementations, and as much as I love FOSS it has made that problem worse (in the context of the economy we've got). The interfaces we do have tend to become monotonically more complex over time as there is no systematic culling, and the result is we increasingly drown in accidental complexity. Basically, accumulated implementations are viewed as big scary problems were maintaince to simplify is a cost no one wants to bare. A lot of this is the same critique as http://langsec.org/ http://langsec.org/, generalized to areas other than security.
- javajosh 5y ago>a [jumbled] mess of wires and logic gates that somehow works to do computation You could create this situation explicitly using FPGAs. >no concept of "abstraction", adherence to standards or even a logical, coherent design There's no concept of abstraction, but there is remarkable consistency in the genetic code for all that. The fact that these tiny machines are understandable at all is remarkable. Our biosphere is effectively a single process with an uptime of ~4 billion years, including the ability to recover from meteor strikes that killed off 99% of species, multiple times (albeit with different species!)
- medstrom 5y agoNone of the mass extinctions killed 99%. The worst one, the Permian-Triassic extinction event, killed 83% of genera. https://en.wikipedia.org/wiki/Permian-Triassic_extinction_event https://en.wikipedia.org/wiki/Permian-Triassic_extinction_ev...
- labster 5y agoWait until 2100. We’ll have 99% of species gone, and we don’t even have to change what we’re doing.
- Enginerrrd 5y agoCan you provide a source for that assertion? It sounds unlikely to be true, but I'd like to know if it's true.
- labster 5y agoSource is my depression, sense of powerlessness about the future, and listening to too much Bernie talking about what the 1% is going to do to the 99%. Logically, I know this can’t be worse than the K-T boundary, where a whole continent of forests simultaneously caught fire, and a hypercane formed over the Yucatán. On the first day. But it sure feels that bad. We live in a world people flip out because one wolf was reintroduced to a broken ecosystem yet no one gives a shit about the million people a year who die from fossil fuel air pollution. That one’s real: https://arstechnica.com/science/2021/12/fossil-fuel-combustion-kills-more-than-1-million-people-every-year-study-says/ https://arstechnica.com/science/2021/12/fossil-fuel-combusti...
- tw600040 5y ago// had no concept of "abstraction", adherence to standards or even a logical, coherent design. I see your point. But I would like to make a counterargument. If you consider the time scale with which biological systems have to work, you probably won't call their design illogical or incoherent. Computer programs have been around for not even a century. Billion years is a whole different ballgame. Can anyone even imagine writing a computer program with any guarantee that it would be readable by someone 1000 years from now? We have a tough time figuring out what our our own code does a few months after writing them. And wrt fault tolerance, resilience, I don't know, the design language of nature definitely seems far more evolved..
- regularfry 5y agoYour retinas are mounted back to front, and as a result will fall off if they're knocked too hard. Nature works on a "just good enough" principle, in general.
- TremendousJudge 5y agoThere are a lot of classical examples of the incoherence of biological systems -- a very common one is some nerves on the neck of giraffes[0]. On this analogy, the most important part is that you're never, ever, in the millions of generations of DNA, allowed to do a rewrite. Only small, incremental changes, each one of them giving the organism more fitness than before. No abstraction can survive this constraint -- a legacy codebase several decades old that's never seen a rewrite is already an unintelligible mess. I think the code analogy holds here. [0] https://bioone.org/journals/acta-palaeontologica-polonica/volume-57/issue-2/app.2011.0019/A-Monument-of-Inefficiency--The-Presumed-Course-of-the/10.4202/app.2011.0019.full https://bioone.org/journals/acta-palaeontologica-polonica/vo...
- jdsully 5y agoI've seen a few codebases that are multiple decades old without rewrites. They are understandable and intelligible. Linux is 30 years old as an open source example.