Non-C++ Apps in KDE Main Modules (Was: Guidance in KDE Admin)

Alexander Dymo adymo at kdevelop.org
Sun Mar 30 00:12:16 CET 2008


I read the whole thread today and felt a bit sad. Not because there's 
disagreement on whether we allow python application in KDE main module or 
now. But because both Guidance supporters and critics IMHO seem to have a 
really distorted view on modern computer programming and modern programming 
languages.

Why distorted? Because everyone here is using the word "scripting language" 
that automatically implies somewhat condescending point of view on Python, 
Ruby and any similar languages.

I've been professionally working with Ruby for two years now building various 
products that people use daily and believe me - calling Ruby (or Python) 
a "scripting" language is a huge mistake. They are normal MULTI-PURPOSE 
computer programming languages.

There's more to Ruby and Python - they are modern languages, meaning that you 
can "code less - create more" (exactly what Trolltech's motto says). Just to 
give you an example, in the company I work for we have one project being 
developed for 2 years using Ruby. The whole application is 11k LOC of code 
now. On average that means that each developer produced 20 lines of code per 
day. Our application is not a toy, so those 20 lines of code contain some 
real daily work with new features and bug fixes. Can you imagine yourself 
doing some _real_ work in 20 lines of C++ code per day? Even using Qt-alike 
API's won't help you.

Let's face it, there are better multipurpose languages than C++. Languages 
which allow you to:
- write less code to do the same work and/or do your work faster
- write the code people can actually understand (and not be forced to spend 
several years learning the programming language)
- do less effort maintaining the code (both because it's easier to read it and 
because there's less code to maintain)

There's also a fact that C++ will not gain more popularity in the next decade. 
I think we'll more likely have the same amount of programmers using it. 
Therefore it is IMHO the wise decision to invest into KDE feature now or 
we'll end up being the closed constant-size group of people writing some 
cryptic stuff nobody can understand and modify.

Python and Ruby are not the only modern languages. Personally I like Scala, 
there're people doing cool things with Haskell and so on. Python and Ruby are 
the good choice now just because we have good bindings for them.

Btw I should also add that it doesn't really matter which languages we'll use. 
It's much, much, much easier to learn Python or Ruby than C++. I learned Ruby 
in 1 month and started writing good code in 3 months. And I'm certainly not a 
superstar hacker. Most of KDE devs could do better than I.

To sum up, I do think that allowing non-C++ apps with no restrictions (other 
than the logical ones Allen listed in his email) is nothing less than the 
investment to the future of KDE. 

Not specifying the list of allowed languages is also our investment to the 
future. I do believe we'll see even easier, human-friendlier languages 
coming. We should encourage devs using them, not prohibit. As Alan Kay says, 
there's no reason for programming to be this hard.


PS: writing app in Ruby or Python doesn't make automatically the app slow and 
doesn't force it to eat and/or leak memory. In fact, my experience profiling 
and speeding Ruby apps tells that it's much easier to optimize your Ruby code 
and make it consume reasonable amount of memory than any C++ code I 
previously worked with.

Yes, sometimes you just can't make it as fast as C++. I wouldn't write C++ 
parser in Ruby. But such cases are for sure special ones.


PPS: if you still think C/C++ is the only true language - please reconsider. 
Apply for the Python or Ruby job - that definitely helps to change the POV. 
At least that's what happened to me during the previous two years.


More information about the release-team mailing list