473,840 Members | 1,578 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

What is the future of C++?

GTO
I do not believe that C# is the future of C++. I also do not believe that
adding two thousand new library functions to the standard library is the
future of C++. But what is the future of C++? Is it as good as a programming
language can get?

Like so many of you, I programmed speech recognizers, image recognition
systems, a portion of a chess program, lots of numeric code using STL, and
tons of other applications in C++, (even firmware for time critical
applications). Since 1997, I never missed even one feature in the language.
The poor implementation of C++ in various compilers however was certainly
outermost painful.

Anyway, is there a way to improve C++? - I think it's the perfect
programming language for our current computer architectures. I am even
tempted to believe that future "enhancemen ts" can only negatively impact the
beauty of this language. No?

Gregor
Jul 22 '05 #1
35 3369
GTO wrote:
I do not believe that C# is the future of C++.
I don't think anyone does. Some people think that C++ is on its last legs, with
languages like C# as the languages of the future, or that C++/CLI is the future
of C++.
I also do not believe
that adding two thousand new library functions to the standard
library is the future of C++.
There will be lots of new library functions in the next version of the standard,
largely from C99. You don't have to use them if you don't want to.

New C++ libraries are mostly centered around new class templates.
But what is the future of C++? Is it as
good as a programming language can get?

Like so many of you, I programmed speech recognizers, image
recognition systems, a portion of a chess program, lots of numeric
code using STL, and tons of other applications in C++, (even firmware
for time critical applications). Since 1997, I never missed even one
feature in the language. The poor implementation of C++ in various
compilers however was certainly outermost painful.

Anyway, is there a way to improve C++? - I think it's the perfect
programming language for our current computer architectures. I am even
tempted to believe that future "enhancemen ts" can only negatively
impact the beauty of this language. No?
It's certainly refreshing to hear this point of view in a message with the
current subject line. I was expecting someone compaining that C++ had fallen
behind the times and was doomed to extinction.

You shouldn't fear that C++ will be made worse, since the standards committee is
very sensitive to backward compatibility. If you don't like new feartures, you
can ignore them for the most part.

However, in addition to lots of additions to the standard library, there are
many exciting possibility for the next version of C++, including move semantics,
a module system and threading.
Gregor


Jonathan
Jul 22 '05 #2
GTO wrote:
Anyway, is there a way to improve C++? - I think it's the perfect
programming language for our current computer architectures. I am even tempted to believe that future "enhancemen ts" can only negatively impact the beauty of this language. No?


You might want to discuss this in comp.std.c++ where many of the C++
committee members hang out: this is the crowd which moves C++ forward
(and it is open, i.e. everybody can participate essentially by joining
a national standardization body).

I don't think that C++ is perfect, although I think it is the best
choice currently available. You said you were using templates but
apparently you weren't implementing them: in the context of templates
the most dire needs I have found arise but there are others not related
to templates, too. From my perspective there is a set of important
areas
which need fixing (and which aren't library issues at all):

- Concurrency needs to be integrated into the language. Much of this
will
be in form of a library but some essential stuff like an overhaul of
the C++ memory model has to be done in the core language.
- Templates and meta programming need fixing. There are various issues
like template typedefs, something like "typeof" (I the current
direction goes under the name of "decl_type" ), possibly concept
support,
more structured type capability detection, and a whole bunch of other
stuff.
- Type Information, both at compile time (again for the use in
templates)
and at run time (i.e. something akin to reflection).
- Move semantics allowing non-POD objects to be moved efficiently
between
locations (e.g. when returning an object or when resizing a
'std::vector').

This is just which immediately pops to my head when thinking about
necessary changes to C++. Other may think of other stuff and consider
it
more important (e.g. optional garbage collection rates high for many
people). There is a host of proposals being made (have a look at the
"papers" section at <http://www.open-std.org/jtc1/sc22/wg21/> to get an
overview) and more halfbaked ideas being circulated amoung committee
members. The proposals and ideas range from more or less minor fixes to
rather major changes.

In any case, the C++ committee is well aware that some change is needed
to keep C++ attractive. For example, with multi-processors or
hyperthreaded
CPUs becoming common in the mainstream market (I'd guess that the
average
desktop computer in a decade will have more than just one CPU) support
for
multi-threading is essential. The next revision of the standard is
scheduled
to become available sometime in this decade - and it is more likely
that it
is 2009 than anything earlier...
--
<mailto:di***** ******@yahoo.co m> <http://www.dietmar-kuehl.de/>
<http://www.contendix.c om> - Software Development & Consulting

Jul 22 '05 #3
GTO
Regarding "move semantics", I thought that C++ already supports some sort of
moving of "expensive" objects (see copy constructor etc.). But to further
optimize C++, it might come handy. Or should we not just leave it up to
optimizing compilers to do this kind of work?

Regarding "threading" , do you mean support for multithreading (a la JAVA)?
If yes, I would rather not see this added to C++ since support for
multithreaded concepts are details of the system's architecture and not the
language. But maybe you were referring to something else.

Gregor
"Jonathan Turkanis" <te******@kanga roologic.com> wrote in message
news:34******** *****@individua l.net...
GTO wrote:
I do not believe that C# is the future of C++.


I don't think anyone does. Some people think that C++ is on its last legs,
with
languages like C# as the languages of the future, or that C++/CLI is the
future
of C++.
I also do not believe
that adding two thousand new library functions to the standard
library is the future of C++.


There will be lots of new library functions in the next version of the
standard,
largely from C99. You don't have to use them if you don't want to.

New C++ libraries are mostly centered around new class templates.
But what is the future of C++? Is it as
good as a programming language can get?

Like so many of you, I programmed speech recognizers, image
recognition systems, a portion of a chess program, lots of numeric
code using STL, and tons of other applications in C++, (even firmware
for time critical applications). Since 1997, I never missed even one
feature in the language. The poor implementation of C++ in various
compilers however was certainly outermost painful.

Anyway, is there a way to improve C++? - I think it's the perfect
programming language for our current computer architectures. I am even
tempted to believe that future "enhancemen ts" can only negatively
impact the beauty of this language. No?


It's certainly refreshing to hear this point of view in a message with the
current subject line. I was expecting someone compaining that C++ had
fallen
behind the times and was doomed to extinction.

You shouldn't fear that C++ will be made worse, since the standards
committee is
very sensitive to backward compatibility. If you don't like new feartures,
you
can ignore them for the most part.

However, in addition to lots of additions to the standard library, there
are
many exciting possibility for the next version of C++, including move
semantics,
a module system and threading.
Gregor


Jonathan

Jul 22 '05 #4
GTO
> members. The proposals and ideas range from more or less minor fixes to
rather major changes.


I have read some of the "proposed" additions to C++, but I would like to see
minor fixes rather than major changes. For me JAVA has become a rather bad
example of how to move a language into the future. But you are right, the
standard committee might try everything possible to keep C++ "attractive ".
Hyperthreaded CPUs or at least multiple CPUs are certainly in every box
until 2009. But what about FPGA's instead of CPU's? Would it not be easier
to have on-the-fly C++ compiler generate FPGA code rather than always run
everything on general purpose switches? In this case, the improvements would
be more in the compiler architecture rather than in the language.

Gregor
Jul 22 '05 #5
GTO wrote:
Regarding "move semantics", I thought that C++ already supports some sort of moving of "expensive" objects (see copy constructor etc.). But to further optimize C++, it might come handy. Or should we not just leave it up to optimizing compilers to do this kind of work?
Moving objects is not just a matter of optimization: some objects
cannot
be copied at all (e.g. streams) but it would be desirable to move them,
e.g. when returning them from a function. Also, it is desirable to have
guarantees about certain things rather than hoping all compilers your
system runs on implement a certain non-trivial optimization.
Regarding "threading" , do you mean support for multithreading (a la JAVA)? If yes, I would rather not see this added to C++ since support for
multithreaded concepts are details of the system's architecture and not the language. But maybe you were referring to something else.


Some portions of multi-threading go beyond a system's architecture and
it is, again, necessary to have certain guarantees. Notably, it is
necessary to have guarantees about ordering read and write operations
relative to access of potentially shared resources, independent of the
underlying multi-threading architecture. For example, the compiler
shall
be prohibited to move read access before the statement acquiring a lock
(you might want to have a look at
<http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1738.pdf> for
a more thorough coverage; I'd hope for a more detailed discussion but
I'm not aware of any).
--
<mailto:di***** ******@yahoo.co m> <http://www.dietmar-kuehl.de/>
<http://www.contendix.c om> - Software Development & Consulting

Jul 22 '05 #6
GTO wrote:
members. The proposals and ideas range from more or less minor fixes to rather major changes.

I have read some of the "proposed" additions to C++, but I would like

to see minor fixes rather than major changes. For me JAVA has become a rather bad example of how to move a language into the future. But you are right, the standard committee might try everything possible to keep C++ "attractive ". Hyperthreaded CPUs or at least multiple CPUs are certainly in every box until 2009. But what about FPGA's instead of CPU's? Would it not be easier to have on-the-fly C++ compiler generate FPGA code rather than always run everything on general purpose switches? In this case, the improvements would be more in the compiler architecture rather than in the language.


I'm not sufficiently familiar with FPGAs but if these support some form
of multi-threading, some form of multi-threading aware memory model
would
still be necessary (and if they don't, I don't think they can solve the
whole problem) - in addition to improvements to the compiler back-end.
--
<mailto:di***** ******@yahoo.co m> <http://www.dietmar-kuehl.de/>
<http://www.contendix.c om> - Software Development & Consulting

Jul 22 '05 #7
GTO wrote:
I do not believe that C# is the future of C++.

What has C# to do with C++?

I also do not believe that
adding two thousand new library functions to the standard library is the
future of C++. But what is the future of C++? Is it as good as a programming
language can get?

The future of C++ is to be one of the best practical programming
languages out there.

Anyway, is there a way to improve C++? - I think it's the perfect
programming language for our current computer architectures. I am even
tempted to believe that future "enhancemen ts" can only negatively impact the
beauty of this language. No?

C++ will hopefully keep expanding by adopting new mainstream paradigms
and improving the existing supported ones.
Some library extensions will surely take place. For example check the
upcoming TR1:

http://www.open-std.org/jtc1/sc22/wg...al_report.html


--
Ioannis Vranos

http://www23.brinkster.com/noicys
Jul 22 '05 #8
Microsoft has proposed C++/CLI. Among other things, it supports
a built-in garbage collector. It even supports STL as STL.NET.

Deepa
--
http://www.EventHelix.com/EventStudio
EventStudio 2.5 - Automate sequence diagram generation

Jul 22 '05 #9
EventHelix.com wrote:
Microsoft has proposed C++/CLI. Among other things, it supports
a built-in garbage collector. It even supports STL as STL.NET.


Nope, Microsoft has not proposed this as approach to C++. Nor
would C++/CLI stand any reasonable chance of becoming the
C++ standard!

C++/CLI is Microsoft's attempt to make something roughly
resembling C++ operational on a system which tries hard to
avoid integration of C++. Sure, you can run C++ on that
system but it doesn't integrate into the "managed" part of
it.
--
<mailto:di***** ******@yahoo.co m> <http://www.dietmar-kuehl.de/>
<http://www.contendix.c om> - Software Development & Consulting

Jul 22 '05 #10

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

1
1748
by: Pavils Jurjans | last post by:
Hallo, I yesterday was browsing the book, JavaScript The Definitive Guide (4th ed), which is, unquestionably, the best reference book for JS. To my surprise, I didn't find any documentation about the static properties of global RegExp object, ie, RegExp.lastMatch, RegExp.leftContext, RegExp.rightContext, and all those RegExp.$x properties. I lloked up the ECMA-262 PDF and to my surprise realized that they are not included into the...
121
10228
by: typingcat | last post by:
First of all, I'm an Asian and I need to input Japanese, Korean and so on. I've tried many PHP IDEs today, but almost non of them supported Unicode (UTF-8) file. I've found that the only Unicode support IDEs are DreamWeaver 8 and Zend PHP Studio. DreamWeaver provides full support for Unicode. However, DreamWeaver is a web editor rather than a PHP IDE. It only supports basic IntelliSense (or code completion) and doesn't have anything...
2
3681
by: Martin Høst Normark | last post by:
Hi everyone Has anyone got the least experience in integrating the Digital Signature with an ASP.NET Web Application? Here in Denmark, as I supose in many other countries, they're promoting the digital signature. A lot of people already has one, to do their taxes, and much more. I have to use for a business-to-business e-commerce solution, where it's vital that the right user is being logged on, and not give his username and password...
2
2170
by: | last post by:
Everything seems to be moving to .NET and VC++ seems to be adding a lot of managed code support every new release. The questions: is unmanaged code in VC++ beeing phased out in favour of managed code? And suppose I still program in VC++ 6.0, can I safely assume that the code I use in VC++ 6.0 will still be available in future VC++ versions. Finally will VC++ 6.0 generated executables be still be able to run on futur Windows versions and...
8
3197
by: Midnight Java Junkie | last post by:
Dear Colleagues: I feel that the dumbest questions are those that are never asked. I have been given the opportunity to get into .NET. Our organization has a subscription with Microsoft that basically entitled to us to just about every .Net development tool you can imagine. I cant even begin to mention them. To begin with, my background is not that of a programmer, but a systems engineer and the closest I have come to "programming"...
23
1930
by: yezi | last post by:
Hi, all: The 1st sendtence: int main(){ char string={""}; string = {" connected "}; ..... }
133
6966
by: Alan Silver | last post by:
Hello, Just wondered what range of browsers, versions and OSs people are using to test pages. Also, since I don't have access to a Mac, will I have problems not being able to test on any Mac browsers, or is there some other way of checking? TIA --
39
3241
by: windandwaves | last post by:
Hi Folk I have to store up to eight boolean bits of information about an item in my database. e.g. with restaurant drive-through facility yellow windows
2
1959
by: mak1084 | last post by:
hi guys, I'm totally confused for my future...Right now I just started working as jr. php programmer. But I'm Confused about my future Coz here where I'm working is giving me very very less as compared to what a Jr. programmer should get. I dont mind this coz i'm getting experience and this is my first job. but still I htink that a PHP programmer Does not have as good future as any other pro programmers have like java or .NET. So my...
0
9699
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
10924
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
10605
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
0
10301
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
9444
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
1
7839
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
5874
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
4498
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
2
4078
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.