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