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 8, 2008 23:45 UTC (Sat) by epa (subscriber, #39769)
In reply to: MIX - Novell's de Icaza criticizes Microsoft patent deal (LinuxWorld) by kripkenstein
Parent article: MIX - Novell's de Icaza criticizes Microsoft patent deal (LinuxWorld)

What is the logic behind this Vala thing? From an outsider's point of view the history looks rather like:

We want to pick a programming language. C++ is too complicated and who needs all that object crap anyway? Objective-C is too little known. We should just use plain C.
Oh hang on, it would be useful to have objects after all... we can do them using plain structs. Actually you know what, there should be some infrastructure to support it, then we can have serialization, reference counting and all that. We'll call it GObject.
This GObject manipulation is getting really tedious. Straight C isn't suited to it; clearly we need our own language which has the object-oriented stuff built in. Aren't we clever; funny nobody else thought of that.
Please tell me they're not just rediscovering the wheel here.


(Log in to post comments)

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

Posted Mar 9, 2008 1:44 UTC (Sun) by pjdc (guest, #6906) [Link]

It seemed to me at the time that they were thinking something like "People are really excited about C# and how quickly they can put simple programs together with it. Can we provide something similar and avoid this extra potentially problematic runtime dependency?" Of course I may have missed the part where they trumpeted their genius and proclaimed uniqueness.

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

Posted Mar 9, 2008 6:39 UTC (Sun) by kripkenstein (subscriber, #43281) [Link]

> Of course I may have missed the part where they trumpeted their genius and proclaimed
uniqueness. 

On their behalf, I am offended. I talked to the Vala people on IRC several times and I believe
I have read most or all of their website material. In none of this have I seen any case of
them saying how great they are. Quite the opposite in fact (e.g. the FAQ makes it clear how
they do not think they are better than similar languages/tools).

Vala was founded by two normal guys as a personal project (no commercial backing or anything
like that). They have my respect for their project's achievements so far, and I have never
seen them be anything but humble about it.

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

Posted Mar 9, 2008 6:34 UTC (Sun) by kripkenstein (subscriber, #43281) [Link]

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.)

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

Posted Mar 9, 2008 8:05 UTC (Sun) by salimma (subscriber, #34460) [Link]

Recall that the first C++ compiler, Cfront, actually outputs C code, that you then need a C
compiler to process.

Vala makes good sense -- it builds on top of standard C compilers (GCC, ICC, etc.) and the
GObject type system, but provides C#/Java-esque bindings. But without the bloat of a heavy JIT
runtime (or a runtime library, if using Java with GCJ).

As more and more library bindings are added to Vala (a process that can, in the best cases, be
automated), hopefully the inconsistencies in the GNOME platform's C libraries can be reduced
as well. So it's a win-win scenario, even if you yourself do not use Vala for your
programming.

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

Posted Mar 9, 2008 20:17 UTC (Sun) by vonbrand (subscriber, #4458) [Link]

GObject is the "runtime library" here...

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