Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Rapid switch to Java for an experienced C++ developer [closed]

People also ask

Can Java be as fast as C++?

This means that, in the real world, Java is often faster than C++, even on standard measures of latency. And even where it is not, the difference in latency between the languages is often swamped by other factors, or is nowhere near large enough to make a difference, even in high-frequency trading.

Why did Java replace C++ in most of the application development?

Java didn't have the same goals and so doesn't serve the same function as C++. In other words, Java may have made some improvements, but also some regressions in things that are important for C++ applications. Therefore Java cannot simply replace C++.

How much time does it take to switch from C++ to Java?

C++ to Java: 1 week. Java to C++: 1 month.

How long does it take to get comfortable with Java?

For a person with no prior programming experience, it is expected approximately 9 months, that is 5+3+1 months to completely understand and write Java programs.


I moved from C++ to Java 6 years ago an used "Effective Java" by Bloch, this is a style book which explains in 50 short articles how best to use various java classes and techniques. This is very similar to "Effective C++" by Meyers and "Exceptional C++" by Sutter.

If you already know C++ and object oriented programming and can read Java this is the fastest way to write good quality java code.

There is a new edition out now with generics etc. In my mind this book is essential for all Java programmers as well as those wanting to learn Java.


The Java Tutorial.

It is kept up to date and well written. Also available in hard-copy.

I'm always skeptical about "change from X to Y" guides. Though they may help as reference points afterwards, learning a new language by coming from another one may be tricker than you think.

I think it is important to learn the new language "as designed" and to get the feel for the way to things "right" in this language and also learning its code idioms.

As a good book for experienced programmers who also want to learn about potential pitfalls of Java, I recommend Effective Java.


O'Reilly's 'Head First' books are very well written. Take a look at Head First Java and Head First Design Patterns.


I made this transition in 1996 or so when Java was newish. A book will definitely help. I used Laura Lemay's 21 day book, which is now up to rev 6. It took me 3 days to get through the original book and another week before I felt I was fully conversant.

Things to get used to:

  1. The language is not huge, but the support libraries are. There probably is already something that does what you want
  2. Garbage collection and sane memory management is awesome. My bug count plummeted in working with Java compared with C++
  3. Garbage collection and sane memory management sucks. I was writing performance critical applications and (at the time), I would've killed someone to get something similar to placement new or operator new overload.
  4. Garbage collection is not general resource collection (ie, open files etc). You still need to worry about that.
  5. I really missed having an integrated macro preprocessor. You can still use one, of course, but then your build has just gotten more complicated.