VMware launched the State of Spring report in 2020 to better understand how enterprise developers use Spring and how they expect to use it in the future. We also wanted to make sure we stay connected with the Spring community and keep abreast of what they like about it, what challenges they face, and what trends and use cases are most important to them.
So, what have we learned and how have we applied it? As we release the results of our third annual survey, the State of Spring 2022 report, we asked some of the Spring engineering leads to tell us what they think about what we've learned from the survey and for their interpretation of this year’s results. Here is what they said.
They care deeply about the Java community
VMware’s State of Spring survey is the only survey focused exclusively on the Spring community. The Spring engineering team combs over these results and goes pretty deep into analyzing the results looking for actionable feedback. As the steward of the most popular Java application framework, used by millions of Java developers worldwide, the Spring engineering team is committed to making every aspect of app development as easy as possible. Naturally, upgrades have been top of mind for our users as well as the team.
“With Spring Framework 6 and Spring Boot 3, designed for Java 17, I’m inspired to see so many people willing to go through such a major baseline upgrade with us this year! The Spring engineering team is committed to embracing Java innovation in our framework codebase.”
–Juergen Hoeller, co-founder of Spring Framework
“I think that, for historical reasons, as a community, we got used to treating any Java version upgrades as rare and monumental events. Java releases are following a six-month release cycle. While this more rapid cadence is welcome, many organizations struggle to prioritize the more rapid flow of upgrades in the ecosystem. The Spring team strikes a balance between encouraging organizations to stay up to date while continuing LTS support long enough to give the community time to catch up.”
–Olga Maciaszek-Sharma, Senior Software Engineer, Spring Cloud Team
The Spring team also acknowledges that not everyone can always be on the leading edge, regardless of how hard they try to make upgrades as approachable as possible. Madhura Bhave points this out:
“When it comes to developers, there is no one size fits all. Meeting developers where they are is important. We’ve seen this when reactive support was added in Spring Framework 5. Even with all the benefits of reactive, it’s not for everyone. Spring gives developers the choice, by continuing and enhancing its support for Spring MVC applications. Similarly, with the latest Spring Framework 6 release, we realize that moving to native images will be a choice and many developers will be happy to continue running their applications on the JVM.”
–Madhura Bhave, Engineering Manager, Spring
Spring revolutionized application development when it came out nearly 19 years ago. From the days of XML configuration and factory beans to Spring Boot starters and native compilation with GraalVM, the team remains focused on following technology trends from every angle of the portfolio for their users.
“Looking forward, this is only really the start, since we mean to co-evolve with upcoming Java platform innovation in JDK 21 and higher. An immediate case is Project Loom (virtual threads), which we expect to be ready soon in the JDK, enabling the ability to optimize scalability of imperative programming setups such as Spring MVC stacks. Our community is excited about Project Loom, even with it still being a JDK preview feature!”
“The most recent Java versions have made progress in improving the individual developer’s experience: instance of pattern matching, text blocks, and more. Spring fundamentally changed the developer experience for millions of enterprise Java developers, and delivering a great developer experience is still one of our most important priorities.”
“Spring and the community of OSS contributors and users that support it enjoy a natural symbiosis, helping each other build the best solutions to deliver valuable software to production. It’s exciting to see that relationship grow, year after year, and to see that reflected in this report.”
–Josh Long, Spring Developer Advocate
APIs are the dominant use case
APIs are a critical foundation for digital business. Many architects and devs alike embrace APIs as a central part of their architectures. This is also true of the Spring community, which chose exposing APIs (internal and external) as the most popular uses for Spring since 2020. Though we asked the question a bit more broadly back then, using Spring for API development continues to grow, sustained by the growth of modern and cloud native applications.
Source: State of Spring 2022
“As Spring Framework team members, we’re always committed to improving our REST support that developers love. When it comes to web APIs, REST is not the only choice. Spring developers are also using GraphQL to build flexible APIs for mobile apps and rich UI clients, which can benefit from more flexibility and control, in order to be more agile and work with a graph of data.
GraphQL Java is the well-established foundation for all Java applications in this domain. We partnered with GraphQL Java maintainers to build first-class support with Spring for GraphQL. We’re excited to offer new possibilities to the community and to hear about new apps in production.”
–Brian Clozel and Rossen Stoyanchev, Spring for GraphQL team
“When prioritizing our work, the Spring Cloud team embraces an “API first” mindset, making sure the tools we develop help foster an API-first mentality. We’ve added libraries to help improve resilience, fault tolerance, discoverability, rate limiting, and other similar concerns so they are no longer treated as unique concerns of individual services but as foundational aspects of API development. As an example, we’ve put a lot of work into the latest release of Spring Cloud Gateway, a developer-friendly API gateway that can be run as a native image. We’ve also released Spring Cloud Contract, which gives devs an easy way to test their APIs against a contract established between the API’s consumers and producers.”
The Spring portfolio has a lot of stuff in it, with nearly 60 supported projects, Reactor, Micrometer, experimental projects…the list goes on. The community has said consistently that the breadth of the portfolio is hard to navigate. It can be challenging for someone new to Spring to get started. The Spring team has responded both with the launch of Spring Academy and planned updates to documentation, including improved search and layout.
“Adopting a rapid innovation mentality has made navigating the Spring portfolio challenging over the past few years, and the Spring community let us know about it. The portfolio is broad. Documentation follows the projects, but piecing things together can be a challenge.
This year, Spring is embracing its learning culture roots with the announcement of Spring Academy. The Spring team was born from a culture dedicated to delivering world-class training. Spring Academy takes a modern twist on that by providing training from the Spring team to developers. This online platform offers interactive courses with a full development environment where Spring developers can learn from the likes of Josh Long and others.”
–Michael Minella, Senior Director, Spring R&D
“Based on the valuable feedback from the survey, we are working to improve our documentation. In the first phase, we are focused on improving the navigation through the use of Antora. We have implemented this with a few projects and are now working on adopting it throughout the portfolio. Thank you to everyone for your feedback; we're looking forward to more improvements to come.”
–Rob Winch, Spring Security Lead
Spring ❤️ Kubernetes
Kubernetes has quickly grown to serve as the dial tone for modern platforms to build upon. The question isn’t if developers are using Kubernetes but how much they're using it. The Spring team has spent many hours making sure Spring runs well on Kubernetes.
“Since we started the survey in 2020, Kubernetes has become the dominant platform for running Spring apps. There is no mystery as to why. Kubernetes takes an approach to platforms that Spring developers should be comfortable with. Spring provides dependency injection within your application, providing what a bean requires from the container. Kubernetes provides dependency injection from your platform. It provides the facilities to inject what your application needs (configuration and other concerns) right into your container. Spring’s approach to Kubernetes and the idea that the application should not need to know it’s running on the platform is a key asset to developers as they develop applications.”
Sharing is caring
“The enthusiasm of the Spring community continues to grow. It’s encouraging to see that almost half of stakeholders report that they’ll be using more Spring modules in the coming years (an increase of 8 percent). The reputation of this being a welcoming community is a testament to the work we’ve accomplished with their feedback.”
–Mark Pollack, Senior Staff Engineer at VMware
In the next few months leading up to SpringOne 2023, the Spring community will be sharing lots of great content in its brand-new video series, The Golden Path to SpringOne. Hear your peers and leaders in the Spring community share technical deep dives into the newest cloud native technologies and programming tools, case studies and discussions about processes and best practices. We’re also planning to host an in-person SpringOne event in conjunction with VMware Explore this year in Las Vegas. We can’t wait to see you then! Keep your eyes on SpringOne.io for future updates.
About the AuthorMore Content by Rita Manachi