For a very long time I’ve been anti-Java. It started when I was a PC technician in the late 1990’s. The Java Runtime was always a nuisance to maintain and the apps were terrible memory hogs with bad user interfaces.
My view of Java didn’t improve as I learned and worked in C++ and then later C#. Java seemed a poor, clunky way of doing things and there was no need for it, given the fitness of the C# ecosystem for many of the same “enterprisey” purposes.
When the Android operating system was released things got weird. Why were they using this slow memory-hog language for a mobile phone’s applications when the hardware has such limited memory and processor power? It made no sense.
Soon after that, Oracle bought Sun and became the owner of Java. Oracle is a terrible company that I want nothing to do with. In addition to their hyper-litigous business practices, they also deploy auto-accept crapware with their Windows runtime installer*, which is unconscionable. Needless to say, this did not improve my opinion of Java.
Years later I built a search engine. There are a lot of useful web crawling tools in the Java ecosystem that I didn’t take advantage of. The Python ecosystem has a lot of wonderful web crawling tools and libraries, but not having access to the whole set of what’s available ended up being a hindrance.
The same goes for data science. I know the Python data analysis tools, but there are a lot of things in Java that I haven’t really had access to (particularly the Hadoop ecosystem), so I’ve missed out on some possibilities.
I get that it’s no longer true that Java is clunky and incapable, but it’s hard to let go of a long-held belief. But it’s not a useful belief, so it’s time to let it go the same way I let go of my prejudice against Apple’s OSX a few years ago (although I do sometimes still refer to it as “broken Linux”).
Now that I’ve been focusing more on DevOps, it has become more important to be able to support a wide variety of programs. Writing software is one thing – you can usually focus on only the language(s) used by your project and not suffer for it. When you’re deploying applications from dozens of teams, you need to be able to support (and troubleshoot) anything and everything.
Everything I’ve heard leads me to believe it will be fairly easy to become competent in Java given my experience in C# and C++. I have a copy of Teach Yourself Java in 24 Hours and some spare time, so I’ll find out soon.
* I hope that one day that the FTC will ban installer bundling. That certainly won’t happen with the current shitministration.