The following was written more than a year ago…
Got opportunity to work on those two technologies recently due to job change. Had some gotchas as I transform from C++, CAD programming to this new program paradigm.
Data problem vs. coding error
In CAD world, sometimes there is problem with the data (CAD file) itself. But most of the time I focus my effort debugging the coding error in my own code, not trying to debugging the data itself. In Oracle/Database world, I found it more often that the data itself could complicate problem. Because the relational database has relationship between table, sometimes we can not add/delete/update table at will due to dependencies (data integrity). This also bring about the second topic I want to discuss.
C++ vs. Java
Java is not as flexible as C++. For instance, how to pass data back from a function, so far I found one way: using the return data. In C++, I used the pointer and reference quite a bit. The wiring of inheritance and interface (implementation) could also got a bit complicated: basically one needs to draw the relationships on a paper to better understand all those.
Eclipse vs. Visual Studio
Eclipse (the free Java IDE) is quite powerful, actually. It’s also highly configurable, with so many plug-ins, e.g., this subclipse integrates Eclipse with Subversion. I remember I could not do such things inside Visual Studio (for Perforce).
C++ Boost library
(about 2 years ago) I had the opportunity to use C++ boost library recently. I heard about it a few months ago and did not pay much attention. More recently I had to use it for a project, and was quite pleased with the easiness of using it. For my project I used Visual Studio environment. The setup was fairly straightforward (boost Get Started on Windowshere). As suggested by the Get Started Guide, the easy way is to download the installer from Sourceforge. I installed version 1.38.
After done the project on Windows using Visual Studio, I also played around it on Mac. I pretty much followed the Get Started on Unix Guide. Couple things particular on Mac OS X (my version is 10.5.8).
1) Enable “root” on Mac (instruction here), this is needed if you want to install it on /usr/local;
2) (When at /usr/local) $ ./bootstrap.sh (without any options), it will unzip the files at /usr/local
then do to compile the whole thing (it could take a while)
$ ./bjam install