6 ms·
Remember Smalltalk? (2008)
I’ve often referred to Smalltalk as the ‘Latin’ of modern OO languages. Most owe a tremendous debt to Smalltalk but the language itself has been relegated to a small niche of technology elites for several years now.
Here a simply equation. In terms of mental fortitude…
- svc 13y agoThe Smalltalk spirit is still alive, witness Pharo. And the legacy lives on in so many languages, like Ruby, Objective-C.
- jimbokun 13y agoWith blocks, the semantics and programming paradigms of Objective C are now very close to Smalltalk. Seems like a Smalltalk targeting OS X and iOS would be a very good fit, similar to RubyMotion (which further demonstrates the underlying similarities between Ruby, Smalltalk and Objective C). http://www.rubymotion.com/ http://www.rubymotion.com/
- chc 13y agoI don't think we're that close. If you're looking from Java, yeah, Objective-C looks pretty close to Smalltalk; if you're looking from Smalltalk, Objective-C is a little dot on the horizon. Objective-C is just at its core much more low-level than Smalltalk and considers that a feature rather than a bug. If you're interested in the idea though, F-Script was actually pretty close to "Smalltalk for Cocoa," though it's more designed as a developer tool for Objective-C programs than an applications development language in its own right. It has an object browser and everything.
- sdfjkl 13y agoAnd even spawns new heirs, such as Objective-Smalltalk: http://objective.st/ http://objective.st/
- adamnemecek 13y agoAnd F-Script https://en.wikipedia.org/wiki/F-Script_(programming_language) https://en.wikipedia.org/wiki/F-Script_(programming_language...
- sdfjkl 13y agoF-Script was actually how I discovered the beauty of Smalltalk :)
- ramayac 13y agoPharo : http://www.pharo-project.org/home http://www.pharo-project.org/home
- pjmlp 13y agoYeah, I got a nice experience with VisualWorks while at University, around 1996. However Smalltalk lost the enterprise place it got, but its spirit lives partially[1] on modern dynamic languages. [1] Without live coding experience, it isn't a full Smalltalk descendent.
- agumonkey 13y agoI daydream about the fact that we're slowly climbing toward a lisp/st OS without acknowledging it. As you say nowadays people accept and enjoy having hackable userland (dom/javascript) and it's only a late bolted on addition.
- mpweiher 13y agoReally live coding with Objective-Smalltalk[1]: http://www.youtube.com/watch?v=sypkOhE-ufs It's obviously only a very simple example, but hopefully shows the potential. [1] http://objective.st/ http://objective.st/
- gaius 13y agoIt's simple. Java was free, Smalltalk was $50,000/seat.
- morty16 13y agoGartner also had an active hand in killing Smalltalk in the enterprise. CTOs would pay Gartner millions of dollars to have them confirm their bias to go 100% Java/Windows/IBM. Not that ParcPlace did themselves any favors.
- mark_l_watson 13y agoBasically correct, except for the price of $50K. In the early 1980s I had a Xerox Lisp Machine (cost about $25K with extra RAM). Xerox let me use a Smalltalk license for a while for evaluation - I forget the exact price, but it was about $5K. Now, nearly all programming languages are free :-) Pharo Smalltalk (based on Squeak) is very nice, and runs on Mac, Windows, or Linux box using very little resources.
- gaius 13y agoI learnt Java in '95 and was getting paid for it in '96 - the option to become a Smalltalk developer simply never existed for me - you already had to be one, to get access to it! That it faded into irrelevance is completely unsurprising, where was the fresh blood supposed to come from?
- mark_l_watson 13y agoI rode the Java wave early on also. A good ride. Smalltalk is still used, as is Common Lisp, Scheme, etc. Just because languages are only used for < 1% of commercial projects does not mean that people skilled in their use shouldn't use them. My go-to languages right now are Clojure, Java, and JavaScript, but, I still like to code occasionally in Pharo Smalltalk (good online tutorials, BTW, if you want to play with Pharo).
- angersock 13y agoSo, what's the advantage of Smalltalk over Ruby? It seems like Ruby is a better Perl than Perl, a better Smalltalk than Smalltalk, and a better Python than Python. It's slow (though that's getting better) but otherwise it allows genuinely beautiful system design.
- akavi 13y ago>a better Python than Python As someone who's quite the Ruby fan, this is the only one on the list I'd object to. There's a very real philosophical difference between the two, which I'd identify as being their attitude to "magic". Ruby is OK with a certain level of increased complexity and semi-hidden behaviour if it means more expressivity. Python, on the other hand, prefers simplicity and explicitness. It's not the most radical divide, and I don't really think either one is the One True Philosophy; they're just different. And neither is better at embodying the other's philosophy.
- Avshalom 13y agoWell I mean that's Smalltalk: Things that look like magic in Ruby look as simple and explicit as Python in Smalltalk.
- rgrau 13y agoThe environment. If you think pry is a cool tool for Ruby, you gotta see any smalltalk platform.
- agumonkey 13y agoI remember a rubyconf talk from a ST veteran saying if they'd only look at its VM nobody would ever say 'Ruby is slow' again. So all things being equal, that's one advantage.
- protomyth 13y agoI do believe it was the Gemstone folks (http://maglev.github.io http://maglev.github.io)
- cconroy 13y agoAnyone else love Smalltalk's message syntax. Objective-C uses it too. It has got to be the best syntax invented for a programming language. To see what I mean compare the normal procedural code vs. the OO version: (a) drawRect(50, 50, 10, 21) (b) aRect drawAtX: 50 andY: 50 width: 10 height: 21
- JoeAltmaier 13y agoI guess that's better in a COBOLly sort of way. I'd prefer a tool that let me investigate the signature and validate the arguments if I was interested; otherwise its awfully wordy and slow to write/read.
- programminggeek 13y agowordy maybe, but incredibly easy to understand upon coming back to the code. At least, more than a list of 5+ unnamed arguments in an arbitrary order made up by someone you'll never meet and you can only understand by looking at the api docs, if there are any.
- JoeAltmaier 13y agoI'd agree, except arguments are rarely just a list of numbers. With well-named constants, methods and variables its pretty clear what's being passed.
- programminggeek 13y agoYes, but in the case of a sometimes inconsistent API, you get things like string methods that are sometimes method(needle, haystack) and sometimes method(haystack, needle) and so on. If you were sending properly labeled messages, like you are forced to do in just about every web api ever, you can at least inspect the message to get an idea what is going on. It's sort of weird to me that so much effort goes into making programming languages expressive, yet we cling to incredibly terse method names, sometimes too terse, and no labels on method inputs. So, if you don't know what some bit of code does, you have to figure out what the methods are doing and what arguments they are supposed to take. I guess to me it's like if you had to do a dictionary lookup for every word you read and had minimal context to understand a words meaning in the context of the other words around it. At the very least you would cling to a dictionary if you wanted to get anything done.
- agumonkey 13y agoI remember some IBM guys not nostalgic at all about ST. They said it was a doesNotUnderstandHELL. Maybe they didn't receive adequate training. They were quite in love with Eclipse/EMF/RSA way of life too. Funny.
- rongenre 13y agoI started my professional career doing Smalltalk in the early 90's. The experience of development as a conversation in which I persuade a system to behave was really formative. In a lot of ways, I'm still programming in Smalltalk... just in other languages.
- GnarfGnarf 13y agoBeware! This Website will throw up 40 or 50 cookie permission dialogs in Firefox.