What Languages Fix (old article)
paulgraham.com
paulgraham.com
Smalltalk: Lisp didn't go far enough.
In other words, Smalltalk wasn't an attempt to fix Simula so much as an attempt to fix Lisp. Simula-style objects were just the vehicle.Edit: The passage I'm referring to deserves to be quoted.
I could hardly believe how beautiful and wonderful the idea of LISP was [...] but there were deep flaws in its logical foundations. By this, I mean that the pure language was supposed to be based on functions, but its most important components---such as lambda expressions quotes, and conds--were not functions at all, and instead were called special forms. [...] Why not just base everything on FEXPRs and force evaluation on the receiving side when needed? I could never get a good answer, but the question was very helpful when it came time to invent Smalltalk, because this started a line of thought that said "take the hardest and most profound thing you need to do, make it great, and then build every easier thing out of it".
That last line is one of my all-time favorites.
http://gagne.homedns.org/~tgagne/contrib/EarlyHistoryST.html (typos corrected)
(Quite literally -- ML was made because Milner, et. al found Lisp to be too error-prone for proof-checking programs.)