3 ms·
I think the most distinguishing feature is the superb environment and tooling that is a integral part of the language, by default, in most Smalltalk dialects. T
by Qem 5y ago
I think the most distinguishing feature is the superb environment and tooling that is a integral part of the language, by default, in most Smalltalk dialects. The tooling is so seamless integrated, that you're nudged towards simply code inside the debugger. Things like search method by example feel like a superpower. See https://m.youtube.com/watch?v=HOuZyOKa91o https://m.youtube.com/watch?v=HOuZyOKa91o
If you're interested in experience what a modern Smalltalk looks like, I strongly recommend the Pharo programming MOOC. It was a eye opener for me: https://mooc.pharo.org/ https://mooc.pharo.org/
- jrochkind1 5y agoThanks, I have heard that! I was curious specifically, though, about "a language that did functional closures so elegantly, uniformly, consistently, and ubiquitously as Smalltalk" -- does ruby, with it's smalltalk-inspired blocks, used heavily in stdlib and idiomatic ruby code? If not, where does it fall short in the opinion of a smalltalker? Unless the environment/tooling is part of this?
- Qem 5y agoI'm not sure. I have little familiarity with Ruby, writing my code mostly in Python. But on uniformity, consistency, and ubiquity, at least when compared to Python, I think Smalltalk has the advantage of being implemented in itself, all the way down to the VM. So, once you learn the the language, it's straightforward to study the implementation details of anything inside the system image. On the other hand, when deep-diving in Python, its hard to avoid smashing your head against the C bedrock underneath, as many parts of the language and important modules are just wrappers around C code. I think Ruby may be similar to Python here.