4 ms·
Clear as mud. No matter how good Alan Kay is, he failed to properly describe messaging, as used in an Actor environment. He missed the Actor Programming model.
by smallstepforman 2y ago
Clear as mud. No matter how good Alan Kay is, he failed to properly describe messaging, as used in an Actor environment. He missed the Actor Programming model. Also the late Carl Hewitt failed to properly explain and implement a working Actor model. A shame, since there are many working Actor implementations in many languages.
- mpweiher 2y agoIt thought the final paragraph was very clear: I would suggest that more progress could be made if the smart and talented Squeak list would think more about what the next step in metaprogramming should be - how can we get great power, parsimony, AND security of meaning? Did you mean that he should have described actors, but did not? To me at least, "ma" goes beyond just the actor model.
- nabla9 2y agoHe is not describing Actor Programming model. He describe his own model. Message passing in Smalltalk predates Hewitts Actor Model and was used as inspiration. The messaging in Smalltalk is little different and IMHO better in many cases.
- mpweiher 2y agoBut he's not describing Smalltalk. He is describing what he wanted Smalltalk to evolve into. Which he didn't know how to do, because otherwise we would have it by now. This quip by him from OOPSLA '97 is well-known: I made up the term object oriented. And I can tell you I did not have C++ in mind.. A little less well-known are the words that immediately follow: So, the important thing here is: I have many of the same feelings about Smalltalk https://youtu.be/oKg1hTOQXoY?t=634 https://youtu.be/oKg1hTOQXoY?t=634
- Phiwise_ 2y agoWhy would you a hypothetical quote of Kay for cutting off the full context that he also has criticisms of Smalltalk, and then cut yourself before he specifies that what he's not committed to is the syntax and library system, while the message-passing execution model is the important thing he's trying to promote? That just muddies the waters more. This email was sent a year after OOPSLA 97, so clearly he can't have been talking about messaging as Smalltalk's problem. As for where he wants Smalltalk to go, that's what Squeak was for. He talked about it on plenty of occasions, at least one of which was also before OOPSLA, and actually did get a research team together to develop it out in the late 2000s: https://tinlizzie.org/IA/index.php/Papers_from_Viewpoints_Research_Institute https://tinlizzie.org/IA/index.php/Papers_from_Viewpoints_Re...
- Rochus 2y agoThe original Smalltalk in 1972, the language of which Kay designed, indeed had some kind of message passing (even though it was synchronous, the receiving object interpreted messages composed of tokens). Smalltalk-76, essentially designed by Ingalls, who was also the sole author of the 1978 publication, made a fundamental shift towards compiled virtual methods, essentially as it was done in Simula 67 and adopted by C++ (though much less efficient). So yes, it makes pretty much sense when Kay claims that he didn't have C++ nor Smalltalk in mind when talking about OO. See also https://dl.acm.org/doi/abs/10.1145/3386335 https://dl.acm.org/doi/abs/10.1145/3386335.
- layer8 2y agoMost of Alan Kay’s writings on that topic can be reduced to something along the lines of “I want things to be nice and problem-free. I have a vague feeling that there is a methodology called ‘OOP’ and ‘messaging’ that would achieve that. All systems that claim to be OOP that are not nice and problem-free are obviously missing the point.”
- fidotron 2y agoThe problem with this is he led teams that built systems that proved his point.
- layer8 2y agoThey built systems, but I disagree that those proved his point. It’s not even clear what precisely his point is and how you would evaluate success or failure for it. Regarding Smalltalk, there are conceptual reasons why it failed, some of which are mentioned in this thread: https://news.ycombinator.com/item?id=10071681 https://news.ycombinator.com/item?id=10071681
- kragen 2y agoit failed? today's most popular programming languages are about half smalltalk derivatives (python, js, java, c#, and vb.net, but not c++, c, golang, sql, and fortran), apple is the world's most important computer manufacturer, wimp guis still dominate on computers that have keyboards, every web browser includes an ide with an object inspector, and virtually all programming is done in ides that doesn't sound like failure to me
- bitwize 2y agoThe royalties on the laser printer alone earned Xerox back PARC's entire expenses 200 times over but PaRc FaIlEd BeCaUsE xErOx DiDn'T kNoW hOw To mOnEtIzE tHeIr InVeNtIoNs.
- igouy 2y ago> some of which are mentioned in this thread Tell us which three you regard as most important; and which of the 61 comments in that thread demonstrate most clearly that they are important failings.
- emmanueloga_ 2y agoKay’s ideas are definitely interesting, but they can feel pretty vague. For example, what are these "fences" or "metaboundaries" he keeps mentioning? They probably aren’t anything like type checking since he seems to love dynamic typing and late binding. Did either Smalltalk or Squeak implement any of these "metaboundaries" at any point after this 1998 message? When it comes to "messaging," it usually just boils down to method dispatch or large switch statements. It doesn’t seem like some magical concept we haven't figured out yet; it’s more like something we already know. When I see Kay's complaining about messaging, I imagine he also complaining about other things: "WE NEED BETTER WHEELS", or "WE NEED BETTER ELECTRICITY" (?). What do you actually want, Alan? :-p From my experience with large Ruby codebases and publish/subscribe systems, debugging can become quite messy when there’s too much flexibility. I think this is what Kay is getting at, even if he maintains the idea that a dynamic system like Smalltalk will somehow evolve to fix these issues.
- mpweiher 2y ago> Kay’s ideas are definitely interesting, but they can feel pretty vague They seem vague because they are research questions. Tough research questions. > [messaging] usually just boils down to method dispatch or large switch statements. And that's the problem. > [not something] we haven't figured out yet; Well, we obviously haven't figured it out yet, because it ain't large switch statements or (just) method dispatch. > debugging can become quite messy when there’s too much flexibility. Exactly what he's talking about! Languages like Ruby have the metaprogramming flexibility, but they are lacking in the security of meaning department. Languages like Go are pretty good in the security of meaning department, but lacking in the flexibility/expressiveness department. So far, we have achieved either/or. He is saying what we need is both. It's a tough problem.
- cxr 2y ago> Kay’s ideas are definitely interesting, but they can feel pretty vague. I agree on the whole, but I think he followed through this time. He gave pretty a set of cogent examples that doesn't leave the whole thing coming across as incoherent (like a mystic we're supposed to revere and take their words as some form of high wisdom that would make sense if only we could attain the requisite form of enlightenment). Viz: > I would say that a system that allowed other metathings to be done in the ordinary course of programming (like changing what inheritance means, or what is an instance) is a bad design. (There are two things being communicated here—what sorts of things he means when talking about transgressing the metaboundaries, and a position about whether it's a good idea to do it willy nilly—with his position on the latter being: No. The former seems clear enough and his take on the latter is definitely reasonable and might even qualify as "wise".)
- fidotron 2y agoIf you want his view on Actors then the conversation with Joe Armstrong is enlightening. The main common ground they share is that CSP becomes too synchronized and particular, making it too difficult to use for systems in the large.
- pakl 2y agoActors solves a very different problem. Alan Kay was talking about enabling computing across heterogeneous systems.
- jayd16 2y agoWhat about actors makes that impossible?