During my experiences programming (which, at 19, isn’t really that much, but still 5 or so years) I’ve come across Java a few times, but always passed on using it seriously. The first time I seriously tried it, the book I was learning from taught the Swing interface (read: ugly,) it’s compiled and interpreted (read: slow, but can have some perks such as been cross-platform.)
So the other day I thought I’d start to get into Android development (for real this time.) I had a few false starts, partly just getting really annoyed at the interface designer (I’ve since got over that,) and am on my way to releasing my first (not hugely complicated, but quite useful) Android application. Of course, this meant re-learning Java to be able to write the app (I could have done some hackish implementation with a cross between Java and C, but since my app isn’t memory or processor hungry, I didn’t really need the extra speed. Generally you would reserve doing that for games.) As someone who likes to program all my Windows applications with a GUI in C#, I was aware Java and C# are quite similar in their syntax, and after a little while I did start to notice big similarities.
One plus that I have found whilst programming for Android is that threading is very elegant. A lot easier than I remember threading to be, and is definitely important for a program that fetches data from the net (which can take upwards of 10 seconds, which is too long to lock up the UI thread for.) I don’t know if to commend Google or Sun (erm, Oracle.)
So, prejudice aside, I did start to get used to programming Java quite quickly, and to my surprise, was able to start making a working application fairly easily. I still have a heap to learn, but I’m learning as I go, and I really look forward to starting to make a lot more (and complex) Android applications in the future.