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.
