6 Reasons I Still Love Java

I recently wrote a piece about how enthusiastic I am about Ruby on Rails. And I did not exaggerate; there are many applications that I no longer think about Java for building. However, there are still many instances when I return my focus to Java. It is widely adopted for many good reasons and I do not expect it to disappear or even shrink any time soon. In no particular order, here are the things I still love about Java.

Java

  1. Java has a large base of knowledgeable programmers. This is important when building software that will require long term enhancement and maintenance.
  2. Java has a massive ecoSystem of vendors. Companies including Google, SAP, Oracle, IBM, Pivotal, Red Hat, HortonWorks, and too many others to list all participate actively in the Java Community Process (JCP) and ensure that the needs of customers in widely disparate industries are considered as the platform progresses.
  3. Open Source Support. If you need to do ANYTHING in Java, you can bet there’s an open source project that supports it. In fact, Apache likely has support for it so you can often stay on a single website to find the libraries you need.
  4. Spring. Simply put, Spring has simplified Java development for the enterprise to a level that was unimaginable when Java was first gaining popularity as an enterprise computing technology. I remember the old days of EJB, Model 1 JSP development, Struts, ad hoc authentication, and many other approaches that have since been rendered to the history books by Spring. Best of all, Spring has continued to innovate and learn from other platforms and languages. It is also open source, but I feel like this one requires its own section.
  5. Java has extensive tool support. I love developing Rails or JavaScript code in Sublime as much as the next person, but there are some instances in which an IDE that can attach to a running JPDA-enabled application server will save days of time in troubleshooting. I won’t weigh in on the religious debates about Eclipse vs IDEA (both are great), but there are definitely situations I run into that make me glad I can use either one. And there are also tons of nifty profiling, monitoring, load testing, and other solutions that support the needs of complex software.
  6. The Java Virtual Machine has proven to be scalable, tunable, and flexible enough to support any imaginable usage. It wasn’t always this way, but the decades have brought advances in JIT compiling, concurrency, real time, and many other use cases to allow literally any application to be written in Java. This includes mobile devices, embedded devices, large distributed data center applications, robotic devices, and many others that I’m failing to mention.

There are many reasons that developers look for alternatives to Java, but for the foreseeable future it will remain an indispensable part of the tool belt.