SmallTalk as a language is IMVHO terrible BUT it's strength came from it's concept, an user-programmable environment, that's matter so much.
SmallTalk was the language of first commercial desktop environments, modern desktops with keyboard, mouse, a similar form factor than today desktop, networking etc and those historical systems are still far more advanced than today's ones.
Personally I prefer Lisp as a base language, but in any case the concept is far more important than the rest. A thing humanity lost years ago and that need to recover ASAP.
I find preferences-wars a source of evil. Lisp is fine, not the subject here, tho.
Back to the subject, Smalltalk's syntax allows the most elegant expression of computer code similar to natural written language I've seen. And that at the lowest cognitive load to learn and read that the computer world provided so far.
I'm with you about raising the importance on concepts and that humanity needs to rescue its capacity for making that relevant again. I'm afraid Post-modernism is liquifying intelligence and is making everything regarding to intelligence to be harder to flourish.
PS:
We use a lot of camel case but please remember it's Smalltalk (instead of SmallTalk).
It has nothing to do with philosophical concepts and everything with business culture.
There are tools that facilitate expression, innovation and individual contribution. And there are tools that make it easier to scale and for programmers to be interchangeable.
These two are very hard to unify. There’s cross pollination but that’s about it.
Whether you’re in a top down hierarchical business model or in one that’s more open and people centric has a significant impact on which type of tools you’re using.
Smalltalk, Lisp and their descendants belong to the former category. They are immersive, expressive and incredibly dynamic and their communities are often pioneers. But this type of freedom comes at a cost that some do not want to pay.
> But this type of freedom comes at a cost that some do not want to pay.
Who are those some? Managers or techie? Because yes, business choose to do it's best avoiding Smalltalk, Lisp etc for business reasons, but those reasons are not "their cost" but the fact that with them anything is open, integrated, there are not countless of individual "product" to be sold, well welded so to guarantee that no one can temper them etc.
It's a bit like modern "open source enterprise" monsters, they are not monsters because doing so make easy changes people involved in a project, find people skilled in that field etc but because being monsters it's cheap to pay enterprise support instead of deal with issues internally, re-write from scratch instead of forking etc.
While these days Smalltalk and Lisp are just programming environments on a host OS in the past they were the OS and so the OS is a unique environment not a container cargo ship with containers on top, anything rigidly separated, that's the business reasons behind industry choice IMO...
> We use a lot of camel case but please remember it's Smalltalk (instead of SmallTalk).
Thanks, correction registered :-)
I agree about preferences-war, I generally tell my preference not to start flame but to give something for a positive discussion, witch means "how many in a community prefer $this more than $that and why" but less about the "similarity" with a natural language: in nature we use words as tags, so "objects" are natural, message passing is "natural" in the sense of collaboration between humans, but not really in the OOP sense. Also Smalltalk syntax to me does not look much similar to natural language.
The most similar language I found so far is Python, imperative programming is not so effective but is easier than functional for newcomers and it's syntax is very easy to read, IMVHO that's the reason of it's popularity especially compared with very similar (in targets) languages like Perl or Ruby.
Lisp is easy once you have learned a bit, and probably that's one part of why is not much popular, the rest, in common with Smalltalk is that both are designed for user programming, while "modern industry" want to lock users depriving them of any possible freedom and free usage of a desktop. In the past that was the IBM doctrine, thereafter the GAFAM doctrine: they all born out of Xerox tech, small part of it, wrapped in ways that put a product, a service at the center instead of the human. It's not only about liquefying intelligence but a mean to make hard doing certain things.
A stupid example: we have Wikidata, SPARQL is not that a great and digestible language but it's there, why the hell it's not normal just for a middle-school simple research query Wikidata form "a buffer" (in the Emacs sense of that) and see results in various forms we can manipulate to plot graphs etc at a level easy enough for a middle-school small student research? That's because IMVHO making easy doing so means users have power in their own hand, they can move not only in pre-defined and controllable paths but independently.
Why aggregators vs personal aggregators with RSS+Xerox style scoring? Again because aggregators might satisfy users demand BUT matching them to their hoster desire, for instance silencing or discrediting some news and enlarging others (try to see the recent polemics about Meta vs TikTok PR campaign) while a personal one can't be tweaked from remote so users might find their own path with their own ideas and tools.
Why "internet banking website" instead of a common standard API (like EU OpenBank, but open for all) with a desktop client? With it, users can have their transactions digitally-signed on their own desktop, having multiple banks and banking services in the same place, with the same UI etc without we have surveillance on crappy banking websites, crappy authentication, nothing in our hands etc.
All those things have a common ground: modern/classic software development is compartmentalized with any human layer religiously separated from the others, ancient programming languages are designed for a coherent unique environment without barriers.
Allow me to say that Smalltalk syntax can be really really similar to plain english sentences if you intentionally refactor it to optimize an elegant API. But (hairy topic) not every smalltalker will have talent for writing or taste or care at all about that, or at least enough to develop in that direction (which accidentally produces software friendlier to maintain and extend).
It doesn't have to try to be natural language, AI/ML is close to achieve mimicing it properly [1], it just needs to feel comfortable enough for the programmer to tell computers how to behave in a way that has less cognitive load.
The other questions you raise I think are very real and way more related to how power works among homo sapiens sapiens than computing languages. The software becomes an optimization of the power relationships created among individuals, groups and institutions/legalized-mafia-groups.
Hum, I can't really visualize how expert systems can "free us" from the need of programming and in general how a UI can "free us" from the need of "small talks between human and computer"...
Oh sure, it's appealing speaking to my desktop something like "hey desktop, display a 3D animation of the world by population density, annual climate, natural resources, kind of society etc to help me see a good place to emigrate to according to my preferred criteria you already know", but we are decades behind such UIs and their real effectiveness is still much unknown even in philosophical terms because such UIs will definitive be non deterministic so it's a bit hard trust them in many cases, possibility of mere verification is next to impossible etc.
It's not needed in many domains of course, for instance if I want a raw classification of scanned documents and most of them are well classified humans gets benefit from the raw ML classification, but not equally nice for a car's ADAS system that crush me against a wall because of an interpretation error.
In Smalltalk terms: yes some listings can look like plain English but many others are not and that's not a real issue per se, the real issue is that original Smalltalk was imagined for a human-computer UI, moderns one are kind of lost programming environment, for instance how can I compose a documents with relevant graphs from data sources in various ways etc in Pharo? Because that should be the target of a human-computer UI... For such purpose Smalltalk is far from being easy to read and use...
Also, yes, I mean: most computer works are about information manipulation, retrieving, filtering, composing information. Such information might be text, images, videos, audios, "databases" etc and to manipulate, filter and compose we need something to do so as we wish.
Still today there are no such "comprehensive tool" for anything like that, our modern most advanced tools are Notebook UIs like Jupyter or experiments like Wolfram Alpha. Emacs with org-mode is far more flexible than them and actively developed by still limited in graphics and usage terms. Xerox workstations of course are from a different era, and much less computing power but still they have had something, and they dream to evolve in that way.
Modern Smalltalks seems to have forgotten this part, much focused on "the programming side", modern systems can't even reach something like old ones since they are "individual products" with very limited IPCs...
Funny you mention that as lately I was fantasizing of a good, friendly and powerful terminal based[1] IDE for Smalltalk that you should be able to use to connect to running images.
Curious, why you look for terminal-based environment? I understand that for CLI we have efficient FLOSS network connectivity (ssh) while for GUIs even if some good enough tools exists, some FLOSS (Apache Guacamole) they are pretty limited and complex to support everywhere but, said by one who "born" on unix, CLIs are nice and useful for many things, TUIs not much for reading and writing texts and graphics (framebuffer)... They tend IMO to be just good enough in certain cases, but not as a daily driver.
Eh, it's rare that you find a language simple enough that its syntax fits on an index card, yet conceptually rich enough that you can build complex systems with it. This is a feat in and of itself that warrants admiration and examination.
r5rs was almost this, but it lacked any real facility for creating ADTs, like a class system, instead just giving you the rudiments (closures, functions), and expecting you to do the rest. Racket fixes this, but it's also much more complicated than both r5rs and Smalltalk.
I agree on the Lisp part, textual syntax is nice for human understanding but will one day be no longer necessary. If only they had made a cheap Lisp machine!
> textual syntax is nice for human understanding but will one day be no longer necessary
Can you elaborate your vision? What future you imaging in human-computer UI terms? Visual programming so far have well proved to be a failure, modern visual programming is even worse than past tentative (see how crappy are visual environment from RPA to NodeRed&c)... Vocal interfaces are also crappy... Even if we look at sci-fi movies the computer interfaces they show are ridiculously inefficient... Just see Star Trek as an example: vocal commands in emergency situations that demands multiple seconds while a direct hit on keys demands just few ms, the Borg with neural connections and visual+touch UIs in their ships etc. Oh that's sci-fi of course but that means that even artists have so far failed to imaging different means.
> If only they had made a cheap Lisp machine!
At that time was not possible in scale and industrial terms, similar to the far older Xerox workstations, it's possible now, but too many do not even know that original desktop model and MANY (very skilled PhDs included) have even issues imagining it... Just myself using Emacs/EXWM in a presentation I generally create an extraordinary WOW effect on techies who fail to understand what they see live on the screen/projector, how is that possible, and there is nothing extraordinary, just EXWM/org-mode normal usage. That's the real issue, in common with Smalltalk: people who can understand do not know, people who can push classic model again do not want it at all, it hurt they skyrocketing high businesses (and curiously old business were in relative terms more profitable for anyone, only they do not assure by any means the possibility do dominate the market since being knowledge-based anyone who happen to have developed something good can succeed), the large mass of the rest of humanity do not even know what happen yesterday so...
Much of the power of Lisp lies in its homoiconicity, but it also means the syntax is "just a bunch of parens" - a ball of mud is hard to parse. Structured editing negates this by changing the view layer from text to something richer and more specified to the form, but still in the same basic shape as the code, which is harder to do with C-like languages. Most of what's needed is a fully integrated development environment such that the language and editor are created in unison, like many Lisp efforts of old.
Hum, personally as an Emacs-er and not a developer Lisp for me is just a nice user-programming tool, a way that allow me to insert and run code for many things I need inside notes, running it on click, on a keybind, on file save/open etc that's it's power.
With C-like languages I can't do the same, they need compilation, they can't live in a live REPL, even a hello world is many SLoC etc. Unix (CLI) offer shell scripting for small automation, lost it with GUIs, while classical systems (Smalltalk and Lisp based) can perfectly and effectively.
If those language for crafting complete OSes are complex and slow I do not care much because the outcome of something like http://augmentingcognition.com/assets/Kay1977.pdf is so powerful that's absolutely worth the effort and seen actual systems that essentially fails to innovate at least since the '80s...
SmallTalk was the language of first commercial desktop environments, modern desktops with keyboard, mouse, a similar form factor than today desktop, networking etc and those historical systems are still far more advanced than today's ones.
Personally I prefer Lisp as a base language, but in any case the concept is far more important than the rest. A thing humanity lost years ago and that need to recover ASAP.