Saturday, September 30, 2006

GNU Smalltalk matters

i've developed several personal applications on Smalltalk Squeak, the latest project is SqueakGtk.
Smalltalk Squeak is, in my opinion, the most important open source implementation of Smalltalk, therefore it got many libraries and community support.
However, it's still unused and unspported: for example it's not included into Linux distributions. Personally because:
  1. Of its history and license problems
  2. It's an heavy application, more than 20mb for VM and image, without integration with the desktop due to Morphic graphics and the console, hence it's not a good choice for scripting
  3. Users who come from Java, Python, Ruby don't feel good to work into an isolated world, such as Morphic, own version control system and, as said before, no integration with the existing tools
Smalltalk stayed in its own world because there's no friendly and supported implementation of it.
GNU Smalltalk, on the other hand, gained many features that could bring it to be the most important and used Smalltalk version... here's why:
  1. Being GNU software, it can be included into Linux distributions as well
  2. It's pretty small but features full, the tarball is 4mb (plus image) and the image normally is about 5mb
  3. It has a console interpreter, so it can be used as well as scripting language, being more friendly for new comers. This allows programmers to choice their own development environment, both external and builtin (BLOX).
Currently GNU Smalltalk, got the most useful libraries, such as Net stuff, Tk, Gtk, XML, Regex, and more, with a good interface from C to Smalltalk and viceversa.

I think helping this project grow (the project is active and never died) means giving Smalltalk a chance to get into developers world just like other languages, without being isolated like Smalltalk Squeak and other commercial versions.



Bryce Kampjes said...

Squeak is in both Ubuntu and Gentoo Linux distros.

Anonymous said...

Hi Luca,

I absolutely agree with you about the importance of Gnu Smalltalk. I am personally an alternative newbie to Smalltalk but for me the only alternative was Gnu Smalltalk when starting learning - because of my Linux background.

My wishlist for Gnu Smalltalk:

(1) Build a community.
Just think about how difficult it is to find the mailing list archive for Gnu smalltalk - there is no reference from the official site (for curious souls! There is no Wiki, where all the examples and solutions that are found and discussed in the forum could be placed. It could also be a system to help keeping the documentation up to date - it really needs a lift.

(2) Old releases shipped with distribution. Imagine for Ubuntu there is still no v2.2. And try to build it yourself with Gtk+ support? It fails because of some strange grep error! Why not provide pre-build packages?

(3) No Unicode support.
I still don't understand that in Smalltalk there is no difference between byte and character! And there seems no standard way how make unicode support!

(4) IDE is sooo unsexy
I'd like to have Blox with Gtk and with the usage of adapted widgets (please trees for classes).

(5) Not prebuild for Windows

(6) Strange package/module management

OK I stop here. I would like to help if I had more time and would know better Smalltalk. But I am already frustrated that on my Dapper Ubuntu I don't manage to compile v2.2 with GTK support so that I can't run the program that I programmed before updating the OS. It's plain frustrating for a newbie!

Luca Bruno aka Lethalman said...

3) There's a class for unicode strings, and i guess there's also something like asUnicodeString

You should be able to run GTK with latest CVS