6 ms·
I keep reading how amazing smalltalk, and it's development environment used to be... Why did we lose it? Was it companies trying to 'dumb down' programming (jav
by AlexFromBelgium 14y ago
I keep reading how amazing smalltalk, and it's development environment used to be... Why did we lose it? Was it companies trying to 'dumb down' programming (java..?). Tell me, what happened?
- locopati 14y agoFor one, it cost a lot of money so it had a limited audience. Afaik, VisualStudio drew a lot of inspiration from it, which propagated outwards to the Java IDEs.
- ConstantineXVI 14y agoFWIW, Visual_Age_ (not to be confused with VS), the ancestor to Eclipse, was originally Smalltalk based before being rewritten in Java.
- technomancy 14y agoAlso working in terms of an image instead of files freaks people out. It isolates you from all the file-centric tooling of unix.
- AlexFromBelgium 14y agoThx for the responses. I just watched "What Killed Smalltalk Could Kill Ruby, Too" http://www.youtube.com/watch?v=YX3iRjKj7C0 http://www.youtube.com/watch?v=YX3iRjKj7C0 pretty interesting
- rjsamson 14y agoThis is something I'd like to hear more about too - if Smalltalk is so awesome, why is nobody using it?
- gruseom 14y agoWith programming languages, I've come to the conclusion that "If X is so awesome, why is nobody using it?" is the wrong question to ask. Or rather, it's a fair question, but the answer doesn't depend on X. It is overwhelmingly a matter of network effects and social proof. What matters is what everyone else is using. 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!
- deleted 14y ago[deleted]
- fractallyte 14y agoHerd mentality? It's the only explanation that fits the facts... If you're pursuing a programming language/environment because it's fashionable, you're doing it wrong.
- batista 14y ago>Herd mentality? It's the only explanation that fits the facts... 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.
- fractallyte 14y agoI think a superrational individual (in Douglas Hofstadter's sense: http://en.wikipedia.org/wiki/Superrationality http://en.wikipedia.org/wiki/Superrationality) would choose the best programming language (for the task), not the fashionable one; and would expect others to do similarly. Unfortunately - where are those others...? 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.
- batista 14y ago>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.
- batista 14y agoI'd very much like to use it, but due to network effects: 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.
- fractallyte 14y agoYou're very much parading your ignorance. Some elementary investigation would reveal: 1) http://squeaksource.com/ http://squeaksource.com/ 2) http://lists.squeakfoundation.org/mailman/listinfo/beginners http://lists.squeakfoundation.org/mailman/listinfo/beginners 3) http://www.pharo-project.org/community 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 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.
- batista 14y ago>You're very much parading your ignorance. 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/ http://squeaksource.com/ 2) http://lists.squeakfoundation.org/mailman/listinfo/beginners http://lists.squeakfoundation.org/mailman/listinfo/beginners 3) http://www.pharo-project.org/community 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 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.
- gruseom 14y agoAs I understand the story from old Smalltalkers, the Smalltalk vendors shot themselves in the foot and then the head. They had exorbitant licensing schemes where Java was free, didn't make it easy for programmers to try Smalltalk out, and had a supercilious "we're the best, bow before us" attitude that extended into the technology itself, making interop harder than it needed to be and so on. The same attitude caused them to look down their noses at Java and C++ – after all, Smalltalk was obviously better – until it was too late. Given how much better Smalltalk was than Java and how much of a head start it had, it should have won. That it didn't is either a tragedy or a comedy. Edit: Part of the issue was generational. Smalltalk predates open-source. So do APL and Lisp. The way people thought about commercial software before open-source was totally different. For example, it wasn't uncommon for vendors to demand a percentage of their users' revenue, something that seems absurd today. So these technologically advanced – still in many ways superior – languages were trapped for historical reasons in an obsolete economics.
- javajosh 14y agoThis kind of begs the question: now that we know all this, why aren't these technologies being resurrected and offered again with better economics? (The only reason I can think of is that the IP is still being controlled by those who remain to this day, blind.)
- gruseom 14y agoWe don't know all this. (See my other comment in the thread for a lengthier attempt at explaining.)
- javajosh 14y agoDo you mean http://news.ycombinator.com/item?id=3900047 http://news.ycombinator.com/item?id=3900047 ? I actually disagree strongly with you there. Hackers are eager to find things that work better, regardless of their source. One example that springs to mind is the use, in 3D graphics programs, of an archaic math construct called the 'quaternion'. The quaternion was the loser in a long-ago war with 'vectors', but this did not stop hackers from using the idea with the most value. Another more ready example (as evinced by the frequent posts on HN about it) is Emacs. It's an old editor. And yet it still has it's adherents, and new converts. But I hear nothing about people making anything in smalltalk environments. Nothing. Not even toys. One would think that if the language/environment was so powerful and the software freely available, that we would have seen something built on it. Heck, erlang is pretty esoteric (especially to those who don't hang out around here) but someone built CouchDB on erlang (and then abandoned it, but that's another story :). In summary, I think there might be something wrong with Smalltalk that has nothing to do with economics.
- bsiemon 14y agoIn it's heyday smalltalk VM performance was far behind C,asm,etc. As a result it never gained much traction. Once it became practical to run/use VMs the smalltalk legacy had been tainted by C/C++ and thus java.