Thursday, July 15, 2010

Genie/Vala

You wouldn't know this from reading my blog, but I'm a Python fanboy. Maybe I haven't blogged anything about Python because it's already so completely awesome that there isn't much to blog about. Well, anyway, today I stumbled upon an interesting programming language called Genie:

http://live.gnome.org/Genie
http://en.wikipedia.org/wiki/Genie_%28programming_language%29

Genie is pretty intriguing for many reasons. It's a high-level language that uses the Vala compiler. What is Vala?, you might ask. Vala is a high-level language that can be used to write cross-platform code. It's syntax is similar to C#, but unlike C#, Python, Java, or many other modern high-level languages, it doesn't need a runtime environment/VM to run, because it compiles to C, which then of course compiles to machine code. And because it compiles to C, it can be used to write cross-platform applications, on anything that supports GLib, which at the very least covers the big 3 (Windows, OS X, GNU/Linux).

So Vala itself is pretty cool. What makes Genie even cooler is that it has more of a Python-like syntax, which, of course, is one of the coolest things about Python (for those of us that happen to like Python). And Genie and Vala can be used alongside each other.

How's this for a Hello World?:

init
print "Hello, world!"


Granted, not quite as basic as a Python Hello World:

print "Hello, world!"


but basic enough. It's sure nice on the eyes without all those curly braces and semicolons at any rate.

So... if at any point I am developing an application and want the benefits of a compiled language that doesn't rely on a VM, I'll definitely be checking out Genie. And for those of you who aren't too fond of Genie's syntactical style, I'd recommend checking out Vala.

If nothing else, it sure beats trudging through C/C++. Yeah, they're not bad languages, but it seems to me with the way technology is continually advancing, it's ridiculous that C/C++ are still sometimes the best options for software development, especially when it comes to performance. Who knows, maybe Genie/Vala are the next C++. Then again, maybe not, but they're definitely worth looking into.