5 ms·
it is so strange how things evolve in parallel in various fields. We used to love object oriented modeling with inheritance hierarchies, until the point we real
by bsaul 5y ago
it is so strange how things evolve in parallel in various fields. We used to love object oriented modeling with inheritance hierarchies, until the point we realized how it was so hard to have any hierarchy perfectly match a given domain.
Then we moved to composability + interface, realizing it's easier to compose attributes (often related to a given set of functions) to make any graph of structures instead of just a tree.
Just two days ago looking at how virus recombined themselves in the most random ways, i wondered if the species classification of the previous centuries based on trees were not destined to follow the same path.
- Blikkentrekker 5y agoIn this case “parallel” is: > First, what is a tree? It’s a big long-lived self-supporting plant with leaves and wood. That is such a broad thing that it's hardly remarkable. I find carcinization, or independent evolution of eyeballs from completely different tissues to be more remarkable. This is no more remarkable than that animals independently evolved to be large, and in doing so evolved different hard support structures to support this, which for instance worms lack.
- archibaldJ 5y agoThere are something very interesting about structures and costs here. Perhaps two types of costs, cost-to-execute and (meta-)cost-to-transform. In general one can argue that hierarchy optimises for cost-to-execute while composition optimises for cost-to-transform. Maybe in some way most things can be viewed from the lense of a compiler/interpreter. "Structures" are really just existing meta-cache for how to efficiently traverse the language to enforce semantics that result in computations. e.g. tail call optimizations are basically structures in the compilers that help to traverse a subset of the language (i.e. tail recursion) more efficiently time-and-space-wise
- thelastinuit 5y agoI’m tripping and metatripping on this... do you have literature among those lines? Love to read about it more.
- archibaldJ 5y agoA few that came to mind - The Tao of programming by Geoffrey James: https://www.mit.edu/~xela/tao.html https://www.mit.edu/~xela/tao.html - An Analytical Approach to Programs as Data Objects by Olivier Danvy https://cs.au.dk/~danvy/DSc/00_dissertation-for-printing.pdf https://cs.au.dk/~danvy/DSc/00_dissertation-for-printing.pdf - Maps of Meaning: Gautama Buddha, Adam and Eve by Jordan B Peterson - https://www.youtube.com/watch?v=F7T5cg1a77A https://www.youtube.com/watch?v=F7T5cg1a77A - Theories of Programming Languages by John C. Reynolds https://www.amazon.com/Theories-Programming-Languages-John-Reynolds/dp/0521106974 https://www.amazon.com/Theories-Programming-Languages-John-R...
- agumonkey 5y agoReynolds and Danvy, top choice Have you ever been into chemistry-oriented programming models ?
- archibaldJ 5y agoooh haven't touched on that; any pointers would you recommend? I think the next start-up I work on would be a biochemical-driven one)
- agumonkey 5y agoI think jocaml had chemical reaction inspired programming model. Throw a large bunch of functions / object in a swarm to compute large scale / low coupling.
- slver 5y ago> We used to love object oriented modeling with inheritance hierarchies, until the point we realized how it was so hard to have any hierarchy perfectly match a given domain. You're describing a (for the lack of a better term) "fad cycle". Our industry, like all, goes through cycles where a given practice is declares holy and sacrosanct, doctrine evolves around it, eventually flaws in the idealistic view appear and because the entire foundation before was "this is flawless and essential" and turns out it's not flawless and essential, the practice is wholly rejected. It's swinging to extremes. Neither of which is useful. Experienced developers neither considered inheritance crucial property of OOP, nor they avoid it completely now. Inheritance is static decoration. Decoration is a form of composition. It's all forms of the same thing, where you can make some choices AOT and some choices JIT and you pay for AOT vs JIT in terms of ending up with a different performance/flexibility balance.
- bsaul 5y agothere definitely a fad cycle , however i think it's also due to the fact that when exploring a problem we often try the simple approach first, up until we reach the limits of that approach, then move to a more complete one. I don't think we'll ever get back to modelling purely with strict trees of concepts, because this is simply not how things are in the real world.
- slver 5y agoWe never did model strictly with trees IMHO. The closest I've seen is probably OOP widgets, but there it makes sense (and yes I've seen stupid stuff in those libraries, but in general they make sense).
- beaconstudios 5y agoWhen multiple disparate states evolve towards the same end, you're probably looking at what's known as an attractor - a state in state-space that is a stable local maxima. If evolution is an algorithm that optimises environmental fitness then some combinations of traits will just be really good at survival and reproduction and species with nearby traits will often evolve towards that specific set of traits.
- agumonkey 5y agoIs theory of evolution describing attractors in its own way ? I could never find a clear answer.
- beaconstudios 5y agoEvolution is a state space search and some states in that space are more optimal than others, so yeah it can be looked at from a systems perspective as having attractor states.
- agumonkey 5y agowhat was important to me is that a state space search can generate similar walks even though the species might have no genetic legacy link [0], which makes evolution trees just too shallow an abstraction (but again, I never read real books about the matter, maybe the trees we see regularly are only one part of the theory) [0] two organism can evolve light sensing because of appropriate context and some luck for instance, but you can't search for a common ancestor based on this