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 has a large base of knowledgeable programmers. This is important when building software that will require long term enhancement and maintenance.
- 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.
- 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.
- 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.
- 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.