Wanting to start development for Ubuntu (and most Linux distributions in general), which is suitable? Python or Vala? [closed]
I'm a computer science graduate, and learned languages like C, C++, C# and Java. Though I have more experience with Java. I want to develop for Linux and I'd prefer to develop for GNOME, I'm confused between choosing one from the Python and Vala.
After going through some documentation on Vala on GNOME Live pages, it seems more familiar to me compared to Python, which is quite a different syntactically compared to most languages I've learned during my graduation. While learning curve in Vala seems smaller to me. So, which language should I choose to begin development, which has better support in variety of distributions. A recommended IDE for suggested language will be appreciated.
Thanks.
Other than the old argument about which programming language is better, which I won't get into (even though Python is the greatest thing since sliced bread), I'd say both are equally well suited to writing Apps for the Gnome desktop.
Pygtk, the Python GTK bindings, have been used to create applications like PiTiVi, Deluge, emesene, Exaile, Jokosher, and WingIDE.
I can't find a list of applications written in Vala (though I know about Shotwell). But since it's very much designed to be a language for the Gnome destkop, you can be pretty sure you won't be disappointed by its GTK/GObject integration.
Try them both and use which ever you like best. They are both excellent tools to create GTK Applications. You might also want to take a look at Some Vala code and Some Python code.
I'd recommend Vala. You seem to prefer object-oriented languages and Vala is object-oriented by design. Python has OOP capabilities too, but they're not that integrated into the other parts - that's why Ruby was created.
Python is considered easier to learn and use, but it's a very original language, with its own logic and philosophy; I think Vala will be easier to learn to you because it's very similar to C# and Java.
The choice also depends on what apps you're going to write. Python is good for scripting and quick prototyping, but its GTK bindings are currently poor and very slow. The language itself is at about 40 times slower than C in various benchmarks. Vala, on the other hand, is a C preprocessor, so programs written in it run very fast, and it's designed to be used in GNOME.
I would suggest you start with Python as it's really easy to create PyGTK apps. This free book is a great resource for developing Gnome apps with Python.
Vala is great too but you'll find yourself more comfortable with Python as a beginner.
Later on, once you get acquainted with the philosophy of Unix app development, you can create parts of your app in python or vala or Javascript as you feel the need.
I would say, start with PyGTK (PyGI) to get the feel of the platform and then learn Vala and Javascript. Javascript is going to be HUGE on the Gnome desktop. I mean HUGE.
The binding for GTK, they are the same for all apps now. You'll be using the same C bindings from any language using Gobject Introspection.
Python has a lot of good documentation / books. For Vala I don't know.