The Early History of Smalltalk
gagne.homedns.org
gagne.homedns.org
Take the hardest and most profound thing you need to do, make it great, and then build every easier thing out of it.
It's interesting to me that the idea that inspired Kay to this insight was FEXPRs: letting functions control the evaluation of their arguments. FEXPRs have long been banished from the Lisp world, which makes a sharp distinction between functions and macros (only the latter get to control evaluation). I still don't quite understand the reasons for this, and it seems like Kay doesn't either -- or at least didn't when he was inventing Smalltalk.
This is his language which supports FEXPRs: http://web.cs.wpi.edu/~jshutt/kernel.html
It's just the same with Smalltalk: functions take lambdas as arguments, not primitive or composite values. "Receives values" is simply a design pattern.
In Smalltalk, I thought arguments are always evaluated unless they're blocks. Is that wrong? Or is it that, at a lower level, everything's a block, and functions are implemented on top of that as something that always evaluates args?
In addition to the discussion on HN itself, the comments there also point to this excellent discussion: http://lambda-the-ultimate.org/node/3640
Content-Type: text/plain; charset=ISO-8859-1
Interesting that Safari is "smart" and ignores the content type in this case.I looked for a 'View as' menu item prior to reloading, but very interesting that a reload fixed it.
If all browsers actually paid attention to Content-Type then this site probably would have fixed the actual problem. Instead we have a world where it works in only some browsers, and naïve users consider the one that is technically more correct to be "broken".
This seems to resolve the issue well enough.
http://accesscom.com/~darius/EarlyHistoryST.html
(I did it to be able to read the paper without all the distracting OCR errors/typos in the OP's version; perhaps they've been fixed since then, though they weren't at the time I sent him this.)