Re: Why GNOME uses C?



Hi Peter,

Peter wrote:

>But what was very strangely for me that there were advices to program for
>gnome in Python or C#. IIRC these languages do not need their
>programs to be compiled (sorry I fogot the right term) to run them. So
>this are the different languages, and if we want fast program (desktop)
>it's better to avoid such languages. Did I miss anything? So why there
>were such advices?
>  
>

This could become a contentious topic (compiled vs interpreted
languages).  You're correct that in many instances an interpreted
language will run "slower", simply because it has extra overhead in
processing the code before (or while) it is being executed.  However,
there are benefits to higher level languages (eg: often better
portability, ease of development, ease of implementing better
algorithms, etc) that can outweigh these drawbacks.

If you want to see whether languages such as Python or Ruby are slower
than plain C for desktop applications then why not check out some of the
Gtk examples for these three languages?  On my machine (a dismally
under-powered Intel Mobile Celeron 2.2GHz) I can't see any particularly
noticeable difference in responsiveness between them.

I have had the (perhaps unusual) experience of developing an application
with the same functionality under both the old Win32 "Microsoft
Foundation Classes" and pygtk.  The application is used to display
strain gauge data sampled at 40Hz from 9 separate channels in real
time.  Despite the pygtk version containing custom widgets, the drawing
of which is actually processed in Python, it *still* isn't slow enough
for me to need to use a compiled language!  The pygtk version is much
less code than the Win32 version, and much nicer to read and maintain.

So, an important question is whether the additional speed that may
*perhaps* be possible with a compiled language is worth the extra code,
time and effort that is necessary?  Is the speed difference even
noticeable?  Which solution is more modular?  Which can be modified most
easily?  Which is easiest for a new developer to understand?  These are
all questions that are probably far more important in the long run than
an extra few hundred milliseconds here and there that an end user may
need to endure.

--
Jonathan Merritt.
PhD Student - Equine Biomechanics,
The University of Melbourne,
Veterinary Clinical Centre, Werribee.




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]