3 ms·
what is currently the most popular language that is closest to smalltalk i think many of the features that made smalltalk look revolutionary in the eighties ar
by systems 6y ago
what is currently the most popular language that is closest to smalltalk
i think many of the features that made smalltalk look revolutionary in the eighties are probably common in most modern languages
i am personally not supper impressed with the live ide thing, it feels more like a gimmick than anything else
- wk_end 6y agoThe live IDE thing - which isn't a gimmick at all, in my opinion - really is the only thing left that sets Smalltalk apart in 2020. Besides that, it's a very simple, dynamic, single-inheritance class-based pervasively object-oriented programming language that doesn't do anything especially interesting these days. Of course, while it was being developed in the 70s, all that was pretty revolutionary! The closest popular language to it today is probably Ruby, which was directly inspired by it and is similarly dynamic, single-inheritance, class-based, and pervasively object-oriented.
- TurboHaskal 6y agoI would say something like LispWorks, Factor or even JavaScript with the browser console do a better job at this. I have given Smalltalk plenty of tries, and always ended giving up due to the lack of polish prevalent on all current implementations: Pharo looks blurry on my Macbook and is crashing all the time. Squeak is a bit more stable but feels and runs like a toy. Cincom is a tad better and has a pretty nice UI designer that is best in class (I would be embarrassed to give a client the ugly non native user interfaces that I see people building in Pharo) but I had the community version (which is not even the latest version) also crash on me a few times and you cannot test it on macOS Catalina / Big Sur.
- szopa 6y agoMy bet is that it's MIT's Scratch. Notsomething used in production, but if you have a kid learning how to program these days, it's the obvious good choice (and I've done a ton of research). The language itself is surprisingly pleasant to program (even for a professional programmer). The real problem is the lack of data structures (like a dict), so some projects (unfortunately, many my 7yo comes up with) become extremely annoying to program.
- rahoulb 6y agoPersonally I would say Ruby is the closest. But without the live IDE thing, you lose many of the great things about Smalltalk. I spend a lot of time on the Ruby Docs, looking up which methods an object has. "Traditional" IDEs give you type-ahead features, where they perform a code-analysis and then predict what you might want to type. But in Smalltalk I just ask the class how I should be using it and it tells me there and then, even if the class has been modified with methods added or removed or rewritten at run-time.
- systems 6y agoI understand the difference between introspection and autocomplete Autocomplete if good tool support is available everywhere, and some languages have very good dynamic introspection (usable in a repl) Powershell, Julia, raku .. i think also Ruby and Python also have create introspection, that you can use dynamically in a repl https://perl6advent.wordpress.com/2015/12/19/day-19-introspection/ https://perl6advent.wordpress.com/2015/12/19/day-19-introspe... So in summary, doesnt repl+introspection+auto completion give the same value
- rahoulb 6y agoIs the REPL the same environment as your running code? If your environment has stuff added dynamically (for example every Rails app) you need to attach to the live environment - an OO version of gdb. And once you’re doing that, you’ve basically got Smalltalk without the nice presentation layer. Update: by presentation layer I mean I can ask to inspect a live object and open a window that shows not just it’s instance variables and the messages it responds to, but read the documentation (the equivalent of Rubydoc) and source code (including editing that source code if I wanted to).
- systems 6y agoprobably because of the type of programming i do (business intelligence), live environment doesnt mean much to me most programs run, and finish, and updating most programs while running, is not something important, you can always update it and run it again for long running processes like servers well again,not really sure what this means but i deal with database management systems, and i mean you can update a stored proc, without shutting down the server, you can of course update the data etc .. as for the dbms process itself, i am not big on dba stuff,but most databases allow in-place upgrade , but usually you can to disconnect everyone while doing it as for large website, like facebook or anything else even a lot smaller in scale, those are obviously not a single program .. and most likely they just restart services to pick up updates, and use a form of load balancing to work will go to servers that are not restarting So in summary, this notion of live app, seem more theoretical than real to me
- diogenic 6y agoIt's definitely more than a gimmick. I understand why someone with no experience developing with Smalltalk might thing it's one - developers are used to claims of life changing IDEs that fall short. Unfortunately, I've never found anything with an IDE that touches what you get in Smalltalk. I've always wanted someone to create an environment for Ruby, Python, or JavaScript that would give us the best of both worlds, depending on what you needed at the time. I remember attempts in the early 2000s, but nothing really touched it. The only other language with an environment like Smalltalk that I've seen is Self, which is a prototype OOP language derived from Smalltalk, but that's even less popular.