c++ and target environment

V

v4vijayakumar

Lot of changes are happening to c++, nowadays. Even after the
standardization, we see many interesting things, like, threading,
regex, rope, etc. I read some TR1 and TR2 proposals, and I am not very
sure, we are going to get all this into c++.

These are not brand-new concepts, but why these things took this many
years to get into c++?.

Is still the c++ target environment now same as the target environment
before the standardization?
 
?

=?ISO-8859-1?Q?Erik_Wikstr=F6m?=

Lot of changes are happening to c++, nowadays. Even after the
standardization, we see many interesting things, like, threading,
regex, rope, etc. I read some TR1 and TR2 proposals, and I am not very
sure, we are going to get all this into c++.

All the stuff in TR1 will be in the next standard (along with a lot of
other things), those in TR2 will have to wait a while.
These are not brand-new concepts, but why these things took this many
years to get into c++?.

Because a committee have to approve them, not all members are convinced
that all the features are needed. And since there is not enough time to
get all of them in compromises have to be be made. Remember also that
all the members in the committee are doing this on their spare time or
the time their companies allows them to spend, none of them are working
full time on the standardisation.

Another problem is that all the feature have to be examined to determine
of they actually add any value, or if they would just be bloat in the
standard. And all feature have to be examined so that they work together
with the other features in the standard. Many libraries have lots of
functions/classes that does not work together with other parts of the
library or more than one function for doing something.

And all the already existing feature have to be retrofitted to work with
new ones, just imagine the work needed to make the existing containers
and algorithms work with Concepts. And when all that is done one have to
check for inconsistencies and ambiguities, considering that the current
working paper is nearly 1200 pages that's no easy task.
Is still the c++ target environment now same as the target environment
before the standardization?

C++ is a multipurpose programming language with focus on systems
programming and allows for usage of multiple programming paradigms, and
I think that has been the goal for quite some time. IT does not target
any specific environment that I'm aware of, but as I said, it is
primarily a systems programming language, though the Performance TR
describes how to efficiently use it in an embedded environment.
 
P

Pete Becker

All the stuff in TR1 will be in the next standard (along with a lot of
other things), those in TR2 will have to wait a while.

Just a minor note: all the stuff in TR1 except the special math
functions will be in the next standard. The special math functions will
go into their own separate standard.
 
V

v4vijayakumar

On 2007-09-04 11:16, v4vijayakumar wrote: ....

Because a committee have to approve them, not all members are convinced
that all the features are needed. And since there is not enough time to
get all of them in compromises have to be be made. Remember also that
all the members in the committee are doing this on their spare time or
the time their companies allows them to spend, none of them are working
full time on the standardisation.

Another problem is that all the feature have to be examined to determine
of they actually add any value, or if they would just be bloat in the
standard. And all feature have to be examined so that they work together
with the other features in the standard. Many libraries have lots of
functions/classes that does not work together with other parts of the
library or more than one function for doing something.

And all the already existing feature have to be retrofitted to work with
new ones, just imagine the work needed to make the existing containers
and algorithms work with Concepts. And when all that is done one have to
check for inconsistencies and ambiguities, considering that the current
working paper is nearly 1200 pages that's no easy task.

Are these reasons for c++ community, with such a huge developer base,
has to wait decades for just to get templates and regex?

Why isn't yet there a open c++ standard?
 
V

v4vijayakumar

On 2007-09-04 11:16, v4vijayakumar wrote: ....

C++ is a multipurpose programming language with focus on systems
programming and allows for usage of multiple programming paradigms, and
I think that has been the goal for quite some time. IT does not target
any specific environment that I'm aware of, but as I said, it is
primarily a systems programming language, though the Performance TR
describes how to efficiently use it in an embedded environment.

I thought that c++ target environment is too general to implement
anything, like threading and networking, that requires special
instructions to execute. If it is possible now, why not then?
 
?

=?ISO-8859-1?Q?Erik_Wikstr=F6m?=

Are these reasons for c++ community, with such a huge developer base,
has to wait decades for just to get templates and regex?

Why isn't yet there a open c++ standard?

There is, in fact there are two, ISO/IEC 14882:1998 and the more recent
ISO/IEC 14882:2003. Both have included templates and I think the second
one included regex.
 
?

=?ISO-8859-1?Q?Erik_Wikstr=F6m?=

I thought that c++ target environment is too general to implement
anything, like threading and networking, that requires special
instructions to execute. If it is possible now, why not then?

There's a difference between threading and networking in that threading
can be abstracted to a level where it becomes platform independent (you
can fake threading on almost any architecture) which the same is not
true for networking.

The reason that threading has not been included until now is probably
that there has not been any need for standardised threading until now.
 
C

Charles Bailey

There is, in fact there are two, ISO/IEC 14882:1998 and the more recent
ISO/IEC 14882:2003. Both have included templates and I think the second
one included regex.

I'm fairly sure that 14882:2003 does not include regex, it's still a
TR1 feature.
 
S

SasQ

The special math functions will go into their own
separate standard.

So why don't they split the whole monolithic standard,
which makes them that much trouble, onto smaller parts?
"Divide and conquer". If I were the Committee, I would
at first split the standard onto two separate [but
still related] parts: the C++ core language definition
in one document, and the Standard Library in second.
Now, the Standard Library requires the same, as it
grows on features.

The second drawback, I think, is the lack of good and
big community, like other languages have. The community
which could help the Standardization Committe with their
work, and gather information associated with the language
in one known place. The place where the average programmer
[and a community member] could find information about
thidr-party libraries, see their comparisons, learn
good coding practices and develop the common knowledge
with others. Maybe something like a global C++ Wiki would
be good. In the times of the Internet it's easier for the
community from the whole planet to exchange experience
and work over common knowledge treasury.
 
S

SasQ

There is, in fact there are two, ISO/IEC 14882:1998
and the more recent ISO/IEC 14882:2003.

It is not as open as it might be. There are many
C++ programmers who even doesn't know that these
documents exist. It's all about accessibility -
those standards aren't accessible freely for
everyone who might want to use C++ language.
If someone [after much searching] at last find
these documents on the ISO organization webpage,
he must to pay for the copy. Why there isn't
full standard text accessible freely on the web,
like for Java or other languages?
 
P

Pete Becker

There is, in fact there are two, ISO/IEC 14882:1998
and the more recent ISO/IEC 14882:2003.

It is not as open as it might be. There are many
C++ programmers who even doesn't know that these
documents exist. It's all about accessibility -
those standards aren't accessible freely for
everyone who might want to use C++ language.
If someone [after much searching] at last find
these documents on the ISO organization webpage,
he must to pay for the copy. Why there isn't
full standard text accessible freely on the web,
like for Java or other languages?

Proprietary languages like Java have much more flexibility in what
their owners can make available. Languages that are defined by
accredited international standards bodies must follow the rules of the
standards bodies. If you trust Java's owners to look out for your
interests, then their model is just what you want. If you think that
independent standards bodies can better preserve the integrity of their
development process, then Java ain't it.

Indicentally, every document that the committee discusses, as well as
the current draft of the next standard, is available at
http://www.open-std.org/jtc1/sc22/wg21. Last I looked, Java's
"Community Process" didn't make anywhere near as much information
available without paying a membership fee.
 
J

James Kanze

On 2007-09-04 14:40, v4vijayakumar wrote:
There's a difference between threading and networking in that threading
can be abstracted to a level where it becomes platform independent (you
can fake threading on almost any architecture) which the same is not
true for networking.
The reason that threading has not been included until now is probably
that there has not been any need for standardised threading until now.

Possibly, too, because the technology wasn't all that mature,
and there was no consensus as to what was required. Java, for
example, can move a lot faster, because they target a lot less
varied community, and aren't necessarily concerned about
possible side effects or undesirable repercusions outside of
that community. And because they don't have an ISO standard,
nothing is cast in stone; they can easily go back and change
things which didn't work.
 
J

Jerry Coffin

The special math functions will go into their own
separate standard.

So why don't they split the whole monolithic standard,
which makes them that much trouble, onto smaller parts?
"Divide and conquer". If I were the Committee, I would
at first split the standard onto two separate [but
still related] parts: the C++ core language definition
in one document, and the Standard Library in second.
Now, the Standard Library requires the same, as it
grows on features.

One of the most difficult problems with a standard this size is ensuring
that it remains consistent throughout. Changes in one part can
necessitate changes in other parts to match. Much like with a program,
breaking it up into smaller pieces and allowing each to be changed
independently would require a well-defined interface between those
pieces. You'd basically need a meta-standard to define how the standards
would fit together and talk to each other. OTOH, it's open to argument
that the C++ standard really already IS exactly that: a meta-standard to
define (mostly) how libraries fit together and talk to each other.

Aside from that, most changes in the language are driven by requirements
(or at least desires) that arise from writing libraries -- and there's a
strong desire to put those language features to use in the standard
library immediately upon their being incorporated into the language. For
a couple of examples, rvalue-references and concepts both allow/drive
wide-ranging changes in the library, and I'm pretty sure nobody really
wants a situation where the features are present in the language, but
not put to use in the standard library.
The second drawback, I think, is the lack of good and
big community, like other languages have. The community
which could help the Standardization Committe with their
work, and gather information associated with the language
in one known place. The place where the average programmer
[and a community member] could find information about
thidr-party libraries, see their comparisons, learn
good coding practices and develop the common knowledge
with others. Maybe something like a global C++ Wiki would
be good. In the times of the Internet it's easier for the
community from the whole planet to exchange experience
and work over common knowledge treasury.

That already exists a couple of times over. This newsgroup is one
obvious example. Boost (www.boost.org) is another.

One problem that's difficult to overcome is that C++ is an extremely
"deep" language, so generally takes a LONG time to progress from
beginner to expert. Worse (or better, depending on your viewpoint)
templates make the language extremely malleable, so some code can look
almost entirely unrecognizable to anybody who isn't accustomed to the
library being used (e.g. Boost.Spirit allows you to write parsers that
look more like BNF than they do like most "normal" C++).
 
J

Jerry Coffin

It is not as open as it might be. There are many
C++ programmers who even doesn't know that these
documents exist.

If somebody doesn't know the standard exists, it's hard to imagine how
its being more or less open means much to them at all!
It's all about accessibility -
those standards aren't accessible freely for
everyone who might want to use C++ language.

That's true. Then again, compared to almost any other book about
programming, it's dirt cheap. Let's face it, even puny, poorly written
books on programming typically cost at least twice as much as the C++
standard.
If someone [after much searching] at last find
these documents on the ISO organization webpage,
he must to pay for the copy. Why there isn't
full standard text accessible freely on the web,
like for Java or other languages?

There ain't no such thing as a free lunch. One way or another, there's
always a price. It's a bit like people who buy Consumer Reports. It's
more expensive than most other magazines, largely because they don't
accept any advertising. That's intended to assure against their being
influenced by their advertisers to write positive reviews. It's up to
you to decide whether you're willing to pay for that or not though...
 

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

Forum statistics

Threads
473,995
Messages
2,570,236
Members
46,822
Latest member
israfaceZa

Latest Threads

Top