Software Engineering Daily
Java is one of the most widely used programming languages, and a key contributor to its success is VMware Tanzu’s Spring, the most common framework for Java development. The Spring Framework is built on top of the Java Virtual Machine and provides a consistent programming and configuration model for application developers. From inception, it was designed with developer experience and modularity in mind.
The open-source application framework has been accelerating Java development times since its inception in 2004 (Happy 20th birthday). Since then, the platform has been expanding: growing 50% year over year during the last five years. In this blog we’re exploring what makes Spring important to Java, how the framework influenced the developer experience, and a look at the latest version of Spring, which introduces features to support AI integration.
Two decades ago, there were dozens of different ways to connect to a database, something just about every application has to do at some point. “At the time, the various approaches were very cumbersome: developers wrote a lot of code and gained very little functionality,” explained Mark Pollack, a Senior Staff Engineer, Tanzu Division, Broadcom. “Spring provided a lot of value by simplifying the process. Just getting a single app to talk to a database, present a web form, and do transactions correctly was a huge win. In that era, developers could spend weeks trying to create that function.”
Another reason for its success is its enterprise-focus. Most open source projects concentrate on the consumer market. However, large companies invest a lot of money building applications to run their businesses. “At the end of the day, large corporations’ largest expense is probably their developers,” explained Ryan Morgan, Senior Director of Engineering, Tanzu Division, Broadcom. Spring makes developer teams more efficient, which greatly enhances the bottom line.
Through the years, the ecosystem has grown. “There’s a large and vibrant community behind Spring,” noted Tanzu’s Morgan. Now, it has more than 200 different technology starters. These software building blocks make it simpler for software engineers to integrate their code with different third-party systems.
Development problems evolve over time, so various elements were added. Spring Initializer is a bootstrapping tool, a way for developers to create a new project. “Normally, software engineers started from a blank piece of paper and had to figure out what type of project it was and what type of libraries were needed,” said Tanzu’s Morgan. Then, they searched the web to find some place in the documentation that told them what library dependency was needed to add for different pieces of functionality. Then invariably, you cut and pasted from something that wasn’t consistent. You ended up with a mess.”
With Spring Initializer, software engineers go to a website which has clear instructions about what the options are and presents them in a typical web form. Then, they enter the Generate command and out comes a shell that they can use to start building their program. The solution does not generate any code but solves the problem of finding the right application dependencies. Developers start faster and are less frustrated than previous methods.
Under development is Spring CLI, which not only creates the shell of the app but also includes code. The advances have a significant impact because 1 million new projects are created each month.
The last 10 years have seen a major move to container deployment and Spring has aligned with this paradigm shift. “Really, when you think about all those cloud native patterns, a lot of those container functions are really baked into our projects already,” stated Tanzu’s Morgan. “If you want to do distributed configuration, we have a solution for that. You want to do service discovery; Spring has patterns and tools for that.”
Recently, a major change to Spring occurred. Rather than release new functions autonomously, they are gathered and bundled into Spring Boot. Version 3.0, which is based on Spring Framework 6.0, requires Java 17 or above. Previously, Spring supported Java 8, so the change is significant for some companies.
Better performance is one benefit from the change. “We’ve seen customers realize 15% performance improvements, just from doing the upgrade,” said Tanzu’s Morgan.
AI is being woven into many applications, especially with the emergence of Generative AI solutions. They represent a quantum leap in capabilities and overall intelligence compared to previous iterations of AI. One reason why today’s generative models are gaining so much attention is that they work with much larger volumes of information (hundreds of billions of words) and larger data models (hundreds of billions of parameters) compared to previous AI systems. They possess impressive and unprecedented power. Consequently, they can perform very sophisticated functions.
However as developers try to take advantage of the functionality, platform diversity again presents development challenges. “OpenAI has their API, Amazon Bedrock offers a different one, and so do other companies,” noted Tanzu’s Pollack.
A guiding focus and design principle in the Spring framework is simplifying such work by providing common abstractions over similar technologies and interfaces. Spring AI is quickly becoming the starting point when Java developers write AI applications. “Spring AI has the common patterns that Spring developers are used to,” noted Tanzu’s Pollack. It can abstract out models, clients, etc. in ways that are familiar to Spring users.”
Another crucial part of AI applications is using a vector database. Spring supports multiple vector databases, and its portable API simplifies changing implementations. So, Spring streamlines AI application development.
Java has been a popular programming language for enterprises for decades. Spring provides software engineers with tools that help them enhance the development process. The framework has reached its 20th year of empowering developers, and its years, engaged community is laying the groundwork for continued expansion in the coming decades. “Maybe one reason why Spring continues to do well is it constantly tries to improve itself and doesn’t just rest on its laurels,” concluded Tanzu’s Pollack.
The post Spring AI and Java in 2024 appeared first on Software Engineering Daily.
Deno is a free and open source JavaScript runtime built on Google’s V8 engine, Rust, and Tokio. The project was announced by Ryan Dahl in 2018 with the goal of addressing shortcomings of Node.js, which Ryan also created. Since then, the Deno project has grown tremendously in popularity, and they recently announced Deno KV which is a database built into Deno.
Luca Casonato is a Software Engineer on the Deno project and joins the show to talk about Deno’s design, its new database, and the future of the JavaScript ecosystem.
Josh Goldberg is an independent full time open source developer in the TypeScript ecosystem. He works on projects that help developers write better TypeScript more easily, most notably on typescript-eslint: the tooling that enables ESLint and Prettier to run on TypeScript code. Josh regularly contributes to open source projects in the ecosystem such as ESLint and TypeScript. Josh is a Microsoft MVP for developer technologies and the author of the acclaimed Learning TypeScript (O’Reilly), a cherished resource for any developer seeking to learn TypeScript without any prior experience outside of JavaScript. Josh regularly presents talks and workshops at bootcamps, conferences, and meetups to share knowledge on TypeScript, static analysis, open source, and general frontend and web development.
You can find Josh on: Bluesky, Fosstodon, Twitter, Twitch, YouTube, and joshuakgoldberg.com.
Please click here to see the transcript of this episode.
Sponsorship inquiries: [email protected]
The post Deno with Luca Casonato appeared first on Software Engineering Daily.
One of the key challenges that teams encounter is how to smoothly collaborate on converting a design into code. For example, if a designer designs a web component, how can it be most efficiently implemented by a developer? What happens if the designer needs to adjust the design and communicate this change to the developer? These sorts of issues can often lead to inefficiencies and frustrations on a team.
Figma recently announced Dev Mode which aims to smooth design and developer collaboration. The idea is to tie the visual language of designers to the actual component implementation of the developer.
Marcel Weekes is VP of Product Engineering at Figma, and before that he spent 6 years at Slack. Marcel joins the show today to talk about Dev Mode, how it will boost collaboration between designers and devs, and the new Figma VS Code plugin that brings design into the IDE. Marcel also talks about the concept of the “new manager death spiral”, and how individual contributors, or ICs, can smoothly transition to management roles.
Josh Goldberg is an independent full time open source developer in the TypeScript ecosystem. He works on projects that help developers write better TypeScript more easily, most notably on typescript-eslint: the tooling that enables ESLint and Prettier to run on TypeScript code. Josh regularly contributes to open source projects in the ecosystem such as ESLint and TypeScript.
Josh is a Microsoft MVP for developer technologies and the author of the acclaimed Learning TypeScript (O’Reilly), a cherished resource for any developer seeking to learn TypeScript without any prior experience outside of JavaScript. Josh regularly presents talks and workshops at bootcamps, conferences, and meetups to share knowledge on TypeScript, static analysis, open source, and general frontend and web development.You can find Josh on: Bluesky, Fosstodon, Twitter, Twitch, YouTube, and joshuakgoldberg.com.
Please click here to see the transcript for this episode. Sponsorship inquiries: [email protected]The post Figma Dev Mode with Marcel Weekes appeared first on Software Engineering Daily.
Frontend web frameworks are software toolkits that handle many of the low-level and repetitive aspects of building a website. These frameworks have made it easier than ever to build a modern website. The open-source Astro framework was created in 2021 for the purpose of creating simple static sites that load quickly. A key factor to its high performance is that, by default, webpages don’t include any JavaScript. However, Astro gives users the ability to opt into using JavaScript wherever it makes sense in their projects. Astro also has the file based routing and server-side rendering capabilities found in frameworks like NextJS.
James Q. Quick has worked at Microsoft, PlanetScale, and Auth0 and is a popular technical content creator. He’s an advocate of the Astro framework and joins the show to talk about what distinguishes it from NextJS, Sveltekit, and other major frameworks.
Sean’s been an academic, startup founder, and Googler. He has published works covering a wide range of topics from information visualization to quantum computing. Currently, Sean is Head of Marketing and Developer Relations at Skyflow and host of the podcast Partially Redacted, a podcast about privacy and security engineering. You can connect with Sean on Twitter @seanfalconer .
Please click here for the transcript of this episode.
Sponsorship inquiries: [email protected]
The post The Astro Framework with James Quick appeared first on Software Engineering Daily.
Documentation is something that everyone knows is important but it’s often difficult to get right. On software teams, good documentation can help to onboard new people, improve communication across teams, and troubleshoot technical issues. When an application, API, or library is a commercial product, the quality of its documentation can determine whether it attracts users and succeeds on the market.
GitBook is a popular documentation platform built with TypeScript and Node. It’s found particular use among software teams for creating technical documentation. Addison Schultz is the Developer Relations Lead at GitBook and he joins the show to talk about GitBook’s development, software stack, and how it’s adding new integrations for VS Code, Slack, and other tools.
Full disclosure: GitBook is a sponsor of Software Engineering Daily.
Please click here to view this show’s transcript.
Sean’s been an academic, startup founder, and Googler. He has published works covering a wide range of topics from information visualization to quantum computing. Currently, Sean is Head of Marketing and Developer Relations at Skyflow and host of the podcast Partially Redacted, a podcast about privacy and security engineering. You can connect with Sean on Twitter @seanfalconer.
Sponsorship inquiries: [email protected]
The post GitBook with Addison Schultz appeared first on Software Engineering Daily.
Mike Bifulco is CTO and co-founder of Craftwork. He’s also a developer advocate, writer, podcaster and serial startup founder. In past lives, Mike worked for Google, Stripe, Microsoft, and Gymnasium. Mike is also co-founder of APIs You Won’t Hate, a community for API Developers on the web. Mike’s publishes a weekly newsletter for product builders called Tiny Improvements at mikebifulco.com. Mike is on Mastodon at https://hachyderm.io/@irreverentmike
Sponsorship inquiries: [email protected]
Please click here to view this show’s transcript.
The post Making React 70% faster with Aiden Bai of Million.js appeared first on Software Engineering Daily.
Full disclosure: Convex is a sponsor of Software Engineering Daily.
Jeff is a DevSecOps engineer with experience in security, the software development life cycle, and cloud technologies. His advanced expertise in HashiCorp technologies places him as one of the most sought after trainers in the Europe, Middle East, and Africa regions and beyond. Jeff has worked for a range of different companies – from small startups to some of the biggest financial institutions. He now successfully runs his own consultancy that provides services in DevSecOps, Cloud and Security. You can find Jeff at hemmen.lu. Sponsorship inquiries: [email protected]Please click here to view this show’s transcript.
The post Building a Full Cloud Backend with James Cowling appeared first on Software Engineering Daily.
Tom Preston-Werner is a renowned software developer, inventor and entrepreneur. He co-founded GitHub and is the creator of the avatar service Gravatar, the TOML configuration file format, and the static site generator software Jekyll. Tom is currently working on the full-stack web framework, RedwoodJS. He joins us today to tell us the latest about RedwoodJS, including its new support for server-side rendering.
RedwoodJS conference
Paweł is the founder at flat.sociaI the world’s first ‘flatverse’ start-up. Pawel’s background is as a full-stack software engineer with a lean and experimental approach towards product development. With a strong grounding in computing science, he spent the last decade getting early-stage products off the ground – both in startup and corporate settings. Follow Paweł on Twitter, LinkedIn and his personal website – pawel.io.
Sponsorship inquiries: [email protected]
Please click here to view this show’s transcript.
The post The Latest on RedwoodJS with Tom Preston-Werner appeared first on Software Engineering Daily.
Netlify is a cloud-based platform that provides web developers with an all-in-one workflow to build, deploy, and manage modern web projects.
Matt Biilmann is the CEO of Netlify and he joins us today.
This episode is hosted by Mike Bifulco. To learn more about Mike visit mikebifulco.com
Sponsorship inquiries: [email protected]
The post Netlify with Mathias Biilmann Christensen appeared first on Software Engineering Daily.
Remix is a full stack web framework that lets you focus on the user interface and work back through web fundamentals to deliver a fast, slick, and resilient user experience that deploys to any Node.js server and even non-Node.js environments at the edge like Cloudflare Workers.
In this episode, we interviewed Ryan Florence, co-founder at Remix Software.
Sponsorship inquiries: [email protected]
The post Remix with Ryan Florence appeared first on Software Engineering Daily.
Convex makes storing your application’s data as easy as using React state management. If you can use React hooks, you can also manage your backend data using Convex. James Cowling is a former Dropbox infrastructure engineer turned startup founder. James joins the show to discuss how Convex offers a simpler full-stack developer experience than the tools developers use today — without many of the compromises of other alternatives. This episode is guest hosted by Jackson Gabbard, a long-time Facebook product engineer who is now the CTO of Cord — the SDK for collaboration in any SaaS tool.
Sponsorship inquiries: [email protected]
The post Global State Management with James Cowling appeared first on Software Engineering Daily.
Your feedback is valuable to us. Should you encounter any bugs, glitches, lack of functionality or other problems, please email us on [email protected] or join Moon.FM Telegram Group where you can talk directly to the dev team who are happy to answer any queries.