A programming language has a window of opportunity to gain mindshare while it's new. Once that window passes, the odds are hugely against it. It's true there are a few technical factors, for example that older implementations lack the infrastructure to work with newer technologies, but such things can be improved. The dominant factor, the real barrier, is social psychology. This is obscured by our tendency to retrofit plausible-sounding reasons to our choices ("X is slow" or "it doesn't have libraries" or whatever).
This does suggest a strategy for reviving an old language: rebranding.
First, you need a new implementation. Trying to convince people to use the old one is like trying to get them to watch an old movie. George Lucas didn't promote Kurosawa, he made Star Wars. Second, there has to be a hook, something to convince us that this really is a new language, modern and with the times. So, light sabers. That's critical for opening a fresh window of opportunity instead of getting pegged to the old, long-closed one. It needn't be the most important thing, but it can't be fake either; it must be real enough or no one will take the new brand seriously. Without a convincing reason for why we weren't using X before, the new window will never open. Once it opens, then and only then do the beauty and power of X get their chance to bond with the user. In the Star Wars analogy, that would be the characters and the story – the deeper things that came from Kurosawa and ultimately from ancient archetypes. They'd never have gotten the chance to kick in if Star Wars hadn't got the audience in the theater. Once they did, though, then you had Star Wars fans for life.
With Clojure, the hook was Java libraries. Actually, there were three hooks. The others were concurrency and sequences. But Java libraries is the one that worked. And now there's a modern Lisp again!
If you're pursuing a programming language/environment because it's fashionable, you're doing it wrong.
Yes, if we ignore all the other explanations, like, say, network effects. You don't get to chose a programming language for it's merits as a language alone. Tools, implementations, contributors, availability of programmers to hire, available documentation, available projects and libs to build upon, rate of innovations (depended on people working on compilers for the language), core library, etc are far more important.
>If you're pursuing a programming language/environment because it's fashionable, you're doing it wrong.
And if you're pursuing a programming language/environment because the language is the best (in itself), you're also doing it wrong. You have to take the whole ecosystem and community in mind.
The niche popularity of Smalltalk (and other key languages) reveals more about the mentality of people comprising the computing ecosystem than it does the languages.
I disagree. If it reveals anything is that the language itself is small part of the equation. People avoid Smalltalk for historical reasons, not because of their mentality. What historical reasons?
1) Smalltalk was slow at the time it had to catch on, and cpus/memories weren't up to par. C++ gave far better results with the same equipment.
2) Smalltalk vendors charged an arm and a leg.
3) Smalltalk image environment wasn't easily integrated with other workflows.
4) Smalltalk vendors were in competition for the market, instead of trying to grow it and have a smaller slice of a much larger pie.
5) The UIs were horrible.
1) I can't easily find many other code written with it. 2) I can't easily find answers when I get stuck with it. 3) I can't easily find other programmers that use it. 4) I can't easily find quality tools for it. 5) I can't easily find books for it. 6) Projects made with it have few contributors and are mostly in a limbo state.
2) http://lists.squeakfoundation.org/mailman/listinfo/beginners
3) http://www.pharo-project.org/community
4) the 'quality tools' are generally acknowledged to comprise the finest IDE in existence. Just fire up a Smalltalk image and see for yourself.
5) http://stephane.ducasse.free.fr/FreeBooks.html
Finally, while many projects are buzzing with activity, there's certainly a need for an influx of new users.
And you very much missed the whole point. I know all of those resources, I've programmed in Smalltalk in the past, as I have on many other languages (4-5 of them professionally). I also follow Kays projects of late.
All of those you list are MARGINAL at best (--ten+ year old books and projects that limbo around). I mean, "Many projects buzzing with activity"? There are probably more HAM radio enthusiasts that people involved in those projects.
Compare Smalltalk "activity" with the activity behind C, C++ Objective-C, Javascript, Python, Ruby, .NET, Java, heck, even Scala.
It's not even close.
Some elementary investigation would reveal: 1) http://squeaksource.com/ 2) http://lists.squeakfoundation.org/mailman/listinfo/beginners 3) http://www.pharo-project.org/community 4) the 'quality tools' are generally acknowledged to comprise the finest IDE in existence. Just fire up a Smalltalk image and see for yourself. 5) http://stephane.ducasse.free.fr/FreeBooks.html Finally, while many projects are buzzing with activity, there's certainly a need for an influx of new users.