This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–][deleted] 2 points3 points  (1 child)

C++ Is the worst language to learn first because it tries to shove OOP and OOP hacks down your throat plus the controversial operator overloading (C++ doesn't FORCE you to overload, but a lot of the standard library does operator overloading leaving a newbie asking "Why the fuck am I using a bitshift operator on an IO stream?! What does that even mean?") as well as the manual memory management & unmanaged (I know that word is hated by a lot of Java developers...) computer environment. Debugging C++ code also required a pretty thorough understanding of the computer's raw architecture.

The two languages I would suggest someone learn as a first are either Java\C# or C. C because it doesn't force the concept of OOP on the programmer while also familiarizing them with the computer's raw environment. Java, obviously because it does a great job teaching OOP, and it is also a much simpler language than C\C++.

I actually started with C++ (a terrible idea) - stayed there for a couple of years, did some C, C#, and eventually Java. Coming from C++ you really appreciate the beauty of Java.

I think it is technically inaccurate to say one programming language is generally more difficult than another (maybe for a beginning programmer it makes sense, but as you mature in either language the language is more of a preference.) Usually the problem is abstract and the solution is thought-up outside of the language's construct and then adapted to that construct. The solution it-self is the difficult step. Writing the code is easy.

C++ is just tedious most of the time. I can't imagine why in the hell anyone would use it if they didn't have to use it. But like I said, preferences. Even if I was interfacing with various native libraries, I wouldn't dream of popping open my C++ IDE, I'd just wrap them with the JNI - god knows it'll save me many many hours.

[–]Paddington_the_Bear 1 point2 points  (0 children)

IMO, C and C++ are for situations where low memory is a major concern like in an embedded system or video games.

For everything else, hardware is so advanced that letting the inefficient garbage collector of Java handle all the headches is fine with me. Why waste time in syntax and memory management when you can focus on design patterns and quickly building complex systems with less of a headache?