And I'm getting there*, but some of it is very frustrating.
Java has some things that are frustrating, particularly as I can see the places where C# improved them. Properties, for instance. And Iterators. The latter is now a lot nicer as of more recent versions of Java, but that's bugger all use most of the time, as I'm using libraries that were written back in the stone age, when you had to do all the heavy lifting yourself. None of the libraries, for instance, have used generics for their lists, which is particularly annoying me.
On top of that, there's Eclipse. Which has lots of lovely refactoring tools, but lacks polish. In VS**, if I want to rename a variable I just type over bits of it, and then tell it that I want all references to that variable to be updated to this new name. In Eclipse I have to tell it first that I want to rename this variable and then change it. It doesn't sound like much, but it's just less user-friendly. Similarly, the intellisense _tries_, but it's not quite as good. A fair chunk of the time I have to press Ctrl-Space to make it offer me suggestions for variable names, rather than it popping them up as I type. Oh, and don't get me started on the faff I had to go through to get my code transferring back and forth between two machines - using Git wasn't a big problem, but when it turned out I had Eclipse 3.5 on one machine, and 3.6 on the other, trying to just upgrade in place took an hour and a half and didn't work, so I ended up blowing away Eclipse on the laptop and reinstalling.
And then to cap it all there are third party libraries that don't ship with all of their dependencies, and sometimes don't mention that they have them at all. I picked up a library to work with Delicious, got a bunch of code in place for it, and only when I actually went to run it did I then get an error telling me that it has a dependency on Apache HTTPClient. So now I'm off to download that as well, and see whether that slots neatly into Google App Engine or not. I had the same issue with the feed parser I used, which turned out to be dependent on the Apache Xerces XML parser.
The actual code I'm producing is just fine, but the faff necessary to get it in place is just massively annoying.
*You can see where I'm up to here.
**Visual Studio, the MS equivalent.
Original post on Dreamwidth - there are comments there.