| Well, don't speak about abstract 'shackles', show me the improved process! I am especially interested in version control and collaboration. IMHO, existing file-based tools have had quite a few advances on this front: * Tests are now common and considered a good thing. A new contributor can write code without worrying about breaking rarely-used functionality. * Many languages have package managers. Using latest third-party library is now simple * We have great deployment mechanisms -- one-command deployments are common, containers and version pinning help reproducibility. * Some languages come with support for interactive REPL -- you can evaluate arbitrary commands inside running processes. * Many languages support static checking -- a lot of errors could be caught even if the code is never exercised * Many languages need no compilation at all -- just edit the file and run it What can smalltalk offer? Obviously it has great REPL. Anything else? What is the cool new 'software development process' feature that you are referring to? For example, I have found exactly one sentence about version control and sharing in the article you have linked: "We may even see Pharo 7, which promises a Git-integration tool called Iceberg for source code version control." . Is this what you wanted to show me? Because my takeaway is that the only way to work on Smalltalk software as a team is to use file-based tools (git). I see no improvements in software development process here. The other commenter mentioned Monticello and Smalltalk Hub. Ok, this looks like a decent version control system. It is interesting how without files, you have to add a prefix to a name of every class and tag each function which you want checked in. Still, I could not find which features it has that git does not. |
- Software development using files and folders is absolutely antediluvian. Smalltalk does everything in a universe of objects; source code is organized spatially rather than in long reams residing in text files.
- Live coding and debugging done right is an enormous and unparalleled productivity booster.
- Persisting execution state is extremely convenient for maintaining continuity, and hence the high velocity of development.
Governments and enterprises have long used Smalltalk to write massive applications in large team environments using Smalltalk's own tooling for collaboration and version control. There's no question that historically Smalltalk has not played well with the outside (file-based) world, and this has been a major point of contention.
If you insist on using Git and similar tools with Smalltalk, then yes, this is problematic. The point is, if you view software development from only one perspective, you deny any possibility of improving the process in other ways that can lead to dramatically improved productivity, accelerated development, and lowered cognitive stress.