4 ms·
"The Smalltalk image may seem unfamiliar or even scary at first, but it's really little different from a standard Ruby or Python process, except that it is seri
by ianbicking 12y ago
"The Smalltalk image may seem unfamiliar or even scary at first, but it's really little different from a standard Ruby or Python process, except that it is serializable and contains all of the code (both compiled and in source form), data, and execution state as objects that you can manipulate."
Well that's not very similar to a Ruby or Python process then, is it? And those processes are short lived and built from scratch on every execution. Anything you want to keep around you have to serialize and save explicitly. This is a painful but useful discipline. Perhaps an interesting analog, Docker emphasizes recreating over storing, while in normal sysadmin practice you update systems in place. In theory they can achieve the same results, but enforcing discipline makes a difference in practice.
Smalltalk of course is code, and you can do whatever you want with it. And Smalltalk is delightful in many ways, I enjoyed it a great deal when I used it, and people using Smalltalk can be very productive when they have to recreate the world. But you have to recreate the world. And there's strong cultural drift. Lots of things are possible, but possibilities aren't enough to create a community of practice.
Looking at files, I looked up "using git with smalltalk" and got the GitHub list of Smalltalk projects: https://github.com/trending?l=smalltalk https://github.com/trending?l=smalltalk – I look at one that has a couple contributors, find Cuis: https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev – it's got giant files and images at the root, overlapping senses of version (versions and dates and authors in filenames). Not a great example. Though to be fair, Iliad looks like a totally legit use of Git and filesystem integration: https://github.com/NicolasPetton/iliad https://github.com/NicolasPetton/iliad – but they seem to be focusing on GNU Smalltalk, which is notably conventional.
Regarding the use of text files in general, I think it's an interesting thing to consider, but to think about it you have to engage with all the reasons that text files have remained so dominant. I tried to do that some in this post: http://www.ianbicking.org/blog/2013/10/why-isnt-programming-futuristic.html http://www.ianbicking.org/blog/2013/10/why-isnt-programming-... (under "text dump -> spatial representations").
Has Smalltalk achieved all the success it deserves? If so that would be a sad conclusion about its worth. The "people are just too stupid to realize" argument for Smalltalk is a terrible argument, and a terrible way to build something better. If I am going to ask why Smalltalk didn't achieve the success it deserved, I will look to Smalltalk, not to the world.
- sitkack 12y agoHow are you smarter or wiser than Alan Kay?
- cbsmith 12y ago> Well that's not very similar to a Ruby or Python process then, is it? Actually, that is very similar, particularly since Ruby's design is so patterned on Smalltalk. > And those processes are short lived and built from scratch on every execution. Ummm, no. When running a simple script, maybe, but for a whole host of applications you have processes that run for a very, very long time. > But you have to recreate the world. No, you really don't. There were certainly purists who argued for that, but there's nothing about the language that requires that at all. It's actually got a pretty nice FFI. > Looking at files, I looked up "using git with smalltalk" and got the GitHub list of Smalltalk projects: https://github.com/trending?l=smalltalk https://github.com/trending?l=smalltalk The Smalltalk world has had some pretty sweet version management for a long time, and of course the language hasn't had much adoption for a long time, so I don't think the Smalltalk code on GitHub is terribly representative. > The "people are just too stupid to realize" argument for Smalltalk is a terrible argument, and a terrible way to build something better. If I am going to ask why Smalltalk didn't achieve the success it deserved, I will look to Smalltalk, not to the world. Like a lot of languages, the community is what matters, and unfortunately the Smalltalk community wasn't stewarded terribly well for a while there, so I'd say the the outcome is function of how Smalltalk engaged the world, and the reality that sometimes you just don't succeed, regardless.