Something to keep an eye on if you are unsure about the whole c++ thing!
This article is the first of a planned series intended to show that, despite the common (mis)believe among developers on the Windows platform, especially those less or not at all familiar with the language, programming in C++ is not harder or less fun than programming in other languages, such as Java, C#, VB.NET, ruby, python, etc. This series is mostly intended (but not exclusively) for developers not very familiar with C++, though perhaps experienced with other programming languages.
C++ has a really bad rap at my school for some reason. I love the language and I try to show people it isn't bad. The trouble is C++ is only used once in a 1 hour course that in which the only purpose is to teach C++ and then it is not used again. More over C is used a lot at my school so C++ is just like C to people and they see that as bad compared to garbage collected languages. Even my instructors are afraid of C++. I have a professor that constantly says incorrect things about C++ but for the sake of the class I don't point them out; I had a conversation with him regarding something I can't remember but he ended up saying something to the effect that C++ was bad at something again. He was trying to use C++ 1 of two ways, like C or like C#. And so he pointed out that either way was bad in C++. I showed him a way using templates and RAII (I think I was showing polymorphic objects that manage their own memory like std::function<>) and his response was "This is why I don't use C++; C++ has no place left. C is for low level stuff and C# is for higher level stuff". He didn't really explain that comment but realizing I was getting no where I left. He constantly says how bad C++ is his class but doesn't know anything about modern C++; he knows about C with classes not C++98 or C++11.
It's a plague of misunderstanding and I blame the professors for assuming that nothing has changed with C++ and for not updating the curriculum to match. C++ is used so much but no one comes out of my school knowing a thing about it.
The point in the later post echos your professor's "C++ has no place left. C is for low level stuff and C# is for higher level stuff."
I have a love hate thing with C++. It's certainly a most capable language, covering every concealable programmer want. But, sometimes, you find your way to a problem that makes you think it might just be held together with bubble gum and coat hangers.
I recently played around with OpenGL again. I wrote both C and C++ versions. In the end, in spite of my fondness for C, the C++ was cleaner.
The real problem is that C++ allows enough freedom to hang yourself. Much like C, but with shock cord. Bad programmers can hurt themselves real bad. There's, honestly, only so much damage you can do to yourself in Java. Which might explain it's popularity.
Edit: fixed second link.
This post has been edited by baavgai: 08 October 2013 - 11:32 AM
I think the second link is currently the same link you first posted.
But ya; that is basically how this professor feels except he is much nicer
I wonder if this is an OS dev consensus. This professor used to be an OS researcher and is now still to some degree (he doesn't really research anymore as he is close to retirement and his last research was in embedded systems which is not quite OS dev but it is close)
This post has been edited by ishkabible: 08 October 2013 - 11:03 AM
Fixed the link above. Sorry, wonky frame site thingy.
When Linus talks about Linux, he isn't usually talking about the OS; he's talking about the kernel.
C is the king of kernels. Linux ( of course ), but also Windows and OS X. In all cases, there's a bit of assembly in there too. Keep in mind that at that level, you're looking at machine code and assembly. C compiles into assembly that's easy to follow and is much easier to use with few trade offs.
Above kernels, there's often a good mix of C++. Linux is still C for much of the "OS" with C++ being a close second. Windows has some C++ wrapping, though once you get high enough is jumps into C# with C interop. OS X uses Apple's very own mess above C: Objective-C.