So my work, in the wisdom of someone that is not me has decided that we should standardize the language and environments that we program in to Java and Eclipse. I am sure you can already sense my excitement. I'm not particularly afraid of the Java language or even think it will particularly hard to learn the language. Its nearly identical to C# in syntax and even a lot of the framework is the same, I think. I think my biggest transition will be the tools around programming. This means going from Visual Studio to Eclipse.
I'm sure if you are reading this 2nd paragraph then you are at least somewhat interested in programming so I am going to drop all pretense of talking to someone who doesn't have a technical background. Eclipse is the defacto open source standard development environment for Java. I previously set up Eclipse on my work computer and that was pretty straight forward. I like the "Add Software" feature that you can use to add plugins and other bits to the IDE. I don't like just how complex the UI is. We are using Maven which is software that helps manage your project by downloading any dependencies that your project may have. Maven uses a file called pom.xml to manage your project and the repositories that it retrieves dependencies from. Opening pom.xml in Eclipse gives a page of form fields that you can fill out. I was able to figure out that this translated to the xml, but it was non-obvious to me how to actually see the XML. I finally noticed a series of small tabs at the bottom of the window that related to other sections of the project and finally the XML itself in the last tab.
Luckily I am working on a project with a couple of experienced Java developers who will be there to guide me and set up some of the things on the project that I would just do the wrong way. My first assignment was to take an XSD and use JAXB on it to create a series of classes for the project. I found a Maven plugin that would run JAXB and create the classes. One of my problems is that all the documentation surrounding setting up this program assumes I know what I am doing. For instance, the 2nd instruction indicated I should edit my project file. It took me a while to figure out that that was the pom.xml. Couldn't they just say pom.xml? Probably not, because everything is so flexible that it can probably be called something else.
Once I had set up the plugin, nothing was immediately apparent on what I should to to initiate the generation of my classes. It turns out something was not set up right fairly deep in a settings dialog box (Java Build Path), causing the project not to compile right. Once I got that set, the files did generate automatically.
There is a great deal to be said about how Visual Studio installs, checks for its dependencies, and has everything ready to roll when it is finally installed. So far Eclipse and its associated plugins and servers make you jump through a lot of hoops to get things running right. Everything is installed separately (I use "installed" loosely as more often than not, you just get a set of binaries that you put into a folder under your C: drive) and because you are installing these things in any particular place you have to let Eclipse and your system know where they all are. Is it really that big a deal to have an installer that just puts stuff where it "should" go and then set all the settings correctly?