Estafet Insights - Edition 5
Welcome to our January 2024 newsletter. As we step into the new year, let’s dive straight into what's new and noteworthy in the world of software engineering and project management.
This month, we're zeroing in on two critical tech updates: Java's evolution since its 1995 inception by James Gosling and the game-changing release of Spring Boot 3, as well as the importance of upgrading - an insightful guide by Yoana Ivanova.
Staying ahead with Java is not just about being tech-savvy; it's a business imperative. Upgrading ensures access to the latest security (Enhanced Encryption, Stronger protection against eavesdropping and tampering),? increased performance enhancements (better memory management and shorter pause times), and improved operational efficiency (More efficient APIs and libraries that streamline coding and better Resource Management to handle large data sets more efficiently). You do not want to be caught out and these changes lower costs.
Observability will be a hot topic in 2024. Our customers are monitoring application events and metrics to create quick wins to improve customer experience.? Our second article shows how the transition to Spring Boot 3 is not just an upgrade; it's a significant opportunity to capture system events and turn them into business actions. For example, periods of slow performance see more customers abandoning their carts, significant disruption events warn customers, and customer support teams of what to expect and the actions to take.
In IT news, the Post Office scandal and the complexities in dealing with large suppliers like Fujitsu dominated the headlines following the dramatisation by ITV of the introduction of the Horizon system 25 years ago in 1999. This shocking story highlights the importance of company values and the careful selection of technology partners in our industry. It reminds us of the need for transparency and the value of experience in the delivery of IT projects regardless of their scale and complexity.
Estafet is very much aware of some of these challenges. 80% of our customers work with large System Integrators and we are often asked to come in and help improve the software delivery process with them. We very quickly increase the collaboration, transparency, and efficiency of the teams involved. We apply our expertise to make sure key technical decisions in Architecture are taken for the benefit of the customer not the supplier and our developers show the art of the possible through fast agile delivery, continual improvement, and technical excellence. This approach is value-driven and it works.
We have teams ready to go. Please feel free to contact us?
Regards, Adrian Wright
CEO and Founder at Estafet
Migrating to Spring Boot 3
By Jeremy Gosling , Principal Consultant at Estafet
The GA release of Spring Boot 3 in November 2022 was the first major revision of Spring Boot since 2.0 was released more than four and a half years ago.? It is also the first GA version of Spring Boot to provide support for Spring Framework 6 and GraalVM.
Highlights of the release include …
See Spring-Boot-3.0-Release-Notes for the complete list.
Spring recommend upgrading to the latest Spring Boot 2.x release before migrating to Spring Boot 3.? See Spring-Boot-3.0-Migration-Guide for full details.
Some potential code changes required to migrate to Spring Boot 3 will come from the move to Java 17.? I thought it would be interesting to see what ChatGPT had to say on the subject so I asked it to “Provide a list of reasons to update to java 17” and it came back with a decent list, highlighting that it was a LTS release (supported until at least 2029 java-se-support-roadmap) and that new Java version generally come with performance, memory management and security improvements.??
For new features it listed sealed classes (JEP 409), pattern matching for switch statements (JEP 406) and new pseudo-random number generators (JEP 356).? For JEPs which might impact existing code, the Applet API is now deprecated for removal JEP 409), the Remote Method Invocation Activation package java.rmi.activation has been removed (JEP 407) and the java.lang.SecurityManager and a number of closely related APIs in the java.lang and java.security packages have been deprecated for removal (JEP 411).
Since Spring Boot 3 has been tested up to Java 19 I also asked ChatGPT about that version of Java and got the response …
“As of my last update in September 2021, Java 19 had not been released, and therefore, I don’t have specifics on the features and improvements that it would bring. However, Java has a history of continuous improvements in terms of performance, security, and new features with every release.”
… which highlights one of the limitations to be aware of when using ChatGPT.? At least in this instance it indicated that it didn’t have the information requested.? The Large Language Model (LLM) technology underpinning these AI systems can exhibit a phenomenon called hallucination where the output matches the expected pattern of the response without actually representing reality or factual information.? A law firm discovered this to their cost when they submitted documents in a court case citing supposed supporting cases which they had used ChatGPT to find.? However there weren’t any, so ChatGPT made up plausible case descriptions complete with references, but which didn’t actually exist (Lawyers who cited fake cases hallucinated by ChatGPT must pay).
The Importance of Upgrading Java – A Comprehensive Guide
By?Yoana Ivanova, Consultant at Estafet
领英推荐
Java is a popular and versatile programming language that has been in use for nearly 30 years and is still going strong today. It is a mature language that has demonstrated its value continuously over the years. From prototyping simple projects to developing complex systems, Java is used by big and small businesses alike. A wide range of applications are written in Java, including mobile & desktop apps, web & application servers, games and more.
Java is subject to frequent enhancements and is constantly evolving as a programming language: new LTS (Long-Time-Support) versions roll out every 2 years. This article will explain why it’s essential to keep up with new versions of Java and will outline the benefits of doing so, including:
Lastly, I will also list some static analysis and AI tools that can help you with migrating to a higher JDK like Java’s jdeprscan, IBM’s Migration Toolkit for Application Binaries and the recently introduced AI-powered Amazon Q Code Transformation.
Java Versioning and Adoption
Since 2017, Oracle has established a specific release train for new versions of Java: one feature release comes out every 6 months. Every March and September, the Java community receives a new release, with LTS versions arriving every 2 years. The latest LTS version is Java 21 which was released in September 2023. Although the JCP Program is working hard on pushing the Java ecosystem forward, some companies, especially big enterprises, are reluctant to upgrade. According to JetBrains’ annual Developer Ecosystem Survey taken in 2023 among more than 25,000 developers around the globe, 50% of respondents who chose Java as one of their primary programming languages regularly use Java 8 with 45% going to Java 17 and 38% to Java 11:
50% of respondents regularly use Java 8
These are actually optimistic results compared to JetBrains’ 2022 and 2021 surveys when Java 8 was used by 60% and 72% of respondents respectively. Another survey shows slightly different results: according to Azul’s 2023 “State of Java” Report, Java 17 and Java 11 usage is fortunately already ahead of Java 8, but the latter is still at a sizable 40%. Regardless, we are seeing a steady shift towards more recent Java LTS versions among developers. It is also pleasant to see that a larger percentage are using the more recent Java 17 rather than 11. A significant number of respondents however are still using the nearly decade-old Java 8. Why are some companies so reluctant to upgrade?
Each company probably has its own unique motives, but I will try to list some of the most likely reasons:
These, and more, are very valid concerns. Upgrading to a newer Java version is a decision that requires a company-wide discussion and should not be taken lightly. However, as the old proverb says, “nothing ventured, nothing gained”: upgrading Java can also bring you many benefits, some of which are listed below.
Stay Tuned!
Stay tuned for the second episode of our podcast, "Legacy to Agile: A Podcast Journey Through Enterprise Evolution", where we delve into the transformative journey from legacy to agile in enterprise applications. ?? This episode is packed with insightful stories and expert perspectives on navigating the dynamic landscape of enterprise transformation.
Stay tuned for a deep dive into the world of agile enterprise evolution and be sure not to miss our upcoming articles in February:
1?? "Automated Testing in API Development": Discover the power of automation in ensuring the robustness of API development.
2?? "Java Unit Testing with Instancio": Uncover the secrets of effective unit testing using Instancio in Java.
3?? "Java Frameworks for Building Microservices": Explore the top Java frameworks that empower the seamless development of microservices.
4?? "Simple Guide to Message Brokers": A beginner-friendly guide to understanding and implementing message brokers in your projects.
Get ready to elevate your knowledge and skills in the world of enterprise application transformation! ??? Stay tuned for a month full of valuable insights and expert advice.
Want to hear more about something?
We value your subscription to Estafet Insights and want to make our content perfect for you. Please take a moment to share your preferences with us so we can deliver what you want to read.