6 ms·
Even if you are not going to develop any major apps in Smalltalk, its a language worth learning. Teaches you a lot about OO programming
by jayonsoftware 8y ago
Even if you are not going to develop any major apps in Smalltalk, its a language worth learning. Teaches you a lot about OO programming
- daveFNbuck 8y agoIsn't Pharo a different language from Smalltalk?
- deleted 8y ago[deleted]
- monocasa 8y agoThat's sort of like asking if Scheme is a different language than Lisp.
- leoc 8y agoIt started out as a fork of Squeak; IDK how much it has diverged since then.
- agumonkey 8y agoDon't know either, but the pharo MOOC I did a few years back only mentioned differences once or twice. I left with the feeling that beside a few, maybe syntax tweaks and new libs, it's 'same' enough.
- deleted 8y ago[deleted]
- FractalLP 8y agoThey are ok with evolving past the Smalltalk-80 standard. Think of it as a Smalltalk language + new things if they are beneficial. Cool project for sure.
- dragonwriter 8y agoMaybe; it's part of the OpenSmalltalk Initiative, and uses the same VM as Squeak, of which it started as a fork; whether it's a Smalltalk-descended language or a Smalltalk dialect is a matter of exactly where you draw the line.
- btilly 8y agoI agree that it is a language worth understanding. However the OO model of Ruby is identical. Without the drawbacks of being an image based language. So I'd suggest learning that instead. For those who don't know what I am talking about, there are several families of languages where the state of your program is kept within an image. The upside of this is that you can integrate everything together in a really neat way and build neat tooling with introspection. The downside is that you have just made what's going on not visible from the filesystem, and have to replace all of the tooling that you're used to. You know, things like your favorite editor, command line programs, source control... If you switch languages regularly (which most developers do in my experience), being able to use your favorite toolset everywhere turns out to be more important than being able to build an ideal toolset for only one language.
- Lordarminius 8y ago> I agree that it is a language worth understanding. However the OO model of Ruby is identical.... I independently arrived at the same conclusion. The main problem with Pharo is the esoteric tooling; life is too short to struggle with tools. That said, I consider Smalltalk, Objects and Design by Chamond Liu to be one of the best books I ever read on the subject of object oriented programming. Heartily recommended.
- philippeback 8y agoTooling appears exotical because you are not using it day in day out. And I actually find things like Spotter, Code Rewriter, GTInspector and Calypso pretty neat. IntelliJ is not simpler and is closed source. It is neat, true. We even use its icons in Pharo.
- btilly 8y agoTooling appears exotical because you are not using it day in day out. And that's the problem. The tools are different. They require learning. And once learned, they are only useful for dealing with one language. And that is a language that nobody around me uses. The result is a barrier to entry. A barrier to entry of a type that I'm not bothering with again unless I have a good reason to. Furthermore the small size of the community means that I am unlikely to get to choose tools that fit me. I'll be stuck with whatever the personal preferences were of the people who wrote the tooling. Even if I like them, my neighbor probably won't. You bring up IntelliJ. However I don't use IntelliJ. I prefer vi and command lines. The guy sitting across from me likes Visual Studio. I couldn't tell you how many other IDEs are in use by programmers in the same space as me. No single toolset is going to be to all of our tastes. And it doesn't matter with a filesystem based language, because we are each free to use whatever we want.
- hota_mazi 8y agoSmalltalk teaches no OOP that cannot be learned by more modern languages, starting with Ruby (which is already pretty old itself). And at least, these other languages don't impose on you broken IDE's that crash all the time and corrupt your work. I find little point in learning Smalltalk today, except maybe read a ten minute article to check out its odd syntax.
- pjmlp 8y agoRuby the language still doesn't have the development experience of 90's Smalltalk environments, not even JIT compilers that work half as fast as Smalltalk ones.
- rjblackman 8y agoI'd extend that by saying it teaches you what OO was meant to be.. It also shows you a lot of what is missing in modern environments. Imagine being able to run code and create any objects via a kind of command line and while any program is running be able to change it on the fly for experimentation/exploration purposes! I wish .net had something like this!
- shawnz 8y agoVS does have that functionality, although it was only added in VS 2015: https://johnkoerner.com/csharp/the-c-interactive-window-in-visual-studio-2015-update-1/ https://johnkoerner.com/csharp/the-c-interactive-window-in-v... Previously there was the Immediate window but it is limited: https://msdn.microsoft.com/en-us/library/f177hahy%28v=vs.110%29.aspx https://msdn.microsoft.com/en-us/library/f177hahy%28v=vs.110...
- rjblackman 8y agounfortunately, it's not really the same as with proper message passing/late binding like in smalltalk.
- shawnz 8y agoYou could use C# dynamic objects to achieve late binding.
- philippeback 8y agoTry a become: in C#
- ben-coman 8y agoGilad Bracha (co-author of the Java Language Specification) on "#become:" in Smalltalk (https://gbracha.blogspot.com.au/2009/07/miracle-of-become.html https://gbracha.blogspot.com.au/2009/07/miracle-of-become.ht...) btw, see the section here on "Blub Paradox" (http://www.paulgraham.com/avg.html http://www.paulgraham.com/avg.html ) which means I'm not really competent to comment of C#'s dynamic objects.