423 karma · joined April 27, 2021
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_Re...
I've painted a bit of a skewed picture here, but not by much. You can still collect later computers, and people do, but it's understandable that most people are drawn to the "cambrian explosion" of the whole line of history, no? Variety is the spice of life, and plenty its staple food to be spiced.
[0] https://www.cbsnews.com/news/pepsis-nonsensical-logo-redesig...
[0] https://en.wikipedia.org/wiki/Snap!_(programming_language)
For examples, McCarthy's original purpose was to demonstrate the effectiveness of a symbolic differentiation process he had dreamt up, so he devised the syntax and meta-circular evaluator of lisp to make it maximally obvious from the program text that the differentiation system was mathematically correct, while keeping it maximally obvious from the program model definition that it was computationally concrete. In response to new trends in the programming field, Lispers write mind-bending books like "Let over Lambda", "The Art of the Metaobject Protocol", or "Software Design for Flexibility" to show that, when your syntax and model is right, you can radically change how you solve problems not by rewriting your spec or switching languages but by just adding more lisp to the lisp you already have, which has the same simplicity as radically increasing the sculptures a child can make by just adding more lego to the lego they already have.
Lisps, on the other hand, tend to add features as just more convenient versions of things they can already do: Macrology for self-adapting code? Just lisp functions on lisp data structures corresponding to lisp functions. Actors for a concurrent execution model? Lisp functions as lisp data parameterized by higher-order lisp functions. Composable continuations for error handling? A lisp function exploring a lisp data structure of lisp data structures of lisp functions. It's turtles all the way down. Paul Graham points out that you can understand the social hype the presence or absence of a feature like operator overloading as a consequence of friction-ful syntaxes, while lispers care much less because replacing a function you don't prefer with one you do for your use case is straightforward in a friction-free syntax. When he decided to build a reddit clone for tech entrepreneurs he didn't need an outside data system just to get started, he only had to spin up a pool of threads for sessions to directly modify s-expression literals in memory, which he could save or modify by printing straight to disk and load by just reading the lisp syntax back into memory like all lisp code is, with no execution intermediary like languages such as the Pythons tend to have complicating things enough to make comparatively big services like a whole database for a private gossip forum worth the effort. The syntax doesn't make lisp first-order beautiful, it makes lisp the hacker's local maximum, which is second-order beautiful, and honestly isn't much harder to get into the habit of reading once you know it's worth it.
This is a truly absurd comparison. In the first place, yes, it is in fact much easier to make physical products safer, as anyone who's ever seen a warning line or safety guard could tell you. The manufacturers of CNC mills don't accept liability by making it impossible to run a bad batch that could kill someone, they just put the whole machine in a steel box and call it a day. The software consumers want has no equivalent solution. What's worse, in the second place, these engineers aren't actually held responsible for the equivalent of most software breaches already. There pretty much is zero liability for tampering or misuse, thus the instruction booklet of 70% legal warnings that still comes with everything you buy even in this age of cutting costs. Arguing software should be held to the same standard as physical products, when software has no equivalent of safety lockouts, is just to argue it should include acceptable use sections in its terms and conditions, which is no real improvement to people's security in the face of malicious actors.
>"Big data" is a way that a lot of people are trying to make money today, and it's a favorite of marketing people because it's in the wind. ... But in fact, the interesting future is not about data at all, but about meaning, and Stephen[ Wolfram]'s demos showed you a thought which most people in the computing world haven't had, which is "What if my programming language actually knew something". And, in fact, what if my user interface actually knew something? Not like Siri, which "knows" things, but what if it actually knew about me, and what if it actually knew about the contexts in which I'm trying to do things? That's an example of a leap. That set of ideas is actually old, and it was funded back when a lot of leap ideas were funded, and when the funding went away many of those ideas that weren't realized by about 1980 just haven't been worked on since, and that's something that'd be interesting to talk about.
"The Future Doesn't Have To Be Incremental": https://www.youtube.com/watch?v=gTAghAJcO1o
Not that I necessarily agree with the article's concludions, but if the thesis is supposed to be that Kay disagrees with how we use big data today as a jumping-off point for reexamination, then this and the reference to Likleider's communicating with aliens problem work just fine for me.
-Nassim Nicholas Taleb, "The Bed of Procrustes"
This is already in the piece. Why waste time repeating it?