I dislike both C and C++. I learned Java before C/C++, although I had some (highly unpleasant) contact with C/C++ before Java. Now I _have to_ learn C++, but I don't find it all that difficult.
Besides, if you use a portable garbage collecting library with C++, and don't use MFC or the like, just some portable widget set and purely ANSI C++ code or STL code, your apps should be portable in C++ too, and C++ is for sure a much stronger language than Java (multiple inheritance, operator overrides, more mature templates support, to name a few additional language features). It's only that it lacks some other features I really need, like serialization, rich and powerful network features, cross-platform binary code, and the like, which make Java a lot more appealing for some classes of applications. But if you really want to learn OOP, IMO C++ is the better language. Once you learn C++, _and_ OOP, you can start using Java right away. Doing it the other way round is dangerous, IMO - you risk to overlook some important and nice OO ideas, which you _should_ learn if you'll also have to design some code, not just code what others designed.
|