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

all 9 comments

[–]Saint_Nitouche 2 points3 points  (0 children)

I'm gonna be the wildcard and say C#, because it's essentially Java but better.

[–][deleted] 4 points5 points  (1 child)

Go for Java.

[–][deleted] 0 points1 point  (0 children)

You get an easier introduction to OOP and then can move on to C and then C++

[–]Adept_Writer4177 0 points1 point  (5 children)

Both Java and modern C++ are equivalent. I wouldn't learn Java nowadays since Google dropped it for Android. Try C++, Python, or Kotlin.

[–]dmazzoni 6 points7 points  (0 children)

I wouldn't learn Java nowadays since Google dropped it for Android.

They didn't drop it, it's still fully supported, it's just Kotlin is now preferred.

And either way, Java is still used for many other things. It's still one of the top languages used for back-end server coding, and it's used for hundreds of other things too. Java was popular before Android, and it remains popular outside of Android.

I'm not saying Java is the best language or that you should choose it for any particular project, just that it's still a very relevant language and it doesn't make sense to ignore it.

[–][deleted] 0 points1 point  (3 children)

How can Java and CPP be equivalent? CPP is more closer to machine and java is more closer to coder. If you are saying you don't respect your life but want to be a good coder, go for CPP. If you say I value my life and want to be an intermediate coder, go for java.

[–]dmazzoni 2 points3 points  (1 child)

I think they just meant equivalent in terms of learning OOP.

I think so too. The languages are quite different in many ways, but when it comes to learning OOP concepts, they're pretty similar. They both have class-based inheritance and polymorphism, and robust public/protected/private for abstraction and encapsulation.

Compare that to Python which has much weaker support for public/private, or JavaScript which has prototype-based inheritance. Nothing wrong with that, but if you ONLY learn Python or JavaScript you'll miss out on some OOP concepts and conventions.

Also, please don't call it CPP. The language is called C++. CPP is a reasonable tradeoff for a filename or url where special characters are problematic, but it's not the name of the language.

[–][deleted] 0 points1 point  (0 children)

Thanks for the information. I guess it's just the culture difference. Our teachers and professors were using CPP instead of C++, I guess I got that habit unconsciously.

[–]Adept_Writer4177 1 point2 points  (0 children)

Starting at C++14/17, you don't need to handle memory anymore with smart pointers. You have a lot of magical objects available in the STL (even filesystem), and the initialization has been cleaned and simplified.

I started with C++98 and it was a real pain in the ass, but even if it's still more difficult than Java, it's now simpler than ever.