Linked by Thom Holwerda on Mon 13th Aug 2007 17:57 UTC
General Development "A good programming language is far more than a simple collection of features. My ideal is to provide a set of facilities that smoothly work together to support design and programming styles of a generality beyond my imagination. Here, I briefly outline rules of thumb (guidelines, principles) that are being applied in the design of C++0x. Then, I present the state of the standards process (we are aiming for C++09) and give examples of a few of the proposals such as concepts, generalized initialization, being considered in the ISO C++ standards committee. Since there are far more proposals than could be presented in an hour, I'll take questions." Dr. Bjarne Stroustrup is the original designer and implementer of the C++ Programming Language.
Thread beginning with comment 263096
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE: C: Esperanto
by renhoek on Mon 13th Aug 2007 18:09 UTC in reply to "C: Esperanto"
renhoek
Member since:
2007-04-29

no no, c is not bad. macro's, global variables, pointers, no range checking (for arrays), bufferoverflows, the stl error messages and that kind of stuff are bad.

c(++) has a nice syntax. java and c# don't have the problems mentioned above, and that's why they are often used.

Reply Parent Score: 2

RE[2]: C: Esperanto
by butters on Mon 13th Aug 2007 19:31 in reply to "RE: C: Esperanto"
butters Member since:
2005-07-08

Macros are bad. Global variables are necessary. Pointers are useful (although not always necessary). Range checking is good in all but the most performance-critical code. I'll add that manual memory management is usually (but not always) unnecessary.

C++ does NOT have nice syntax and it's semantics are even worse. Java is nice, C# is a little nicer, but neither compiles very well to native code.

D ftw!

Reply Parent Score: 2

RE[3]: C: Esperanto
by Arador on Mon 13th Aug 2007 19:49 in reply to "RE[2]: C: Esperanto"
Arador Member since:
2005-07-09

C++ does NOT have nice syntax and it's semantics are even worse. Java is nice, C# is a little nicer, but neither compiles very well to native code
While I agree C++'s syntax could be a lot better, I very much disagree with your assertion that C++'s semantics are bad. When used properly they are extremely powerful. For example, neither of them have an alternative for RAII (Resource Acquisition Is Initialization). Efficient & correct managing of resources is greatly eased by this pattern. Nor do they have a decent look-up mechanism for functions (there are plenty of things better left a function than a method). Or an alternative for templates (the STL containers are a blessing to work with). Saying its semantics are bad is nonsense: they are different. Different is not bad, as long as you use the right tool for the job.

Reply Parent Score: 4

RE[3]: C: Esperanto
by falemagn on Mon 13th Aug 2007 20:57 in reply to "RE[2]: C: Esperanto"
falemagn Member since:
2005-07-06

"Macros are bad."


Not necessarily. Macros provide for a way to transform text into other text, what's bad is the usage of macros that some people do.

With macros you could do this, in C++:

synchronized(object)
{
// Atomic operations here
}

Just like in java, and it would be totally legal C++, provided the macro synchronized expanded to something like this:

#define synchronized(o) for((o).Lock(); (o).isLocked(); (o).unLock())

Where o would be an object of a class exposing the Lock/isLocked/unLock methods. If a class inherited from a, say, synchronizable class implementing those methods, you would be able to do

someclass::somemethod()
{
synchronized(*this)
{
// bla bla bla
}
}


Which would be the equivalent of a synchronized method in the Java language.

"Range checking is good in all but the most performance-critical code."


You can have range checking in C++, you just need to either implement it in a class of your own or use some of the already existing classes.

"I'll add that manual memory management is usually (but not always) unnecessary.!"


You can have managed memory handling in C++ as well.

Reply Parent Score: 3

RE[3]: C: Esperanto
by WiggetyWhack on Tue 14th Aug 2007 00:40 in reply to "RE[2]: C: Esperanto"
WiggetyWhack Member since:
2007-06-30

Pointers are useful (although not always necessary)

You have GOT to be kidding me. This REEKS of someone who doesn't really know how to use pointers. Pointers is what it's all about.

Reply Parent Score: 6

RE[2]: C: Esperanto
by postmodern on Mon 13th Aug 2007 19:41 in reply to "RE: C: Esperanto"
postmodern Member since:
2006-01-27

C++ does not have nice syntax... when it comes to templates. Templates over complicate the syntax, not to mention the debugging output.

Reply Parent Score: 3

RE[3]: C: Esperanto
by joelito_pr on Tue 14th Aug 2007 14:49 in reply to "RE[2]: C: Esperanto"
joelito_pr Member since:
2005-07-07

So, I take that you rather to overload functions?

Reply Parent Score: 1