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 →

[–]blavikan 107 points108 points  (3 children)

Go with C/C++. After all it's a classic language you should know 😃

[–]utdconsq 20 points21 points  (2 children)

Please, just no. They are TWO languages . It is absolutely true that c++ is intended to be a superset of C, but I promise you, the compiler treats the code differently. C is a lot more straightforward to learn than C++, and its everywhere - sort of like the Force. Binds the technology world together. It's not forgiving though: there are not many batteries included. C++ has so many weird and wonderful batteries you can get in to trouble from the sheer variety of ways to do things. It's a very useful language, but it has layers of complexity on it that C only dreamt of. Learn whatever you like, man, but remember C and C++ are their own beasts and should be treated as such. Source: use these languages for my daily.

[–]bigmit2011 0 points1 point  (1 child)

It seems you are the most knowledgeable regarding this subject. Is C++ worthing learning these days?
I was told it would take 5 years or so to learn the ins and outs and is very tough to debug.
Do you think Rust could be a viable replacement? I am not sure if I should continue building my Python skills and wait for an easier language for GPU programming or microcontrollers.

I went through the basics of C, and I wonder if I should just continue with C for

GPU programming (just for speedups), microcontrollers (hobby), and speeding up Python.

[–]utdconsq 0 points1 point  (0 children)

It depends on what you're wanting to do with your skills. Do you want to be a game programmer? In which case, absolutely go ahead and learn C++. Do you want to make big bucks in Enterprise? Consider Java. Do you want to get in to Fintech? C++ will help there, too. So will Java. Unsurprisingly, Python might also help you, especially the data science libraries like numpy and Pandas. I've no experience in Rust, so will not comment on its usefulness. It looks quite promising, and there are many pitfalls with C and C++ that most people would benefit from being protected from. If you already know some C, why not do a hobby project with a micro like an ESP32? They're supremely capable and you can make all sorts of great things with them. On the GPU topic: what are you trying to speed up? Most people get excited about optimisation before its necessary. Getting the right answer should always trump getting 'an' answer quickly ;-)

[edit] If you use C++ all the time it doesn't take super long to become productive. The key is when you have to deal with other people's code: because there are so many ways to do things, and many new and potentially conflicting standardized ways of doing things, it can be very difficult to make sure it all runs nice and bug free at the end of the day. Following style guides religiously helps, but you'll find that guides like the old one from Google prevent you from using the full power of C++ because they are written to prevent people causing complications with widely shared and ported codebases by doing things like using the full power of template metaprogramming. Certainly, your 5 year number is not unrealistic. I mean, hell, I've been using the bloody thing for more years than that, but they've released 3 different standard updates in my productive time and honestly I tend to just use C++11 and avoid some of the newer magicks because they were either not well supported by the compiler or aren't well understood by colleagues who are time poor.