The Early History of Smalltalk (1993)
worrydream.com
worrydream.com
There have been several past discussions. Ones with more than 1 comment:
https://news.ycombinator.com/item?id=25012425 - Nov 7, 2020 (28 comments)
https://news.ycombinator.com/item?id=17913668 - Sept 4, 2018 (69 comments)
https://news.ycombinator.com/item?id=9907556 - July 18, 2015 (5 comments)
https://news.ycombinator.com/item?id=9588316 - May 22, 2015 (5 comments)
https://news.ycombinator.com/item?id=7926141 - June 21, 2014 (10 comments)
https://news.ycombinator.com/item?id=1311282 - May 1, 2010 (17 comments)
"Smalltalk at Tektronix" STIC13 2013
https://www.wirfs-brock.com/allen/files/tek/Tek-Smalltalk-hi...
Dan Ingalls' Evolution of Smalltalk: http://worrydream.com/refs/Ingalls%20-%20The%20Evolution%20o.... This covers some of the same time period as Kay's article but goes on through the early commercial history of Smalltalk and the development of Squeak.
Lots of free books courtesy of Stéphane Ducasse and the people who released them for free and OCR'd them: http://stephane.ducasse.free.fr/FreeBooks/. I'm reading The Bluebook, Smalltalk-80: The Language and its Implementation by Goldberg and Robson, presently.
And if you either don't want to install Smalltalk on your system or want to use an older version: https://smalltalkzoo.thechm.org/. With a writeup about it here: https://computerhistory.org/blog/introducing-the-smalltalk-z...
* thank you, thank you, thank you (that’s only one thought)
* the fact that Smalltalk is objects all the way down (methods, stack frames) is impressive
* his camo shirt (look at the chair) is quite distracting
https://lists.cuis.st/mailman/archives/cuis-dev/2022-April/0...
For what? Practically speaking in 2022 it has no benefit over any other system or language or libraries.
It seems to be a cool thing that we can talk about as we look at our college days with nostalgia.
A few people will even vehemently insist that they use it just as well today and it’s the “best thing ever” and you ingrates and peons belonging to the uneducated and unsophisticated masses should use it.
So we guiltily head over to the smalltalk language site and maybe even do a brew install. And yes it looks neat! Damn, if we were in a different world then everyone should be using it!
But what’s that? I see the weekly e-mail report on traffic and revenue from my ruby app. As I head off to my home and family to plan our monthly weekend vacation at the lake cottage paid for by my 9-5, I’ve forgotten about smalltalk until the next HN article…
One thing I do find interesting is that the programmers who usually come up as "legendary" in this context were usually just better than average guys who ended up in the right place at the right time. A lot of their code is still running in the Cincom VisualWorks product and not all of it is gold.
I wrote a few blog entries on it a while back:
https://smackeyacky.blogspot.com/2021/08/cincom-visualworks-...
think about how we easily make scripts and tools etc in the terminal, now imagine that for your whole os including the gui, it could be very empowering for the average person
Because of the way that embedded systems work, you can't easily escape the standard build, load, test cycle (at best, on some projects, you get simulators to help speed up test), and deployment is often delayed for, sometimes, good reasons around coordination with a fleet of systems.
On the desktop software side, because I haven't convinced my employer to go with smaller batch sizes for releases, we still have big-bang releases every 3-6 months (and the first year with COVID we didn't even hit that pace with remote work growing pains). When an end user comes across a non-critical issue, this means they will be waiting months to have it addressed (if it gets put into the next release, it could be years in a worst case).
This leads to end user empowerment, at least in principle. One of the current systems I'm working on has a pretty comprehensive scripting language (a bespoke DSL) that lets end users (not formally trained as programmers, and their job isn't to work as programmers) extend the system to meet their needs without calling for help most of the time. None of the other systems do that, but most could without hitting any corporate IP issues (the customer, in our case, owns most of the source code anyways, but they aren't a software company and outsourced the development and maintenance work). Smalltalk (the system) is an extreme case of end user empowerment and I wanted to explore that concept.
"Prototyping a real-time embedded system in Smalltalk"
https://dl.acm.org/doi/pdf/10.1145/74877.74904
"Design, Implementation, and Evaluation of the Resilient Smalltalk Embedded Platform"
https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.84...
Some desktop apps, some fullstack web apps and lately backends.
Compare this to a language like JavaScript. There too you can modify the base-objects like Object and Function and Array. But the changes you make to them will be part of your program which is not saved as part of an "image" (only as source-code). Your JavaScript program does not assume anything more about its environment than anybody else's JavaScript program, because you can not develop against a modified "base-image" (since there is no such thin in JavaScript, is there?).
Smalltalk would be great for things like programming all the smart devices in your house. I think that was part of its original goals, provide an environment where everybody can create their own programs, without worrying much about how your program might later integrate with programs of others.
It is a tool which is very easy to misuse, by forgetting to file out all the changes you make to it.
That is not uncommon in practice. Most (or all?) Smalltalk's come with an image, but there is no source-file telling you how that image was derived, or how you can derive it from some more basic "standard" vanilla image.
That is the reason why it is so difficult to get code developed on one Smalltalk -platform to work on images provided by other vendors. You could say that is caused by "misuse" of the image-tool, but seems like all Smalltalk vendors are doing it.
Yes there is — the .changes file!
.image is a snapshot/cache
.sources is source code text for the vanilla .image snapshot
.changes is recovery log text of what has been done with the vanilla .image file
> That is the reason why…
No.
https://news.ycombinator.com/item?id=30917420#30939981
> … programs you develop "on it" will not run on anybody else's image.
You seem to have confused the image snapshot with the virtual machine.
As-if .class files were the JVM.
Have you tried porting Smalltalk apps between different vendors' Smalltalks? Problem is there is no standard Smalltalk base-image. That is caused by the fact it is so easy to modify everything in the image you have and then save it and give it to others. Others then start developing against that.
You can try meticulously to avoid this problem but it takes special attention.
Contrast this with Java. You can run any Java program that was developed on a given version of JDK by using that same or later versions of JDK.
No. That problem is that the standard Smalltalk class library is small.
For example, the standard does not include user-interface classes and different vendors provided different proprietary classes.
That problem has nothing to do with the image file. That problem is lack of standardization of Smalltalk libraries.
Have you tried porting Swing apps to SWT or vice versa?
Love this line as this was definitely my impression of monads when venturing into Haskell-land...
The whole history of Smalltalk is interesting and it's an interesting way to reason about data and behaviour. And even if Smalltalk is obscure, C++, Java, Ruby, Python and others aren't, and OOP remains a great way to model many domains.
I don't just mean "slightly different" like how arrays in javascript are slightly different than arrays in C. I mean like they are completely different ideas/concepts that happen to share the same word. I think "Homonym" is the right word for this situation?
Despite the name though, Leibniz monad's don't have anything to do with monads in category theory/math and Haskell.
In Leibniz the name monads is used for a philosophical concept, kinda like a blend of "atoms" in Democritus and platonic "ideas" ("https://en.wikipedia.org/wiki/Monadology")
https://web.archive.org/web/20220420150543/http://worrydream...
This...what do you call it? A mindset? A way of life? The answer to all questions? Because you cannot simply call it a programming language that's for sure.
I started programming in 1979 and throughout my long career I have constantly been exposed to various Smalltalk articles and genuflections.
Wow! Just look! Fucking EVERYTHING is an object! Holy shit can you believe the audacity of the developers?
Along with LISP, Smalltalk is just one of Holy Shrines That One Must Visit In Order To Complete One's Path As A Real Programmer.
I almost think "Ancient Religion" should be the right moniker...
With that experience, what do you think of the state and directions of the computer industry today?
Here's the thing. Some people will hate a thing so much they'll accuse you of professional misconduct for using it. Seriously, you can find people who say, in writing, that programming without static type-checking is professional misconduct.
Should that stop us from using JavaScript, Clojure, Ruby, Python, &c.?
No. Although hey, at least read their arguments with an open mind and decide for yourself.
On the other side, there will be people who love a thing so much that they can't imagine using anything else. We may not love it as much as they do, but should that stop us from using that thing if we like?
Also no.
Bottom line: Why judge a thing by what the most extreme opinions about the thing are, or how extreme those opinions are? Judge by its utility for you.
Programming language +
windows, icons, menus, pointer +
editor +
source debugger +
source libraries (including compiler, wimp, editor, debugger) +
graphics libraries
Back when each of those cost extra, Smalltalk/V 286 was an affordable development tool ;-)March 7, 1988 — "Smalltalk/V 286 is available now and costs $199.95, the company said. Registered users of Digitalk's Smalltalk/V can upgrade for $75 until June 1."
https://books.google.com/books?id=CD8EAAAAMBAJ&lpg=PA25&ots=...