The Early History of Smalltalk (1993)
worrydream.com
worrydream.com
> In computer terms, Smalltalk is a recursion on the notion of computer itself. Instead of dividing "computer stuff" into things each less strong than the whole—like data structures, procedures, and functions which are the usual paraphernalia of programming languages—each Smalltalk object is a recursion on the entire possibilities of the computer. Thus its semantics are a bit like having thousands and thousands of computers all hooked together by a very fast network. Questions of concrete representation can thus be postponed almost indefinitely because we are mainly concerned that the computers behave appropriately, and are interested in particular strategies only if the results are off or come back too slowly."
Oh that others that claimed "Object Oriented" could have been inspired thusly. I did a bunch of Smalltalk over the years, and I find this an apt and poetic description. It wasn't perfect, but it was cool. I've never felt that any of the other hybrid/multi paradigm did OO the kind of service described above.
That’s how I feel in general about multi-paradigm languages.
I like mine opinionated: there are very real advantages to a language which has a strong sense of purpose and the corresponding constraints that typically follow.
Sure, Python has functional features layered atop it, but without reliable immutability it’s not nearly as pleasant to work with as, say, Erlang.
In some fields, we are heading back in this direction with literate programming (notebooks) and new languages like Dark that attempt to rethink some of our ingrained traditions for engineering workflows. I'm working on a project in this space too. There is still hope!
[0] - MountainWest RubyConf 2014 - But Really, You Should Learn Smalltalk (https://www.youtube.com/watch?v=eGaKZBr0ga4)
There was quite a hype in the nineties with many enterprise applications based on Smalltalk; my first contact with Smalltalk was in a commercial, not an academic setting; most of it blew away when cheap, fast (HotSpot) Java became available.
> Ruby, Python, Java, C#, etc, all owe a great deal to Smalltalk.
That's a bit too optimistic. E.g. Python is not a descentent of Smalltalk (see e.g. http://python-history.blogspot.com/2013/10/), neither is Java (see e.g. https://www.youtube.com/watch?v=ccRtIdlTqlU&feature=youtu.be...). C# is also rather a brain child of Java and C++ than of Smalltalk.
And around here, enterprise SmallTalk is about the same size as enterprise Perl. Java, which is definitely an enterprise creation, was and is the big killer here. Both on the consuming side and the producing one.
There were also packages available for less than 100$. There were even free ST compilers.
There sure was a lot of abandoned programming environments, but it was usually the enterprised that fathered them that killed it. NeWs was more interesting than pretty much all of its successors. And I'm sure the Lisp Machine or Oberon grognards are willing to chime in, too.
Everything being boring AF, both on the hardware and software side, certainly enabled Linux to succeed. It's a lot easier to compete if the state of the art is libc and X11.
Well, there is some history here. In the early to mid 90s IBM was all-in on Smalltalk, they had a product called VisualAge, they were all set to push it as the next enterprise language, replacing RAD tools like Delphi etc etc. Then Java happened and immediately developed a huge mindshare and IBM pivoted the VM and tooling they had developed for Smalltalk into Java and rode that wave.
But if Java had been a flash-in-the-pan, then Smalltalk would be today where Java is now in terms of adoption (and decades ahead of Java in terms of technology).