Re: Choice of languages



j-smith@physics.tamu.edu wrote:
> 
> > Hi,
> >
> > I wish to direct this question directly at those who are core GNOME
> > developers:
> >
> > Why choose C, and not C++?
> 
> I once enjoyed C++ too.  I have since come to appreciate the flexibility C
> offers.  If you look closely, you will see that the gnome code is C++ written
> in C (objects, inheritance, virtual functions, etc. - it's all there,
> according to the maroon book by Stroustrup).  Writing the code in C invites
> more developers than C++ (mozilla for example).
> 
> KDE is an environment written primarily (if not completely) in C++.  Compare
> the size of the development and the number of language bindings available.  My
> impression is that GNOME has much more flexibility in development (which
> language to use for the app) and a more diverse group of developers.  Much of
> this, IMHO, can be traced back to the fundamental choices made by the core
> developers (C vs. C++, CORBA, ...).

CORBA, however, remains a C++-oriented technology. I'm not saying it's
in any way tied to C++, but much (if not most) CORBA documentation is
geared toward C++ (Java is #2). CORBA documentation focusing on C is
rather scarce.

> C++ is fairly useless without advanced math - Modern Algebra comes to mind.

Huh? OOP is an engineering discipline. While a solid understanding of
mathematics will help almost any programmer, I don't see how advanced
mathematical concepts are integral to understanding OOP.

> Without the concepts developed in that couse, C++ is still ultimately a
> procedural language (at least here at Texas A&M University).  Object
> orientation is the core of mathematics.  Not many people in computer science
> have that kind of background (again, at least here at TAMU).  To expect that
> kind of knowledge is not (IMHO) reasonable in an open source environment.

There are vast armies of OO developers out there using OO languages like
C++ and Java. They generally command a pretty healthy salary, and are
probably in most cases too busy earning a living to spend a lot of time
doing open source projects (unless their employer pays them to do so:
e.g. Mozilla).

The C-ist tendency of open source projects is probably attributable to
the fact that fewer available developers have formal OO training, and
thus C codebases are likely to attract more developers. And as you
mentioned, C++ compilers aren't There yet. I don't know of any that
fully implement the ANSI/ISO standard--let alone free ones. C compilers
on the other hand are mature, stable, and ubiquitous.

I'm a C++ guy myself, and I'm of the opinion that it will *eventually*
replace C even in most open source projects. But that won't happen until
compilers stabilize and OO languages become entry-level languages. I
think Java will be a big part of that. (Ironically, I think Java will do
more to promote C++ as a development language than to suppress it.
Programmers who have learned OO concepts in Java will find C++
relatively easy to grasp.)

-- 
Braden N. McDaniel
braden@endoframe.com
<URI:http://www.endoframe.com>



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