A Conversation with Alan Kay (2004)
queue.acm.org
queue.acm.org
If you want to say what you think is important about an article, please do so in a comment. Then your view is on a level playing field with everyone else's: https://hn.algolia.com/?dateRange=all&page=0&prefix=false&qu...
(Submitted title was Alan Kay: ““Maxwell’s Equations of Software ”“)
> These were Maxwell’s Equations of Software! This is the whole world of programming in a few lines that I can put my hand over.
Here's the whole (short) section, which culminates in the definition of eval.
"An Universal Lisp Function" http://web.cse.ohio-state.edu/~rountev.1/6341/pdf/Manual.pdf...
https://www.youtube.com/watch?v=OyfBQmvr2Hc
It's the above and deriving it. It is fascinating to think of it as the essence of a language in 13 lines.
2019 (1): https://news.ycombinator.com/item?id=19051447
2016 (6): https://news.ycombinator.com/item?id=12898862
2015 (4): https://news.ycombinator.com/item?id=9588504
2012 (11): https://news.ycombinator.com/item?id=3945146
2011 (1): https://news.ycombinator.com/item?id=2114193
2010 (4): https://news.ycombinator.com/item?id=1407218
2009 (10): https://news.ycombinator.com/item?id=515188
For a given design problem there are usually a handful of sensible solutions, so the solution complexity is bounded below accordingly. With buildings, machines etc, the laws of physics and economics bounds potential solutions above. This is not the case with software! Given the ever increasing amounts of processing and memory available, solution complexity is bounded above only by human ingenuity (particularly the kind of ingenuity that emerges from large groups) - and occasionally the necessity for someone to actually understand what is going on.
Anyway, reminder, while you're visiting ACM, that the entire Digital Library, including books, is free to download until June 30, 2020: https://news.ycombinator.com/item?id=22794984 .
a pyriamid is a huge srtucture with tiny tiny passages that are of use to almost no one, which took massive amounts of work and time to accomplish
whereas a cathedral constructed mostly of arches made of less than 100th or a 1000th of the material could scale to the size of a pyramid yet internally be mostly air
taken further, a geodisic dome could scale even further and easily encolse both, with even less materials
so what he is saying is, architecture matters in relation to effort, scalability and also structural integrity
> Perhaps it was commercialization in the 1980s that killed off the next expected new thing. Our plan and our hope was that the next generation of kids would come along and do something better than Smalltalk around 1984 or so. We all thought that the next level of programming language would be much more strategic and even policy-oriented and would have much more knowledge about what it was trying to do. But a variety of different things conspired together, and that next generation actually didn’t show up. One could actually argue—as I sometimes do—that the success of commercial personal computing and operating systems has actually led to a considerable retrogression in many, many respects. You could think of it as putting a low-pass filter on some of the good ideas from the ’60s and ’70s, as computing spread out much, much faster than educating unsophisticated people can happen. In the last 25 years or so, we actually got something like a pop culture, similar to what happened when television came on the scene and some of its inventors thought it would be a way of getting Shakespeare to the masses. But they forgot that you have to be more sophisticated and have more perspective to understand Shakespeare. What television was able to do was to capture people as they were. So I think the lack of a real computer science today, and the lack of real software engineering today, is partly due to this pop culture.
> The user interface, which is still the predominant approach today, is a user interface as the access to function. If the area is interesting, you eventually wind up with something that looks like the control panel of a nuclear reactor. So this is the agglutination of features. [...] Corporate buyers often buy in terms of feature sets. But at PARC our idea was, since you never step in the same river twice, the number-one thing you want to make the user interface be is a learning environment—something that’s explorable in various ways, something that is going to change over the lifetime of the user using this environment. New things are going to come on, and what does it mean for those new things to happen? This means improvements not only in the applications but also in the user interface itself.
> SF — What do you wish you had done differently in the Smalltalk era? AK — I had the world’s greatest group, and I should have made the world’s two greatest groups. I didn’t realize there are benefits to having real implementers and real users, and there are benefits to starting from scratch every few months. I hired finishers because I’m a good starter and a poor finisher, but it took me a long time to realize that I was interfering with them by trying to improve things.
So if Smalltalk was so great where is babel-plugin-smalltalk or smalltalk-jvm? Frankly I’m not even going to google and see if they exist. The point is I don’t know of them and no one I know is using them.
> It wasn't old or overdone when they did it, because they were the first ones to do it. But the things it created were so brilliant and popular, they became woven into the fabric of that show's genre.
https://tvtropes.org/pmwiki/pmwiki.php/Main/SeinfeldIsUnfunn...
Smalltalk is woven in to the fabric of every modern object-oriented programming language.
I've worked with a lot of banks and only ever see Java and Python (mostly Java tho). For high speed trading systems I've usually heard of C/C++