Re: Language choices for the GNOME system



Just to pick up on two issues...

----- Original Message -----
> [ This is about the debate of programming languages in gnome-list ]
>
>    We want people to quickly understand the code: ie, make the learning
> curve smaller.  If the code is simple enough, hackers can become
> productive quite quickly (ie, hacking new code, improving existing
> code, or fixing bugs in the code).

Some would argue that is a reason to use a language such as C++, which
provides stronger abstraction facilities, as compared to C.

For example, in my game, I have abstracted away coordinate transforms. The
average programmer would *not* be able to understand the advanced template
tricks I used to do so. However, the client programmer doesn't have to. The
type system in C++ takes care of it all behind the scenes, at compile time,
just as if it were hand coded... but it's not. And it is enforced by the
compiler, so it can't be forgotten.

>    Now, I personally have problems with C++.  It is a language that
> has evolved over time: there was no clear goal at the beginning, nor a
> clear goal during its development.  What we have now is a mix of
> language features, many of them good features.  But sadly, the
> language lacks some sort of "internal" consistency.  This is purely
> from a taste-point-of-view.

I believe you might change that opinion after reading "The Design and
Evolution of C++" by Bjarne Stroustrup. It is a book that few who criticize
C++ have read.

C++ as a language has very clear goals, and they are not what might
immediately come to mind. For example,

"Did C++ succeed at what it was designed for? ... it succeeded by enabling
reasonably educated and experienced programmers to write programs at a
higher level of abstraction ('just like in Simula') without loss of
efficiency compared to C. It allowed this for applications that were
simultaneously demanding in time, space, inherent complexity, and
constraints from the execution environment." p196

--
SEGV



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