Java isn't the young buck of the programming world anymore. These days, younger programmers see it as the successor of C and C++. Java did begin its life in the mid 90's which puts the language close to 30 years old. Let's be honest, three decades in the computer industry is an extremely long time with how fast paced technology moves.
Is Java Dead Then?
This question has been asked for a while now. Now that Java is older, it's time to retire it right? The only problem with thinking this is that there are literaly billions of devices running Java (Android) and many server applications written in Java. With all of the existing Java code running out there, Java isn't going anywhere anytime soon. Just like C code, Java will be around for a long time.
Is Anyone Writing New Apps in Java?
Ok, Java has been around for a while, but are new apps being written with it? It's true that there have been some poor uses of Java over the years. Applets, Swing and JSF to name a few. However, there are some extremely good things going for the Java platform. The Java Virtual Machine has become one of the most performant platforms to run code on. The Spring Framework is also doing good things in the Java realm. The Spring ecosystem provides developers with tools to write full blown enterprise web applications and many Java teams are building new apps with it.
Spring vs. JEE
Java has been an enterprise worthy language for a long time now. When Java was owned by Sun Microsystems, the Java Enterprise Edition or JEE provided tools like Enterprise Java Beans (EJB's), MVC architectures using Servlets and JSP's and Server Containers to run applications on. At the time, these frameworks really helped align developer skills and build a culture around the Java platform.
Over time, ideas, frameworks and concepts evolved. Developers wanted to write less code but produce higher quality apps in a shorter amount of time. This led to a division in the Java world. JEE wasn't able to keep up with changing times as fast as developers wanted so Spring was created by Rod Johnson as an open source alternative. Developers were initially hesitant to adopt Spring but after seeing some of the benefits of the framework, Spring became popular quick.
Spring introduced Inversion of Controler (IoC) and allowed easier deployments providing freedom from expensive Java container servers. The Spring Community grew and grew and added more and more features. Spring matured and become enterprise worthy in its own right. Spring has continued to stay on top of bleeding edge ideas.
Spring Reboots Java
There are so many language platforms to choose from these days. Ruby on Rails, Node and Django are all mature platforms that allows developers to quickly create applications. Even though Java has been around for a while, Java was a little late to the game that these other frameworks were playing. JEE wasn't keeping up. Spring on the other hand changed the game by allowing apps to run as "containerless" apps. Spring provided the Spring Boot framework which in essence rebooted the way Java developers think about building and deploying Java applications.
Java apps can now be built quickly using a platform much like Rails or Django. Full blown REST API's and server side persistence apps can now be developed in minutes using Spring Boot. Spring has revitalized Java keeping it current and relevant. When you combine Spring Boot's ease of use and power with Java's long standing track record, you get the best of both worlds. If you're thinking about building a new app, definitely take the time to check out the Spring stack and compare it with the other options out there.
If you're interested in Spring Boot, you can find more info at the links below.