"So why didn't Smalltalk take over the world?
"With 20/20 hindsight, we can see that from the pointy-headed boss perspective, the Smalltalk value proposition was:
"Pay a lot of money to be locked in to slow software that exposes your IP, looks weird on screen and
cannot interact well with anything else; it is much easier to maintain and develop though!
On top of that, a fair amount of bad luck."
That's not the "pointy-headed boss" perspective. That's my* perspective, and I was working in Smalltalk in 1992-4, when "why doesn't Smalltalk take over the world?" was a valid question.
FFIs were a royal pain in the ass, and that was what I was doing. (Somehow, the Digitalk (? Memory is hard.) image we were passing around developed a bug, probably from something in the FFI. It would periodically just crash. No way to fix it---it originally started while our proggy was working but eventually worked its way out until it happened anytime---because something in the image itself was corrupted. We could have filed-out all of our code and started with a clean image....
Source control? Ha! You saved your image to a floppy and passed it around to your co-workers. And you liked it!
Deployment? Yeah, we once had to send our proggy to someone who didn't have licenses for some of the things we used. That was fun. And it still involved shipping the whole language, image and environment.
These aren't just some "nice to have" features; they were significant friction that made doing anything real difficult. (Common LISP had the same issues, although its source control story was much better.)
I haven't looked at Newspeak (or Strongtalk, or Self) (but I will) to find out how it deals with those problems, but as for "Why doesn't Smalltalk take over the world?", that bus has already left the station.
"The current prototype is based on Squeak, and contains code that is subject to the Squeak License, as well as the Newspeak sources, which are mostly under the Apache 2.0 license. More details about the licensing of this software are available on the license page."
This isn't starting well.
"It isn’t going to do us a bit of good to throw before them [those for whom FORTRAN is mother's milk] an APL one-liner that will do as well as 50 lines of FORTRAN. First of all, it will take the people a long time to learn how to use the one-liner and even more to write one, so that FORTRAN will continue to grow and succeed. And I don’t think APL will usurp its position; there’s no reason why it should. And it certainly shouldn’t be a goal of people who use APL to stand forth and say, “Why do you jackasses use these inferior linguistic vehicles when we have something here that’s so precious, so elegant, which gives me so much pleasure? How can you be so blind and so foolish?” That debate you’ll never win, and I don’t think you ought to try."
Yes, folks, Alan Perlis is talking about APL, Greek letters and all.
Another quote from that:
"As a professor, one of the things I’m interested in doing is teaching people how to program; but it’s more than teaching them how to program, because to teach people how to program, any programming language is sufficient. The idea that only one language or any particular language is critical to learning what it means to program is false. If that is your goal, to teach people how to build programs, BASIC is perfectly satisfactory. There are some things you can’t do in it; therefore, you invent constructions for doing them; and the invention of these constructions is learning to program. Sooner or later, in all languages, we have to go to constructions which we build laboriously and arduously out of the components of the language. And we curse the fact that the language doesn’t have them already. But they are not all there now, and they never will be there. The word that I associate with programming — and I’m sure everybody associates with programming — is: “frustration”. Everything is possible, and nothing is easy. We sit down to write a program, and our initial, beautiful thoughts soon get bogged down in the slime of unavailable constructions. And we write procedures, or functions, or what-have-you, and more functions; we invent data structures, and more data structures; and the programs which start out so nice and elegant soon become mired down and have no structure. We find it difficult to describe to anyone else what they do. And we say, “If I programmed differently, if I used, for example, ‘structured programming’ this wouldn’t happen … if I had arrays of arrays this wouldn’t happen … if I had a while-statement this wouldn’t happen …” Nonsense. If it doesn’t happen today, it will happen tomorrow, even with all those things there. Because programming, by its very nature, is a kind of bootstrapping activity. What Iverson and God give you today, you’ll find insufficient tomorrow."
I love Alan Perlis.