5 ms·
I always thought that the Alan Kay model is fundamentally misguided, in that it is explicitly inspired by cell biology and distributed computer systems, ie extr
by recursivecaveat 2y ago
I always thought that the Alan Kay model is fundamentally misguided, in that it is explicitly inspired by cell biology and distributed computer systems, ie extremely hard problems. Basically all the hardest things to model, predict design, and debug are these kind of bottom up systems where all interesting behavior comes from the emergent runtime interaction of tons of tiny components. This works okay for cells because there is no programmer floating above the system trying to understand it and make specific changes, but until we start programming by natural selection I wouldn't describe it as a good paradigm for organizing behavior.
I much prefer my programs to have a sort of top down structure, more like a military instead of an economy. Obviously late-binding and dynamic behavior is many times necessary, but I would not lean in to it, in the same way I would not say, make all my variables global just because sometimes you need it.
- bmitc 2y agoBut many times, such top-down structure cannot work, especially if your program interacts with external systems, such as hardware. In such systems, you need a model in your program that is very similar to biological systems. For example, a module that interacts with hardware needs to be self-sufficient and asynchronous, interacting with the rest of the system through messaging. Even if there is a top-down structure at the higher-level, such structure cannot fully dictate how the hardware behaves or performs. For example, someone outside of your program could go off and change settings on the front panel.
- pakl 2y agoIMHO (from the viewpoint of a neuroscientist) the biological inspiration is quite measured and restrained in his work… The problem he was proposing we solve is computing with heterogenous “machines”. This doesn’t preclude the regimented organization you are favoring, above. Please see my other comment on call-by-meaning.
- cxr 2y agoThis is also why the "computer science" label (until now) never really made sense for traditional programming; you start from an intention to reach a goal, and contrive a system that can achieve it, generally understanding the means by which it is accomplished from end to end—or at least you have the option of zooming in from a given level of abstraction to a lower one to work out how the pieces fit together there and play their part in getting us where we're aiming at the highest level. Science isn't that. Science is what humanity has to resort to when a thing is not knowable by other means—the preferred from for modification is not at hand. Generally, when someone is doing something akin to science where traditional software development is concerned, it's regarded as sloppy—that you need to stop goofing around and actually do the work of understanding and reasoning about what you're dealing with instead of poking at it and making observations and inferences. This is different now with black box systems like LLMs and other neural networks (transformer-based or not) that we don't understand because they were never actually designed from a blueprint that lends itself to an understanding by others that approaches the understanding of the originator(s). There's an argument to be made that our avoidance of systems that call for actual science and our attraction to focusing on the smaller subset consisting of grokkable systems, out of a larger set of possible ones, is an indication of immaturity. It's parochial and blinkered. We are big fish in a small pond.
- threatofrain 2y ago> Science isn't that. Science is what humanity has to resort to when a thing is not knowable by other means—the preferred from for modification is not at hand. Science is description and explanation on top of empiricism. It is the first means by which people understand things, not the last, as formal methods came way late. This drive to properly name things also gets into the somewhat similar debate of whether math is discovered or invented. And somewhere someone is trying to determine whether it's appropriate to call math as science, art, or engineering.
- saghm 2y ago> Science is description and explanation on top of empiricism. It is the first means by which people understand things, not the last, as formal methods came way late. I don't think that's at odds with what the parent comment said; the reason we use empiricism and description for analyzing reality is because we didn't create it and we don't know the rules beforehand. When designing a software system, you _choose_ the rules of which things interact and which things don't, and how those interactions occur; there's no need for empiricism in order to discover these interactions. We don't necessarily need to use science to understand our software systems because we rule over them by fiat and can choose to design them in ways that make it easier for us to understand them.
- azinman2 2y agoScience is a method designed to get closer to truth. That’s all.
- threatofrain 2y agoScience is distinguished from religion, pure metaphysics, and other approaches to truth through a focus on empiricism and a formalization of explanatory methods.
- teleforce 2y agoAnything that calls itself a Science, probably isn’t… [1] https://duncan.hull.name/2011/07/01/but-is-it-science/ https://duncan.hull.name/2011/07/01/but-is-it-science/
- deleted 2y ago[deleted]
- panarchy 2y ago"until we start programming by natural selection" We already have reinforcement and other types of machine learning?
- linguae 2y agoEven closer to the OP, there was a branch of AI in the 1990s known as genetic programming that literally applied the concept of natural selection to solving certain types of problems: https://mitpress.mit.edu/9780262527910/genetic-programming/ https://mitpress.mit.edu/9780262527910/genetic-programming/
- armitron 2y agoTop down architecture doesn’t scale and puts a hard limit on the problems one can tackle before complexity explodes. The Internet, the largest distributed system we have, is based on bottom-up cell-like biologically inspired models. Kay was prescient and decades ahead of his time.
- alexashka 2y agoWhat is your argument, besides personal taste? Something being hard is not an argument for or against anything. Alan Kay is misguided because he prefers a hard thing and you prefer a simpler thing?
- lmm 2y ago> Something being hard is not an argument for or against anything. A paradigm being hard to get things done in is definitely an argument against the value of that paradigm.
- why-el 2y agoTo be inspired by something really has no bearing on how the _inspired_ thing is built. I think you place much emphasis on that but really it does not bring much to the argument. One can say that a plane was inspired by a bird (and it is, since we wouldn't to build one if we didn't see birds flying), but a plane is not designed like a bird. I also somewhat contest that "interesting behavior comes from the emergent runtime interaction of tons of tiny components". There can be very tight, hierarchical structures to programs designed in the way Alan Kay talks about. He is promoting clear, manageable interactions, not emergent unpredictability, which is something I am sure you came across (we all did), but I would not go so far as describe the whole model of Kay as "fundamentally misguided". He talks of "clear fences", which can be understood to refer to things like "actor-based" models, with controlled, clear messages, as done in languages such as Erlang.
- atomicnature 2y agoWhat do you think of the Internet? Has it worked? Has it scaled? Is it reliable? Remember that Alan Kay, his team and his colleagues had a lot to do with this thing you are using to rant here :)
- lmm 2y ago> What do you think of the Internet? Has it worked? Has it scaled? Is it reliable? The internet has certainly grown and does certain things reliably, but it's also extremely difficult to control or change. For most business purposes, producing something like the internet would be a failure. > Remember that Alan Kay, his team and his colleagues had a lot to do with this thing you are using to rant here :) Given how difficult his ideas apparently are to convey and how little the programming paradigms that actually get used to make things embody them, I find that pretty dubious. E.g. didn't he explicitly disavow C++?
- atomicnature 2y agoWhy'd anyone judge Alan Kay on making any particular biz succeed? He's been a big contributor to the "ideas ecosystem" as a researcher's researcher. It's like asking Bezos to care about the Internet as a technical concept ("Internet? Schminternet? I don't care as long as it delivers the best customer experience!"). Kay was and still is a dedicated researcher - and he has had great influence on people like Jobs/Bezos as well - behind the scenes. There are very few parts of modern technology untouched by his ideas. He's a Turing Award winner for a reason, you know. Re C++ - Kay's job as a researcher is not to defend whatever sh*t humans have figured out & are content with but to paint a picture of the future, build teams around it and demonstrate prototypes. He has done that exceedingly well I'd say.
- lmm 2y agoWell, put it this way: in a world where Kay was a charlatan (not in the sense of deliberately lying, but in the sense of having just flash and no substance) who was in the right place at the right time, what would be different? How can I tell?
- nine_k 2y agoI would say that Alan Kay was trying to create something like Erlang, if you look at the early plans, and the terminology like "messages". But due to hardware limitations of the time, he ended up with a much less capable system, lacking the asynchronicity and heterogeneity. Erlang appeared 15 years later, and was / is quite successful in certain niches, more recently also as Elixir.
- DrScientist 2y ago> but until we start programming by natural selection I wouldn't describe it as a good paradigm for organizing behavior. But aren't we? The modern ML revolution is programming via natural selection. Emergent behaviour from complex interactions of simple components trained by selection. And of course, experience underlines how hard these programmes are to reason about. However, seems to me, the key trick of these systems is that very complexity that makes them so hard to understand is what gives them their computational power.
- TZubiri 2y ago"This works okay for cells because there is no programmer floating above the system trying to understand it and make specific changes." Physicians. "but until we start programming by natural selection I wouldn't describe it as a good paradigm for organizing behavior." Machine learning, alternatively startups selected by market forces.