3 ms·
Other comments explain that nowadays Smalltalk programmers use git or Monticello for revision control. Lisp programmers usually use git or other conventional re
by mikelevins 8y ago
Other comments explain that nowadays Smalltalk programmers use git or Monticello for revision control. Lisp programmers usually use git or other conventional revision control tools.
Yes, traditional Smalltalk systems can serialize sources to files, and can read them back into a running image. In Smalltalk jargon that's called "filing out" and "filing in".
Lisp systems generally use plain old text files as the canonical form of storage for source code. A given project consists of a set of source files, just like a C or Java program. The utility of image files is that they give you (1) the starting Lisp environment; (2) a reference image customized for your local site that starts up fully customized and ready to go; and (3) working images that record a specific state that you were working on, to preserve your context.
Git and tools like it are not great for managing image files. Images are large binary files, and successive versions of images tend to have collections of small changes to them. This is exactly the kind of file that git does not handle well at all. Consequently, I don't generally use git or similar tools to manage images, and I don't imagine a lot of other Smalltalk and Lisp programmers do, either (correct me if I'm wrong!).
It would be great if we had some sort of git for large binary files. I don't mean something like git-annex--a way for git to duck the problems of managing versioned large binary files by outsourcing them to some other storage. I mean it would be great to have a revision-control system that could manage versioned binaries as well as git manages versioned text.
Lisp and Smalltalk programmers are not the only people who would benefit. Any project that needs to manage a lot of media files would benefit. One obvious example is in game development. Even small games tend to need to manage versioned files containing thousands of image and sound resources. It's a giant pain. Git for binaries would be a godsend for projects like that.
And for managing Lisp and Smalltalk image files, too, but we can't rely on that demand. The number of people who need to manage a lot of Lisp and Smalltalk images is even smaller than the number of people regularly using Lisp and Smalltalk in their daily work.