[1] http://news.ycombinator.com/item?id=4010407
[2] http://minnie.tuhs.org/cgi-bin/utree.pl?file=V7
[3] newproc() in http://minnie.tuhs.org/cgi-bin/utree.pl?file=V7/usr/sys/sys/...
[1] http://news.ycombinator.com/item?id=4010407
[2] http://minnie.tuhs.org/cgi-bin/utree.pl?file=V7
[3] newproc() in http://minnie.tuhs.org/cgi-bin/utree.pl?file=V7/usr/sys/sys/...
In summary, the goal is a user-facing system in 25k SLOC, from kernel to GUI apps, including all the code for compilers for the custom languages they made. They call the languages "runnable maths", or "active maths", where they think of a minimal notation to specify how a system should behave, and then implement a compiler to run that notation as code. They manage this through a compiler-writing language, ometa.
For example, to implement TCP/IP, they parse the ASCII tables from the RFCs as code. Seriously, they just take it as is, and have a compiler to run it as code. The implementation is supposed to be around 200 LOC (includes the code written in Ometa for their compiler).
There's also a graphic subsystem, apparently with all the functionality of Cairo (which is 20k LOC) in about 800 LOC.
Crucially, all this code is supposed to be very readable. Not line noise like APL. The expressiveness comes from having custom languages.
I believe most of the code is visible in the linked article. The packet diagrams were redone but are very nearly identical to the RFCs, just some minor formatting tweaks. They are very readable.
The compiler (in OMeta) is a very BNF like grammar.
The readability is striking. The first time I heard of it, I was expecting it to be extra dense and hard to parse. It turns out they have entire lines of just separators counting against their limit, which seems useless until you realize one of the main goals is readability.
Incredible work, I'm looking forward to the end result.
The language they use to do that (O-Meta) is then a language-defining language, and designing THAT means balancing on a level of abstractions that is at least three levels deep, and each of those abstraction levels is hard and necessary. They achieve great simplicity by thinking damn hard.
On the other hand, the mailing list (as noted by the other respondent) is a pretty interesting place with few flamewars.
For me personally, the thought of giving up entirely on this vision is repugnant and it's important, even if such systems aren't going to make a grand reappearance anytime soon, to at least make sure that people who care about computing know that they once were. I see that reminding as Kay's primary role. I'm not switching to Pharo for my day-to-day work (in my defense I did try) but I find the philosophy appealing and don't see a compelling philosophical disproof. So it seems to me it could re-emerge someday, and a world built on these ideas will have different tradeoffs, and may be preferable.
Back in the mid/late 80s I used to do work for a public library and helped set up several public Macintosh computers that had, in addition to word processing and spreadsheet software, Hypercard installed. I was amazed how people "got it" so quickly. From kids, natch, to street people to soccer moms. And by "got it" I don't mean running the built in stacks, but in creating their own.
Before long I was helping people make some really interesting projects. Some of them were beautiful monsters, but others were very well thought out. And all of them solved specific problems, many of which would not have had enough general appeal to be marketable or even transferable to anyone else.
And there's real value in having that ability. But these days most people simply can't get past the gatekeeper of beginning complexity. To be sure, in Hypercard you quickly ran up against a wall of limited extensibility in terms of its objects. I can easily imagine better.
But Kay is right, The web and most modern OPP aren't it. And modern tools for software development are a nightmare.
_The big problem with our culture is that it's being dominated, because the electronic media we have is so much better suited for transmitting pop-culture content than it is for high-culture content. I consider jazz to be a developed part of high culture. Anything that's been worked on and developed and you [can] go to the next couple levels._
I'm not sure that our media is necessarily better suited towards transmission: I suspect we just lack mediums that make looking at what is happening evident and interesting (even with X years of programming experience, watching another persons webapp run is rarely fun or an obvious exercise). This is a failure of our runtimes and the weak structures we use to build code.
Even if Alan Kay is talking about PCs and not servers, you still need important things like the ability to connect to the Internet (TCP/IP), IPC, VMM, threading and multi-tasking, etc. I suspect I've not understood your point though, so feel free to clarify what I've missed :-)
1. http://developer.apple.com/library/mac/#documentation/FileMa...
2. https://developer.apple.com/library/mac/#documentation/perfo...
Shortly afterwards this stopped making sense because RAM got cheap. Should a 4G PC have a 16G swapfile? Should a 256G server have a 1T swapfile?
In short virtual memory was a hack to get around economical constraints. If you have the main memory, use it! Were it not baked into the OS at a deep level, I've have stopped using swap 10 years ago. It could be taken out of the next version of all the main OSs altogether, and no-one would even notice.
However, disk-backed page faults are but one component of a virtual memory subsystem. The real genius is the OS can provide access to memory uniformly in a way that is transparent to processes.
The fact that the two are entwined now is because of system defaults and decisions by OS developers on how to implement the page replacement algorithms in MM subsystems.