Seems like it makes operational tasks, and really anything that involves distributing the code to anyone who is not the developer, is more difficult than with non-image based languages.
Seems like it makes operational tasks, and really anything that involves distributing the code to anyone who is not the developer, is more difficult than with non-image based languages.
And we can run the Lisp program and not touch it. But… if we want, we can easily connect to the running Lisp image, introspect it, change a couple parameters… or do a software upgrade, which can involve installing Lisp libraries… and we could connect to the image on the remote server from our editor and develop the app (while still saving the changes in source control locally), but that would be silly and it isn't a standard way.
https://benchmarksgame-team.pages.debian.net/benchmarksgame/...
./bin/visual nbody.vw_run.im -nogui -pcl MatriX -filein nbody.vw -doit 'ObjectMemory snapshotThenQuit'
...
...
./bin/visual nbody.vw_run.im -nogui -evaluate "BenchmarksGame do: 50000000"
...
...
-0.169075164
-0.169059907For sure! Is it a well-founded complaint or just an obvious difference?
What if the Smalltalk image is a cache not an archive?
What if source code is exported from the image as text files and archived, and each week the source code is loaded into a base image for test?
The “doesn’t play well with others” problem of Smalltalk was kind of a killer.
https://news.ycombinator.com/item?id=29223880
> … storing source code inside a memory image didn’t help with interoperability…
"Interoperability" covers a lot of things, was there something particular you had in mind?
----
> … its own OS and GUI.
Well there are examples of bare metal Smalltalk (I'm guessing we could say the same of Java?)
https://github.com/michaelengel/crosstalk
but that was kind-of unusual and afaik commercial Smalltalk implementations targeted specific host OSes.----
Similarly back in the '80s commercial Smalltalk implementations provided their own GUI L&F (and in the '90s Java provided their CrossPlatformLookAndFeel aka Metal).
When OS GUIs became available in the '80s, Smalltalk implementations either targeted specific host OS GUIs (so on MS Win use MS Win controls) or provided portable GUIs based on emulated L&Fs (OS/2, Motif, MacOS, MSWin) (and in the '90s Java provided AWT/Swing…).
IBM Smalltalk (Visual Age) GUIs were based on what would become in the '90s Java SWT.
----
So no, not really "its own OS and GUI" — when GUIs became provided by the host OS, Smalltalk implementations provided ways to use the platform L&F.
Here's some "play well with others” "interoperability" —
Sept 21, 1987 — "A version of the Smalltalk-80 object-oriented development environment … has been announced by Parcplace Systems.
Smalltalk-80 DE version 2.2 is said to provide Unix environments with interprocess communication via sockets and access to Unix C shells. On the Apple Macintosh, it provides access to Desk Accessories and provides the ability to cut and paste between the Smalltalk-80 system and the clipboard."
https://books.google.com/books?id=ldk7z4Q-WWYC&pg=RA4-PA4&lp...