[Thunar-dev] next step in thunar development
Benedikt Meurer
benedikt.meurer at unix-ag.uni-siegen.de
Fri Jun 3 18:38:12 CEST 2005
Jeff Franks wrote:
>>Just to make sure there's no misunderstanding: While this sounds like we
>>are limited to C as implementation language, its not the case. The core
>>will (and has to be) written in C. For the upper layers, esp. plugins at
>>a later time, I can imagine several programming languages. I think Java,
>>C++ and Python are the ones of interest here.
>
> Benny,
>
> For XFC 4.3.2 I want to provide wrappers for the Xfce4 libraries and
> this has had me wondering about libexo, your Xfce4 widget extension
> library. Clearly Thunar will depend on this library but it isn't in the
> Xfce4 SVN like Thunar. Does that mean that Xfce 4.4 will depend on an
> external library or do you plan to move it to the SVN. Currently XFC has
> these modules: libXFCcore, libXFCui and libXFCglade. If libexo were in
> the SVN then I could include possibly one or two new modules: libXFCxfce
> and/or libXFCexo.
I know, moving Terminal, libexo and the installer is on TODO. Maybe this
weekend, depends.
> On another note (please everybody, lets not start a long pointless
> discussion about this) I just wanted to say - I hope everyone thinks
> carefully their choice of language. Their is no doubt C++ has the
> beneift of raw speed and power over Java and Python (which are easier to
> use but slower). Surely, its important to keep Xfce4 not only easy to
> use but fast as well. I think minimizing the number of different
> langauges used to program one application will make future maintenance
> easier. Here are a couple of benchmark links you can check out:
>
> http://www.flat222.org/mac/bench/
> http://www.tommti-systems.de/go.html?http://www.tommti-systems.de/main-Dateien/reviews/languages/benchmarks.html
Actually, if you look at the average Gtk+ project (using the C API) for
example, stuff is usually horribly un-modularized and there's no overall
organization (many times you see projects that share a vast amount of
global variables all over the code or separate code by callbacks and
other functions, not by the data they act on, etc.), that things will
slow down very much after some time (adding code, changing code, ...),
simply because people aren't able to overlook their project anymore and
so they'll start to call random functions in the hope that the result
will be the expected result, even if calling this function introduces
performance problems (which is not obvious as the problems are hidden
deep within another function, thats not linked to this function in a
developer-visible way).
Now that's nothing new and nothing bad (atleast if I don't have to
maintain such a project). Most people in the open source are hobbyists
and in the end we're all human. My point is that choosing a "fast
language" does not mean that the program will be fast.
The benefit of high-level languages is that they force people to think
about their doings many times (C++ is not really one of these
languages). For example, with Java, people will be forced to think about
modularization, because you cannot simply access globals and use only
static functions without running into serious trouble (as demonstrated
above, you'll run into trouble with C as well, but with Java you'll
notice problems way earlier, esp. since not a single Java book would
suggest developing with global variables and static functions, while
most C books do).
So, to conclude: Using ("not very fast") high-level languages can help
inexperienced people to develop programs that'll run faster (atleast
after some maintaince time) than a program they would have otherwise
hacked together in a "fast language" like C or C++ (both can be very
benefical and C++ is definitly a very good language with support for
high-level constructs, but for the average open source hobbyist, it's
just too easy to shoot yourself into the foot, just because he doesn't
know the important bits of the compiler or the runtime environment).
> Regards,
> Jeff.
greets,
Benedikt
More information about the Thunar-dev
mailing list