Too much C++ bashing going on;IMHO ........so presenting some defense :
>"f you talk to the C++ crowd they will tell you that C++ is C on steroids."
NO, C++ is a different language, with some similarities to C.
> "to fully deploy C++ code you have to *think differently* than you do with C"
Er.. that is the point of it being a different language....If it does not have a new way to think about problems, it isn't worth learning.
> "C++ strings require conversion before use with OS APIs" :
That would complicate everything..because character arrays and streams are an universal interface...and would be understood by everything. And the conversion is trivial... The input is automatic(by a constructor, and output is by *.c_str() .
> " . I've tried I don't know how many times to get my head around it and just plain can't. Object Oriented Programming bears little or no reseblence to how my head works and it just won't sink in. "
Maybe, the problem is that you're trying too hard ? ...it isn't really radically different.
I find most (if not all I've seen) C++ programs having their outlines as procedural. Classes and objects play a role within that...making the process more modular.
> "Of course your experience might be different but I would never recommend C++ to a new programmer. "
Mine was.... I found/find the C++ standard library easier to learn/use.(Except possibly ... formatted I/O!)
The remaining/basic concepts are same...as long you're careful, the knowledge of one, for the most part, carries on to the other.
> "....and be as compatible with the underlying OS API as possible (able to directly import headers and libraries)... But as far as I can tell from extensive searching, such a laguage does not yet exist."
I think... such an OS API does not exist because of inconsistent design. Though not an OS API, if you have looked at OpenGL, it fits what I think an API should behave like.
>"I've always held that a programming *language* should be as simple as possible (that is, use a minimum number of keywords to guarantee general applicability) be as safe as possible (runtime error checks, exception handline, etc) "
"The next attempt to solve the problems was "managed code" (.NET and JAVA) returning to the bad old days of interpreters and runtime modules in the hope of improving the quality of code. All they really did was to make things yet again more complex for the programmer."
Agreed
Lets see if the rest of the C++ crowd has anything to say.
(@Those-Who-Must-Not-Be-Named : Sorry for 'derailing' the thread... feel free to split !)