Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > C++ > C++ 0x size and complexity

Reply
Thread Tools

C++ 0x size and complexity

 
 
Ioannis Vranos
Guest
Posts: n/a
 
      02-17-2009
C++0x being relatively close to ratification (2-3 years), what do you
think of its new core language facilities and the new standard library?

Personally, I do not care much for the size of the standard library, but
I am concerned about the new language features.

I think, it looks like using C++0x will be like "rocket science".


--
Ioannis Vranos

C95 / C++03 Developer

http://www.cpp-software.net
 
Reply With Quote
 
 
 
 
Alf P. Steinbach
Guest
Posts: n/a
 
      02-17-2009
* Ioannis Vranos:
> C++0x being relatively close to ratification (2-3 years), what do you
> think of its new core language facilities and the new standard library?
>
> Personally, I do not care much for the size of the standard library, but
> I am concerned about the new language features.
>
> I think, it looks like using C++0x will be like "rocket science".


It just need Good New Books.

Books that introduce one logical subset or logical "extension" at a time.

In the standard it's all scattered in small pieces, that's my main problem.


Cheers, just my 2 °re,

- Alf
 
Reply With Quote
 
 
 
 
Ioannis Vranos
Guest
Posts: n/a
 
      02-17-2009
Ioannis Vranos wrote:
> C++0x being relatively close to ratification (2-3 years), what do you
> think of its new core language facilities and the new standard library?
>
> Personally, I do not care much for the size of the standard library, but
> I am concerned about the new language features.
>
> I think, it looks like using C++0x will be like "rocket science".



A related video (legal direct download link):


"An Overview of the Coming C++ (C++0x) Standard"

http://tinyurl.com/ddz3ef




--
Ioannis Vranos

C95 / C++03 Developer

http://www.cpp-software.net
 
Reply With Quote
 
Ioannis Vranos
Guest
Posts: n/a
 
      02-17-2009
Related Videos:

http://www.youtube.com/watch?v=Ot4Wd...next=1&index=1

http://www.youtube.com/watch?v=JffvCivHEHU

--
Ioannis Vranos

C95 / C++03 Developer

http://www.cpp-software.net
 
Reply With Quote
 
SG
Guest
Posts: n/a
 
      02-17-2009
On 17 Feb., 16:14, Ioannis Vranos <(E-Mail Removed)> wrote:
> C++0x being relatively close to ratification (2-3 years), what do you
> think of its new core language facilities and the new standard library?
>
> Personally, I do not care much for the size of the standard library, but
> I am concerned about the new language features.


Deciding what to add to the (core) language and what not is
understandibly not easy. If you need to retain compatibility to C++03
it's even harder, I suppose. You would want to pick only the most
"important" features and try to solve other "issues" with libraries as
much as possible.

If I had to pick features of questionable benefit it would probably be
- uniform initialization
- alternate function syntax

The number of times I needed to initialize some container object with
a list of values is near zero and I fail to imagine many use cases. I
fear that this feature will just add to the initialization confusion
and that it will introduce new ambiguities w.r.t. overloaded
constructors programmers might not anticipate.

As for the alternate functon syntax I don't think that it's of great
use either. It will probably be rarely used in some non-template
contexts and/or used by those who don't like the concepts feature.

I'm not sure about the lambda proposal. In comparison to Boost.Lambda
the proposed lambda feature forces you to name the parameters' types.
But other than that it seems like it could make the "STL approach"
more popular (std::transform, ...).

The new features that I personally find most interesting are: rvalue
references and concepts. If you like to write fast and generic
library code they are of great use. No more cryptic template tricks
(SFINAE & other concepts emulation hacks). Rvalue references will
probably make pass-by-value more popular again which is a good. You
might want to utilize rvalue references if expression templates are
too complicated for you. Also, expression templates whose purpose it
is to *transparently* improve pŘerformance don't seem to go well with
the new type inference feature "auto". I'm not an expert on
expression templates, though.


Cheers!
SG
 
Reply With Quote
 
Jerry Coffin
Guest
Posts: n/a
 
      02-18-2009
In article <gnek7r$tmk$(E-Mail Removed)>,
http://www.velocityreviews.com/forums/(E-Mail Removed) says...
> C++0x being relatively close to ratification (2-3 years), what do you
> think of its new core language facilities and the new standard library?
>
> Personally, I do not care much for the size of the standard library, but
> I am concerned about the new language features.
>
> I think, it looks like using C++0x will be like "rocket science".


I would say rather the opposite. One of the major side-effects of adding
Concepts is that template error messages will generally become a great
deal more readable. This will frequently make the language much more
approachable. Likewise, making ">>" to be equivalent to "> >" for
enclosing template arguments will keep a lot of beginners from running
into strange error messages.

Rvalue references will be a bit the same way -- right now, the most
obvious way to write some code is terribly inefficient. With rvalue
references, you'll be able to avoid a lot of contortions currently made
in the name of efficiency.

To make a long story short, C++ 0x will make the language simpler and
more straightforward for most people to use most of the time.

--
Later,
Jerry.

The universe is a figment of its own imagination.
 
Reply With Quote
 
Ioannis Vranos
Guest
Posts: n/a
 
      02-18-2009
Jerry Coffin wrote:
>
> I would say rather the opposite. One of the major side-effects of adding
> Concepts is that template error messages will generally become a great
> deal more readable. This will frequently make the language much more
> approachable. Likewise, making ">>" to be equivalent to "> >" for
> enclosing template arguments will keep a lot of beginners from running
> into strange error messages.
>
> Rvalue references will be a bit the same way -- right now, the most
> obvious way to write some code is terribly inefficient. With rvalue
> references, you'll be able to avoid a lot of contortions currently made
> in the name of efficiency.
>
> To make a long story short, C++ 0x will make the language simpler and
> more straightforward for most people to use most of the time.



OK, for application developers, I will probably agree (I will be sure
when I see C++0x in practice).

However, for library writers, or for people who "want to know the whole
language", I think things will be complicated.

Until now, we have the "selective ignorance" approach in C++. That is,
although you may know the whole language, be as high level as you can
be, and ignore the implementation details as long as your project
doesn't need them (e.g. the possible implementation of standard
manipulators).

For example, will a newcomer be able to understand and learn all the new
core language features? And I am not talking about the auto keyword, or
the list<vector<T>> (consecutive '>'s) stuff.

And for a complete newcomer, will it be possible to learn the whole
language (including the standard library) from scratch?

I think, C++ may be "broken by its weight" (massive core language
features/standard library).

I am concerned that C++0x may be the "C99" failure of C++03, or even worse.


--
Ioannis Vranos

C95 / C++03 Developer

http://www.cpp-software.net
 
Reply With Quote
 
Christof Donat
Guest
Posts: n/a
 
      02-19-2009
Hi,

> However, for library writers, or for people who "want to know the whole
> language", I think things will be complicated.


The language shall stay as compatible as possible, have new features and by
the way become simpler in the whole? How can that work except for very basic
stuff like ">>" instead of "> >"?

> Until now, we have the "selective ignorance" approach in C++. That is,
> although you may know the whole language, be as high level as you can
> be, and ignore the implementation details as long as your project
> doesn't need them (e.g. the possible implementation of standard
> manipulators).
> [...]
> And for a complete newcomer, will it be possible to learn the whole
> language (including the standard library) from scratch?


That "selective ignorance" approach doesn't get lost with C++0x.

Christof


 
Reply With Quote
 
SG
Guest
Posts: n/a
 
      02-19-2009
On 19 Feb., 13:28, Christof Donat <(E-Mail Removed)> wrote:
> > However, for library writers, or for people who "want to know the whole
> > language", I think things will be complicated.

>
> The language shall stay as compatible as possible, have new features and by
> the way become simpler in the whole? How can that work except for very basic
> stuff like ">>" instead of "> >"?


Why did you quote that part? You seem to agree with him.

The "> >" issue is not the only improvement beginners will benefit
from:

- better error messages for templated code (concepts)
- easier iteration over containers' values (for-range loop, auto)
- improved type safety (nullptr, enum classes, deleted functions)
- better expression of intention (deleted/defaulted functions, no
need for many obscure "template tricks" anymore due to concepts)

These are just things that come to mind while skimming through the
language feature list of the C++0x Wikipedia article...

The language gets bigger (duh!) but it also get's simpler to work
with -- hopefully -- because it adds features that make some
tricks and workarounds obsolete, improve uniformity, and lead to
code that expresses a programmer's intention more clearly.


Cheers!
SG
 
Reply With Quote
 
Bo Persson
Guest
Posts: n/a
 
      02-19-2009
Ioannis Vranos wrote:
>
> And for a complete newcomer, will it be possible to learn the whole
> language (including the standard library) from scratch?


How else would he do it?

>
> I think, C++ may be "broken by its weight" (massive core language
> features/standard library).


This hasn't stopped Java or C#, has it?

People who don't complain about the huge size of the standard library,
usually complain about all the stuff that is missing!

>
> I am concerned that C++0x may be the "C99" failure of C++03, or
> even worse.


We'll see.


Bo Persson


 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Preferred Size, Minimum Size, Size Jason Cavett Java 5 05-25-2008 08:32 AM
Internals and complexity of types, containers and algorithms Harald Luessen Python 7 06-27-2007 03:34 AM
Time complexity of size() for std::set Lionel B C++ 26 02-03-2007 11:21 PM
mega pixels, file size, image size, and print size - Adobe Evangelists Frank ess Digital Photography 0 11-14-2006 05:08 PM
Python COM - limit on size/complexity of returned object? Paul Keating Python 3 06-26-2004 10:22 AM



Advertisments