Linked by David Adams on Sun 14th Aug 2011 22:41 UTC, submitted by subterrific
General Development The final ISO ballot on C++0x closed on Wednesday, and we just received the results: Unanimous approval. The next revision of C++ that we've been calling "C++0x" is now an International Standard! Geneva will take several months to publish it, but we hope it will be published well within the year, and then we'll be able to call it "C++11."
Thread beginning with comment 484995
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE[2]: Comment by kaiwai
by iwod on Mon 15th Aug 2011 03:22 UTC in reply to "RE: Comment by kaiwai"
iwod
Member since:
2006-05-02

I am not exactly a hard core programmer. But just looking through the changes C++ has gotten a lot more complex then.

I wonder why people haven't looked more into C and Objective C.

Reply Parent Score: 2

RE[3]: Comment by kaiwai
by Vagrant on Mon 15th Aug 2011 04:01 in reply to "RE[2]: Comment by kaiwai"
Vagrant Member since:
2011-08-15

Because C++ is far more powerful than C or Objective-C and people who program for a living don't find C++ too complicated.

C is completely inappropriate for large projects. And for small ones, C++ can do anything that C can do, and better.

Objective-C (and Objective-C++) are really just layers on top of C (and C++). Objective-C is cool, but it is not a low-level language like C++.

C++ is a lower-level language than C and Object-C, but it has all of the high-level tools for building any sort of project. It is a truly general-purpose lange, where the other two are not.

Reply Parent Score: 1

RE[4]: Comment by kaiwai
by Hypnos on Mon 15th Aug 2011 06:36 in reply to "RE[3]: Comment by kaiwai"
Hypnos Member since:
2008-11-19

What in Obj-C prevents you from using the low-level features of C ?

Reply Parent Score: 1

RE[4]: Comment by kaiwai
by Aragorn992 on Mon 15th Aug 2011 08:17 in reply to "RE[3]: Comment by kaiwai"
Aragorn992 Member since:
2007-05-27

Because C++ is far more powerful than C or Objective-C and people who program for a living don't find C++ too complicated.

C is completely inappropriate for large projects. And for small ones, C++ can do anything that C can do, and better.

Objective-C (and Objective-C++) are really just layers on top of C (and C++). Objective-C is cool, but it is not a low-level language like C++.

C++ is a lower-level language than C and Object-C, but it has all of the high-level tools for building any sort of project. It is a truly general-purpose lange, where the other two are not.


Look. C++ is not "lower-level" than C. It IS C with some higher-level constructs (OO, STL, etc).

C++ I also prefer but one thing C++ can't do, which C can, is produce nice small binaries. Thats a major problem on embedded (e.g. satellite) platforms.

Edited 2011-08-15 08:18 UTC

Reply Parent Score: 3

RE[4]: Comment by kaiwai
by burnttoys on Mon 15th Aug 2011 11:47 in reply to "RE[3]: Comment by kaiwai"
burnttoys Member since:
2008-12-20

Because C++ is far more powerful than C or Objective-C and people who program for a living don't find C++ too complicated.


No. C++ has many more _features_. You can, and I have, implemented a complete OO system using raw C. C++ does that for you. C++ including STL and even Boost has a very large number of CompSci features.

C is completely inappropriate for large projects. And for small ones, C++ can do anything that C can do, and better.


Nonsense. To this day C still implements most OS kernels and large amounts of other code such as audio processing, jpeg, mpeg etc. C++ can do a lot and is a superset of C (mostly - there are a very small number of exceptions to this rule).

It is true that some programming languages suit certain problem areas better than others it is not accurate to say that "C is inappropriate for big projects".

What's required for a big project, more than anything else, are clear goals, good communications and good project leads and an easily accessible project structure.

Also - good code is good code whether LISP, C or Prolog... ok, maybe not Prolog!

Objective-C (and Objective-C++) are really just layers on top of C (and C++). Objective-C is cool, but it is not a low-level language like C++.


I'll half agree with you if you can explain why Objective-C isn't "low-level" (hint - dynamic binding and method invocation). It is difficult to make "rommable" code with Objective-C (it is quite hard to C++ - you may need RAM for virtual function tables)

Objective-C is ALSO a superset of C and therefore contains all the "low-levelness" that C offers.

C++ is a lower-level language than C and Object-C, but it has all of the high-level tools for building any sort of project. It is a truly general-purpose lange, where the other two are not.


C++ as a superset of C is NOT "lower level". You see at this point I realised you are just talking balderdash. If you are a CompSci student I hope I do not put you off but you clearly have some learning to do.

C is about as low-level as you'd ever want to get (there's asm but it is naturally unportable - even that's only 1/2 true as I wrote a Z80 assembler for a 68000 machine that assembled Z80 code into 68000 ops)

C++ is a strict superset of C. Everything that is in C is in C++ (except for a handful of idiomatic, slightly esoteric, syntax).

All are "general purpose programming languages" and technically only differ by syntax, although extrapolating that argument to it's illogical extreme would have us all attempting to code everything using SKI notation.

Reply Parent Score: 2

RE[4]: Comment by kaiwai
by sithlord2 on Tue 16th Aug 2011 10:45 in reply to "RE[3]: Comment by kaiwai"
sithlord2 Member since:
2009-04-02


C++ is a lower-level language than C and Object-C


Excuse me? How exactly is C++ lower-level than C? The only thing more low-level than C, is pure assembly language. C++ is just C, extended with a lot of OO features.

Please tell me one "low-level" task that can be accomplished by C++, and not in regular C?

Reply Parent Score: 1

RE[3]: Comment by kaiwai
by moondevil on Mon 15th Aug 2011 05:35 in reply to "RE[2]: Comment by kaiwai"
moondevil Member since:
2005-07-08

I wonder why people haven't looked more into C and Objective C.


Because C does not offer all high level abstractions and better type safety that C++ does.

And Objective-C is an Apple proprietary language that is only used to write MacOS X and iOS applications.

Reply Parent Score: 7

RE[4]: Comment by kaiwai
by Hypnos on Mon 15th Aug 2011 06:35 in reply to "RE[3]: Comment by kaiwai"
Hypnos Member since:
2008-11-19

FYI, there are two open source Obj-C compilers (gcc and LLVM/Clang) and open source software can linked against either the OSX library stack or GNUstep.

So, by your standard, one could call C++ proprietary, since most software C++ software is written for a proprietary platform.

Reply Parent Score: 1

RE[4]: Comment by kaiwai
by ebasconp on Mon 15th Aug 2011 11:39 in reply to "RE[3]: Comment by kaiwai"
ebasconp Member since:
2006-05-09

Anyway, in Objective-C you do not have the power and versatility that high-level abstractions (templates) that C++ offers.

Reply Parent Score: 2

RE[4]: Comment by kaiwai
by burnttoys on Mon 15th Aug 2011 11:54 in reply to "RE[3]: Comment by kaiwai"
burnttoys Member since:
2008-12-20

Man this thread is disintegrating badly.

Objective-C is _NOT_ proprietary. You are _not_ restricted in your use of it in ANY way whatsoever. It also pre-dates Apple going back the NeXT days (but of course Apple bought that lock, stock and barrel).

Proprietary would mean that the owners restricted, via license, your use of Objective-C is some way. This is not the case - you can implement your own compiler if you so choose to and even extend the language.

Also - I've seen Objective-C used WAY outside of Apple kit.

Reply Parent Score: 1

RE[4]: Comment by kaiwai
by tanishaj on Mon 15th Aug 2011 23:39 in reply to "RE[3]: Comment by kaiwai"
tanishaj Member since:
2010-12-22

And Objective-C is an Apple proprietary language that is only used to write MacOS X and iOS applications.


In addition to being inflammatory, this is misleading.

Objective-C is an adaptation of Smalltalk for people that like the Algol language family syntax (C like syntax).

Objective-C was not invented by Apple (and is not proprietary to them). It has been around longer than the Macintosh (the early 80's). Their has been a GNU version of Objective-C since 1993.

Objective-C can be compiled with GCC either Clang (the LLVM C/C++/Objective-C compiler). This means that you can code in Objective-C on Mac, Windows, or Linux. No proprietary tools are required (all Open Source).

Clang is about to become the primary compiler used by FreeBSD and other BSD flavours as well.

All that said, I agree that Objective-C is only really popular on Apple platforms (OS X and iOS). Objective-C was the language choice on NeXT machines. It became the main language on Mac when Apple bought NeXT in 1996.

Reply Parent Score: 1

RE[3]: Comment by kaiwai
by Neolander on Mon 15th Aug 2011 06:38 in reply to "RE[2]: Comment by kaiwai"
Neolander Member since:
2010-03-08

I am not exactly a hard core programmer. But just looking through the changes C++ has gotten a lot more complex then.

I wonder why people haven't looked more into C and Objective C.


No one truly masters C++. But each one likes his own subset of it ;)

There are still lots of people using C, huge projects even. Things like GLib, embedded software (the faction that have stopped using Asm directly, I mean) or the kernel of most Unices come to mind.

As for Objective C, well... Once again, Apple have been too much of control freaks and have pissed of the geek audience because of that, the problem being that in that case, it was their target audience. Besides, there's not much of a benefit in using Objective C over C++, and you lose a lot of language flexibility by doing so (C++ can be used at a lower level, be lighter on resource, it offers metaprogramming and operator overloading...).

To sum it up, the reason why Objective C has never taken off outside of the Apple world is that C++ is what its users want it to be, whereas Objective C is what Apple want it to be.

Edited 2011-08-15 06:44 UTC

Reply Parent Score: 3

RE[3]: Comment by kaiwai
by danieldk on Mon 15th Aug 2011 07:19 in reply to "RE[2]: Comment by kaiwai"
danieldk Member since:
2005-11-18

I wonder why people haven't looked more into C


C provides relatively little opportunity for abstraction, and less safety. To give one example: the only manner to make a generic algorithm is by using macros (bad) or void pointers. In C++ you can just write a templated definition, which provides genericity and type safety.

and Objective C.


People use C++ because they want a fast low-level object-oriented language. Objective-C is the opposite, since it uses late binding and heterogeneous containers, it is far too slow for things that people typically use C++ for.

If you are proposing alternatives, D is probably the thing that comes closest. However, that language is plagues by having two widely used standard libraries, and having only a mature compiler for D2 that uses a non-FLOSS backend (dmd2).

However, if you want to compile to machine code, Haskell and OCaml may also be possibility. If used wisely, you can write fast programs in both languages.

Edited 2011-08-15 07:19 UTC

Reply Parent Score: 6