15 Apr 2001 kai   » (Journeyer)

Hmm, meant for the "Objective-C" thread, actually, but it seems I'm still not certified, oh well...

Have you checked out the TOM programming language ? It has a syntax almost identical to Objective-C with some nice features from other languages, such as Java, Eiffel, etc.

TOM is a very dynamic compiled OO language (though not quite as "extreme" as Smalltalk) and the runtime library offers garbage collection (Very nice if used to try it "by hand" using C++). Other features:

- multivariant return types.
- nice tuple systax (e.g. "(int, int, int)")
- CLOS-like blocks
- pre/post conditions
- default parameters
- TOM classes are extensible (key feature, read the FAQ!)

The Tesla compiler (written in TOM itself) produces C, which allows inline C (or even C++, hehe) for quick hack language bindings or code that needs extra speed. The complete TOM object system/run-time is accessible from C which would allow using the TOM object system in a C project such as Gtk+, I suppose. TOM methods may be implemented in C directly if necessary. Where these features are not used, the code is fully "cross-platform". Even a TOM virtual machine has been thought about.

TOM message passing overhead is close to Objective-C, a global optimizing compiler is in the planning IIRC.

Unfortunately the Gtk/GNOME bindings don't support the latest versions fully and a recent Debian package is also lacking :^( There is currently no native CORBA binding (so the C binding has to be used.)

From my point of view TOM is a suitable "successor" to ObjC, and would be a viable alternative to many other true OO languages. I'm using C++ most of the time and with a grown community TOM would certainly become my programming language of choice. Establishing a new language without support of a big company won't be easy, as has been pointed out. The basic features are pretty easy to learn, I'd say, ideal for switching from C to TOM :O)

TOM/Tesla is GPL and LGPL.

Latest blog entries     Older blog entries

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!