[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Is GNU Smalltalk dead?

From: Piotr Klibert
Subject: Re: Is GNU Smalltalk dead?
Date: Sat, 13 Nov 2021 19:41:23 +0100
User-agent: Cyrus-JMAP/3.5.0-alpha0-1371-g2296cc3491-fm-20211109.003-g2296cc34

On Sat, Nov 13, 2021, at 08:26, Sam Lee wrote:
> Is GNU Smalltalk abandoned? 

Not exactly. There are a few maintainers around, so they will probably accept 
patches. But nothing new happened in the last few years, as you say.

> The most recent release was from 2013 (version 3.2.5) [2]. 

I think the git repo version is more up to date, with the last commit in 2018 

> VisualGST, the GNU Smalltalk browser no longer compiles on current systems.

I was able to compile it on Fedora (28 - 33). I also found a few bugs in VGST, 
I posted one patch here IIRC, but, in general, I can testify that it still 
works. I don't remember at the moment what I did exactly to make it compile and 
work though, I'll need to check.

> Is GNU Smalltalk dead? Should I move to other Smalltalk implementations?

The problem is - there are no other Smalltalk implementations with strong 
command-line support and a "bring your own editor" philosophy. I checked out 
all implementations I could find this spring, and only Smalltalk/X seemed to 
have good command-line/console support, but that one IIRC works by compiling to 
native code via compilation to C++, which makes it a much more complex beast 
than GST.  All the other implementations either derive from Squeak (and shove 
the various kinds of graphical browsers right in front of you whether you want 
it or not), cost a lot (with the open-source version crippled, without support 
for SSL), don't work on Linux, don't have any support for working without a 
GUI, or are too complex to the point I don't feel comfortable using them 
without a lot of studying before.

GST may be slow and buggy and without libraries, but it's also stable (the 
other side of the "no development" coin), small, simple, and has one thing I 
really appreciate: the STInST, ie. the Smalltalk parser implemented in 
Smalltalk, that you can extend and modify as you need. Being command-line 
focused turned out to not be a big deal: the default REPL implementation uses 
readline and it blocks at the C level (Coroutines don't run then). So I had to 
write a little socket server and connect to it via rlwrapped telnet - works 
quite well in reality. 

Anyway, back to VisualGST and why I'm writing this - I managed to make it work, 
but my project was going to be mostly CLI-based anyway, so I didn't want to 
rely on it. Instead, I implemented some of the browser functionality as a bunch 
of helpers you can use in the REPL, including searching for message sends, 
implementors, methods, classes, namespaces, and so on. I was forced to stop 
working on it at some point, so it's far from complete, but it proved quite 
usable when I was exploring STInST. It's not the full replacement for the GUI 
browser, because you need to set up a separate editor, but once you do, you can 
open and edit a method definition and have it automatically reloaded. 

The code is on GH if you want to take a look (with some screenshots, too!):

I think the next thing I'll be touching once I can get back to the project will 
be the console debugger. For debugging, I still resorted to the GUI one, 
because the implementation for the console is incredibly buggy and limited in 
comparison. I'd like to make both support the same functionalities, and 
preferably be on par with Smalltalk/X console debugger, which is really good.

Anyway, to finally answer your main question: GST *is dying slowly* of old age 
and bit rot, but *it's still alive* for now, and there are a handful of people 
who work on its life support. Unless we get a "killer app" in the next few 
years, I think we can say goodbye to GST, sadly.

Best regards,
Piotr Klibert

reply via email to

[Prev in Thread] Current Thread [Next in Thread]