The future of C++

A

Adam Ierymenko

Forgive me if this is a dead horse...

I am currently deciding which language to use for a rather large and
important project. I am leaning toward writing highly portable C++
(and possibly using wxWindows for cross-platform GUI) and am currently
brushing up on my C++ skills for the job. (I am a highly experienced
programmer but have done most of my work in C and Java.)

I haven't looked at C++ in a while, but it seems to be in *better* shape
today then it was six or so years ago when I last looked at it. The
free compilers (g++) are *much* better and the language itself seems
more standardized. There are also more cross platform toolkits and
programming techniques available so you don't have to deal as much
with vendor lock-in. I get the impression that if I'm careful and use
stuff like wxWindows I should be able to target *nix, Windows, and
Macintosh without problems.

However, something is still nagging at me with regard to C++:

Is it going to become obsolete?

I know... this is not going to happen anytime soon. There is tons
of code written in C++. I'm thinking more along the lines of a ten-
year time horizon. Everything seems to be moving toward virtual
machine languages like Java and C#, and there seems to be lots of
anti-C/C++ FUD going around. Some of it has some basis-- it *is*
easier to write bad code in C++ than in Java-- but some of it seems
to be just FUD at least from the point of view of a highly skilled
programmer who knows how to write good C/C++ code. C/C++ is still
faster than a VM language (*especially* for stuff like graphics)
and a good programmer can write good code in C++ just as easily as
in Java. (You've heard the adage: bad C code crashes, bad C++
code leaks memory, and bad Java code is slow.)

The most troubling thing that I see is that MS is heavily pushing
C# as the language of choice on the Microsoft platform. Right now
Windows is the #1 C++-centric environment around... most serious
Windows apps are written in C++ and just about the entire OS beyond
the kernel is. MS seems to be moving in the direction of pushing
"managed" languages like C# for application development and maybe
even discouraging the use of standard C and C++ for DRM and security
reasons. It's easier to implement a DRM-based "everything has to be
signed" environment if all code runs in managed VM environments.

So what happens to C++ in the long term if it withers on the Microsoft
platform? Will it become a legacy language?

Just curious to see what opinions I get on this one...
 
E

E. Robert Tisdale

Adam said:
Forgive me if this is a dead horse...

It's a dead horse.
Is it going to become obsolete?

We all hope that C++ will eventually be replaced by a better language
but that's an issue for your children and grandchildren to deal with.
The most troubling thing that I see is that
MS is heavily pushing C#
as the language of choice on the Microsoft platform.

It is very dangerous to invest in Java much less C#.
There is *no* publicly owned standard for either of these languages.
You are at the mercy of large corporations who have, in the past,
demonstrated that they do *not* have your best interests in mind.
 
A

Adam Ierymenko

It is very dangerous to invest in Java much less C#.
There is *no* publicly owned standard for either of these languages.
You are at the mercy of large corporations who have, in the past,
demonstrated that they do *not* have your best interests in mind.

I tend to agree. That was my point, and it wasn't
a troll. Sorry if it came across as one.

My concern is simply that these large corporations, Sun
and Microsoft (who are now in alliance) might seek to
beat open standards like C++ out of the marketplace to
create an oligopoly.
 
G

Greg Comeau

Forgive me if this is a dead horse...

I am currently deciding which language to use for a rather large and
important project. I am leaning toward writing highly portable C++
(and possibly using wxWindows for cross-platform GUI) and am currently
brushing up on my C++ skills for the job. (I am a highly experienced
programmer but have done most of my work in C and Java.)

I haven't looked at C++ in a while, but it seems to be in *better* shape
today then it was six or so years ago when I last looked at it. The
free compilers (g++) are *much* better and the language itself seems
more standardized. There are also more cross platform toolkits and
programming techniques available so you don't have to deal as much
with vendor lock-in. I get the impression that if I'm careful and use
stuff like wxWindows I should be able to target *nix, Windows, and
Macintosh without problems.

However, something is still nagging at me with regard to C++:

Is it going to become obsolete?

I know... this is not going to happen anytime soon. There is tons
of code written in C++. I'm thinking more along the lines of a ten-
year time horizon. Everything seems to be moving toward virtual
machine languages like Java and C#, and there seems to be lots of
anti-C/C++ FUD going around. Some of it has some basis-- it *is*
easier to write bad code in C++ than in Java-- but some of it seems
to be just FUD at least from the point of view of a highly skilled
programmer who knows how to write good C/C++ code. C/C++ is still
faster than a VM language (*especially* for stuff like graphics)
and a good programmer can write good code in C++ just as easily as
in Java. (You've heard the adage: bad C code crashes, bad C++
code leaks memory, and bad Java code is slow.)

The most troubling thing that I see is that MS is heavily pushing
C# as the language of choice on the Microsoft platform. Right now
Windows is the #1 C++-centric environment around... most serious
Windows apps are written in C++ and just about the entire OS beyond
the kernel is. MS seems to be moving in the direction of pushing
"managed" languages like C# for application development and maybe
even discouraging the use of standard C and C++ for DRM and security
reasons. It's easier to implement a DRM-based "everything has to be
signed" environment if all code runs in managed VM environments.

So what happens to C++ in the long term if it withers on the Microsoft
platform? Will it become a legacy language?

Just curious to see what opinions I get on this one...

When you mention C++ and obsolete in the same sentence, it's
worth pointing out that COBOL, Pascal, FORTRAN, Basic, etc are
still alive and well. As is C for that matter (whith it was
claimed by many that C++ would put out of business). Also,
C++ has succeeded against all odds, and through that, it was
said that it would not succeed. But it did. And since it has,
it's been said every year since it would be legacy or be dead
by the next year. Even as you say with C# and Java, it is
still alive and well. The languages can co-exist, peacefully.
If you feel C++ is appropriate for your problem for whatever
reasons led you to that, it being obsolete or legacy should not
be a concern. Of course, it may be, but so may everything else
for that matter. But I'd put my money on C++ continuing in
a heathy manner (and in fact I have).
 
G

Greg Comeau

I tend to agree. That was my point, and it wasn't
a troll. Sorry if it came across as one.

My concern is simply that these large corporations, Sun
and Microsoft (who are now in alliance) might seek to
beat open standards like C++ out of the marketplace to
create an oligopoly.

Of course they are seeking that. But it doesn't mean
they always win, or that mutiple choices won't continue to exist,
or that they'll even be more successful on these than others
in the 10 year span you refer to.
 
T

Thomas Matthews

Adam said:
Forgive me if this is a dead horse...

I am currently deciding which language to use for a rather large and
important project. I am leaning toward writing highly portable C++
(and possibly using wxWindows for cross-platform GUI) and am currently
brushing up on my C++ skills for the job. (I am a highly experienced
programmer but have done most of my work in C and Java.)

Use whatever language you want. I knew a guy who would design languages
specifically for a project. The language doesn't really matter as long
as the executable performs correctly (as defined by the requirements).

If other people are helping on the project, then they need to know
the language too. Same for people who will be maintaining the project.

I'm getting kind of sick of these "future of ..." discussions. Write
the program in Modula2 or PL/1 for that matter.

If you have a choice, choose either a language you are really fluent
in or one that is better suited for the project. One could write
a word processor application in Fortran '77, however the project may
be easier using a language that has better string and text handling
capabilities.

--
Thomas Matthews

C++ newsgroup welcome message:
http://www.slack.net/~shiva/welcome.txt
C++ Faq: http://www.parashift.com/c++-faq-lite
C Faq: http://www.eskimo.com/~scs/c-faq/top.html
alt.comp.lang.learn.c-c++ faq:
http://www.raos.demon.uk/acllc-c++/faq.html
Other sites:
http://www.josuttis.com -- C++ STL Library book
http://www.sgi.com/tech/stl -- Standard Template Library
 
J

JKop

You're gonna have to use C++ to write these virtual machines.


Are *you* going to virtual machine for a new generation fridge, or oven, or
romote control, or speaker system, or celluar phone, or car speedometer?


-JKop
 
B

bartek

I tend to agree. That was my point, and it wasn't
a troll. Sorry if it came across as one.

My concern is simply that these large corporations, Sun
and Microsoft (who are now in alliance) might seek to
beat open standards like C++ out of the marketplace to
create an oligopoly.

Certainly they are, but as long as there are conscious, open minded
people among us, it's not going to happen... at least soon...

On the other hand, how would you explain the fact, that MS did release a
completely functional, largely standard compliant C++ compiler, to the
public for free, recently? Is it only meant as an argument for
discussions just like this particular one?
 
J

Jerry Coffin

[ ... ]
It is very dangerous to invest in Java much less C#.
There is *no* publicly owned standard for either of these languages.
You are at the mercy of large corporations who have, in the past,
demonstrated that they do *not* have your best interests in mind.

ECMA-334 standardizes the C# language. I don't remember the number
offhand, but there's also an ECMA standard for the CLI (its virtual
machine).

AFAIK you're entirely correct about Java though. Though officially a
publication of a separate committee, Sun controls the committee and
everybody else basically gets only an advisory role.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,755
Messages
2,569,537
Members
45,022
Latest member
MaybelleMa

Latest Threads

Top