Re: Choice of languages
- From: "Braden N. McDaniel" <braden shadow net>
- To: j-smith physics tamu edu
- CC: James Green <gnome cyberstorm demon co uk>, gnome-list gnome org
- Subject: Re: Choice of languages
- Date: Tue, 18 May 1999 22:31:41 -0400
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]