LWN.net Logo

MIX - Novell's de Icaza criticizes Microsoft patent deal (LinuxWorld)

MIX - Novell's de Icaza criticizes Microsoft patent deal (LinuxWorld)

Posted Mar 9, 2008 6:34 UTC (Sun) by kripkenstein (subscriber, #43281)
In reply to: MIX - Novell's de Icaza criticizes Microsoft patent deal (LinuxWorld) by epa
Parent article: MIX - Novell's de Icaza criticizes Microsoft patent deal (LinuxWorld)

Well, as I see it (please correct any inaccuracies), the situation is as follows.

When GNOME and GObject were created, the options were C and C++, basically. C++ has various
portability issues, and a slightly different model of object orientation was deemed more
relevant for a GUI toolkit (e.g., the need for signals as a basic concept). So GObject on C
made sense.

However, GObject syntax is quite verbose and not easy for newcomers to use. One specific issue
is that subclassing takes a lot of boilerplate code.

Hence, over the years, nice wrappers were made for GObject, in e.g. Python. PyGtk is a joy to
program in.

However, there remains the need for a way to write nice foundational code - you don't want
basic library functions to be in Python (for speed reasons, mainly). You really need something
like C or C++ for those. But on the other hand, you do want the benefits of modern languages
like Java, C# and Python, with respect to assisted memory management (no messy pointers and
remembering to deallocate), clear syntax, etc.

Hence a few people, on their own - no commercial backing - decided to start the Vala project,
which lets you write modern code that compiles into C. Things like  signals which were
originally thought to be so important as to be necessary for GObject are now part of the
language itself. That is, the syntax of Vala is tailored for GObject.

So, in summary, I wouldn't say "they rediscovered the wheel" is completely accurate. I
**might** agree to that regarding GObject - but not Vala. Once Vala is stable, it will in fact
be something quite unique, that is missing from all other platforms - in what do you write
basic libraries for KDE, Windows or OS X? C, C++ or Objective C basically, AFAIK. With Vala
you write code with all the productivity of Java and C#, but it compiles into C. That's a big
benefit. (For apps, PyGtk might be even more productive, or PyQt etc. etc. on other platforms,
that's true.)


(Log in to post comments)

Copyright © 2008, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds