Is Spring Boot Dying?

Java developers have been leveraging the Spring framework for decades to write enterprise grade applications. Through an emphasis on dependency injection and abstraction, Spring has allowed devs to quickly bootstrap applications and focus on business logic rather than reinventing wheels.

Spring Boot has accelerated the popularity of Spring by simplifying the deployment process even further. By handling configuration and embedding web servers out of the box, Spring Boot gives developers even more time back.

Despite the framework's robust community and wide adoption, the advent of cloud computing and "serverless" architecture has some questioning the continued use of something like Spring Boot. After all, if cloud functions allow us to write code in a serverless environment then who really cares about an embedded web server?

In this article, we explore such questions and analyze the benefits of using something like Spring Boot in todays serverless ecosystem.

Is Spring Boot losing popularity?

Technology moves really fast, making it hard to gauge if something like Spring Boot is losing popularity. We can take hints from trends in Google searches and GitHub to get a better idea.

Google Trends

Looking at the following google trends search paints an interesting picture...

Notice how this Google Trends search conveys the interest of the search term "Spring Boot" over the past 5 years. While we certainly see ups and downs in the popularity, you'll notice there isn't any dramatic drop off at the end. This implies Spring Boot is still alive and well based on the fact that it's search hasn't tailed off.

Github Trends

With that said, Google trends can be misleading. Evaluating things like GitHub trends can be more revealing as we see what repos developers are forking / starring.

At the time of this writing, the xkcoding / spring-boot demo is showing as the 8th most trending Java repo on Github. With over 10k forks and 30k stars it seems that the Java community is still digging Spring Boot.

Personal Experience

Talking with software engineers can also shed light on the situation. As a senior software engineer with over 15 years experience, I can safely say Spring Boot is still thriving (especially in enterprise environments). Big companies across different industries use Spring including large financial institutions, Netflix, LinkedIn, Uber, Zillow, etc.

I've personally used Spring Boot at EVERY single dev job I've had including gigs at international banks and publicly traded companies. Larger organizations love Java because it is safe, robust, and tested.

While newer technologies surrounding Node, Elixir, Rust, etc. are always being adopted, the Java ecosystem is heavily relied on. Many legacy projects are written in Java. And I haven't come across a Java application that isn't using the Spring framework.

Does Spring Boot have a future?

Short answer, yes. Spring Boot will remain relevant even with the increased emphasis on cloud computing. Through projects like Spring Cloud (built on top of Spring Boot), developers can easily implement design patterns that cater to distributed systems. Things like distributed sessions, configuration management, load balancing, etc. can be easily bootstrapped to applications thanks to Spring Cloud.

Applications written in Spring Boot also play well with containerization. You can easily run Spring Boot applications inside Docker containers and deploy them to cloud environments using things like AWS Fargate and Elastic Kubernetes service.

What is replacing Spring Boot?

There's a growing camp of people that believe cloud functions are replacing Spring Boot. Cloud functions strip away the configuration and hosting nightmares for developers by allowing them to focus solely on writing code.

For example, if you want to expose an API endpoint that saves user information to a database you can simply write the logic in a AWS lambda function and configure an endpoint to trigger the logic within AWS. No need to deploy and manage some containerized solution like Spring Boot.

Despite the convenience, this approach does have its pitfalls. With convenience, you sacrifice flexibility as the cloud providers control the runtime environment. State management, resource limits, cold starts, vendor lock-in are all issues experienced with a serverless approach.

Conclusion

Spring Boot and Java aren't going anywhere. There's nothing stopping you from using Java and the Spring Boot ecosystem in a cloud environment and these are perfectly acceptable ways of developing applications in today's world.

While it's important to explore alternative languages and frameworks that may better suit your specific needs, theres no reason why you can't host your solution in the cloud using Spring Boot.

Your thoughts?

|

Yes, Java and the Spring Boot framework still have a significant role to play in the serverless architecture and cloud ecosystem, despite the rise of other technologies and frameworks. Here's why:

  1. Java's Popularity and Ecosystem: Java has been a dominant programming language in enterprise applications for many years. It has a large and mature ecosystem with extensive libraries, frameworks, and tools. Many organizations have existing Java codebases and a pool of skilled Java developers. This popularity and ecosystem make Java a strong contender in the serverless and cloud space.
  2. Cloud Providers Support: Major cloud providers, such as Amazon Web Services (AWS), Microsoft Azure, and Google Cloud Platform, offer robust support for Java and Spring Boot in their serverless offerings. For example, AWS provides AWS Lambda, a serverless compute service that supports Java and enables developers to run Java code without worrying about server management.
  3. Spring Boot for Microservices: Spring Boot, a popular Java framework, is well-suited for building microservices-based architectures. It provides features like dependency injection, easy configuration, and integration with various components and services. Spring Cloud provides additional capabilities for building cloud-native applications, including service discovery, distributed configuration, and load balancing.
  4. Java's Performance and Scalability: While serverless architectures are often associated with lightweight languages like Node.js or Python, Java has made significant performance improvements over the years. The introduction of GraalVM and other JVM optimizations have reduced startup times and memory footprint, making Java a viable choice for serverless functions.
  5. Integration Capabilities: Java and Spring Boot have strong integration capabilities with various technologies and systems commonly used in the enterprise, such as databases, message queues, and other external services. This integration support is crucial when building complex serverless applications that require seamless connectivity with existing infrastructure and services.
  6. Longevity and Stability: Java has a reputation for stability and backward compatibility. Many large-scale enterprise applications have been built using Java, and organizations rely on the language for mission-critical systems. Java's maturity and longevity make it a reliable choice for serverless deployments where stability and reliability are paramount.

However, it's worth noting that the choice of technology ultimately depends on the specific use case, project requirements, and the preferences and skills of the development team. While Java and Spring Boot continue to be relevant in the serverless and cloud space, it's essential to evaluate other languages and frameworks to ensure the best fit for one´s particular needs.

|

No

|

Spring Boot not dying anytime soon. The way Spring Boot applications are hosted, however, is quickly changing.

While use cases for hosting applications on prem still exist, most companies are leveraging cloud providers to host their stuff these days. This doesn't mean that using older, more mature languages like Java and Spring Boot are irrelevant by any means. You can easily host Spring Boot applications on cloud providers using containorization just like you can host NodeJs / Python / etc.

|

I think people tend to think Spring Boot is dying because they don't understand that the way in which you host / deploy applications is not tightly coupled with the language / framework you use to write your application.

Just because something is hosted in the cloud doesn't mean it has to be written in NodeJs for example. In fact, older more mature frameworks like Spring Boot are just as valid and arguably more robust.

In conclusion, this conversation will quickly evolve into preferred programming languages etc.