4 ms·
C++ is very easy, the syntax is picked up in a week, and you can work without any libraries, you mostly just need to learn the API of the host system. You don'
by andreyf 18y ago
C++ is very easy, the syntax is picked up in a week, and you can work without any libraries, you mostly just need to learn the API of the host system.
You don't know C++.
- point 18y agoWhat's the hard part of the syntax compared to a language like ruby? Interfaces? Classes? Inheritance? Templates? Exceptions? Ruby has equivalent interface elements, and there is not much of a difference in difficulty level between learning the one or the other. I learnt C++ in 2 weeks 7 years ago, and it was easy. The difficulty comes with learning to use the libraries and host APIs, but that is exactly the same for every other language I've learnt since then.
- ramchip 18y agoI've seen several 'hard' engineers (physicists with Matlab experience) learn C++ in a couple of weeks. It's doable but... as you might expect, the code they pump out is terrible. There's a huge difference between doing basic C++ and being productive and efficient in it.
- hairsupply 18y agoThings Ruby isn't concerned with that people typically have problems with in C++: - No compiling or linking phase in Ruby. Linking problems can be hairy in large systems. - Header file hell - The static keyword (there are four different contexts) - Difference between a pointer and reference - public, private, protected inheritance - Differences between dispatch (and underlying impl) of virtual and nonvirtual methods - method hiding - diamond of death - visibility vs accessibility - casting idioms (static, dynamic, const, reinterpret) - ugly libraries (STL, ATL, MFC, COM) yeah, i said STL is ugly. - templates (Ruby doesn't need templates since everything is dynamic) - No language level string data type (our product has at least six representations of strings here and there that need to be converted at the bit level).
- TooMuchNick 18y agoIn college, where I majored in English, I thought I'd have an adventure and take a class in programming. They taught us C++. I never tried programming again. Say I was foolish enough to try again on my own. Say I wanted to write my own version of Writeroom: http://www.hogbaysoftware.com/products/writeroom http://www.hogbaysoftware.com/products/writeroom What language would I want to learn, and is there a good beginner's guide?
- allenbrunson 18y agothe appropriate language for any given situation is largely dependent on the environment you're writing for. writeroom is a macosx program, so it's overwhelmingly likely that it was written in objective-c. you can google up beginner's guides all day long.
- bmj 18y agoDark Room (http://they.misled.us/dark-room http://they.misled.us/dark-room), the Windows version, is written in C#.
- TooMuchNick 18y agoSorry, I should have realized the OS would be very important. I want to try writing a couple of Mac apps.
- kragen 18y agoYou can learn a part of C++ in a week or two weeks, but really internalizing all the subtle gotchas takes longer. Static initialization order fiasco? Exception-safety without needing catch (...) { ... throw; } clauses? Why X-is-a-Y implies pointer-to-X-is-a-pointer-t-Y but not pointer-to-pointer-to-X-is-a-pointer-to-pointer-to-Y? Why do I get a long pause when I exit this scope where I destroy just one object? How do I debug a segfault? How do I debug multithreaded deadlock? When should I use a virtual base class? Etc. You can't learn all that stuff in a week or two. And maybe you shouldn't learn it at all; for many applications there are things that will work better than C++ without so much complexity, whether that's C or Java or Python.