{"id":232057,"date":"2025-05-12T08:00:09","date_gmt":"2025-05-12T15:00:09","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/java\/?p=232057"},"modified":"2025-05-11T21:05:19","modified_gmt":"2025-05-12T04:05:19","slug":"the-state-of-coding-the-future-with-java-and-ai","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/java\/the-state-of-coding-the-future-with-java-and-ai\/","title":{"rendered":"The State of Coding the Future with Java and AI \u2013 May 2025"},"content":{"rendered":"<p><a href=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-Header-2x1-1-scaled.jpg\"><img decoding=\"async\" class=\"alignnone size-full wp-image-232070\" src=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-Header-2x1-1-scaled.jpg\" alt=\"Frame Header 2 215 1 image\" width=\"2500\" height=\"1250\" srcset=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-Header-2x1-1-scaled.jpg 2500w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-Header-2x1-1-300x150.jpg 300w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-Header-2x1-1-1024x512.jpg 1024w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-Header-2x1-1-768x384.jpg 768w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-Header-2x1-1-1536x768.jpg 1536w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-Header-2x1-1-2048x1024.jpg 2048w\" sizes=\"(max-width: 2500px) 100vw, 2500px\" \/><\/a><\/p>\n<p>Software development is changing fast, and Java developers are right in the middle of it &#8211; especially when it comes to using Artificial Intelligence (AI) in their apps. This report brings together feedback from 647 Java professionals to show where things stand and what is possible as Java and AI come together.<\/p>\n<p>One of the biggest takeaways is this: Java developers do not need to be experts in AI, machine learning, or Python. With tools like the Model Context Protocol (MCP) Java SDK, Spring AI, and LangChain4j, they can start adding smart features to their apps using the skills they already have. Whether it is making recommendations, spotting fraud, supporting natural language search or a world of possibilities, AI can be part of everyday Java development.<\/p>\n<p>The report walks through real-world approaches that Java developers are already using &#8211; things like Retrieval-Augmented Generation (RAG), vector databases, embeddings, and AI agents. These are not just buzzwords &#8211; they help teams build apps that work well at scale, stay secure, and are easier to manage over time. For teams figuring out where to start, the report includes guidance and simple workflows to make things easier.<\/p>\n<p>In short, Java is well-positioned to keep leading in enterprise software. This is an invitation to Java architects, tech leads, decision-makers, and developers to explore what is next and build smarter, more connected apps with AI.<\/p>\n<h2><a name=\"_Toc196812890\"><\/a>Introduction<\/h2>\n<p>The world of software development is changing fast. Over the past two years, we have seen a major shift \u2013 not just in tools and frameworks, but in how developers think about building software. Artificial Intelligence is now part of the everyday conversation \u2013 helping developers rethink what their applications can do and how quickly they can build them.<\/p>\n<p>In the middle of all this change, it helps to pause and look at where we are. Java developers are especially exploring how to add intelligence to their existing applications or build new ones that can learn, adapt, and scale. But with so many innovative ideas and so much information out there, the real question is \u2013 what are developers doing?<\/p>\n<p>To answer that, we reached out directly to Java professionals across the world. We wanted to understand their thinking, what they are trying, and what they need to move forward with confidence.<\/p>\n<p>Our invitation was simple &#8211;<\/p>\n<p><em>&#8220;Calling all Java pros \u2013 share your insights to help simplify AI-powered apps <\/em><em>\ud83d\udc49 aka.ms\/java-ai.&#8221;<\/em><\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-1-scaled.jpg\"><img decoding=\"async\" class=\"alignnone size-full wp-image-232058\" src=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-1-scaled.jpg\" alt=\"Frame 1 image\" width=\"2500\" height=\"1250\" srcset=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-1-scaled.jpg 2500w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-1-300x150.jpg 300w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-1-1024x512.jpg 1024w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-1-768x384.jpg 768w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-1-1536x768.jpg 1536w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-1-2048x1024.jpg 2048w\" sizes=\"(max-width: 2500px) 100vw, 2500px\" \/><\/a><\/p>\n<p>The response was strong. A total of 647 Java professionals took part:<\/p>\n<ul>\n<li>587 have experience with AI &#8211; representing a wide range of perspectives and levels of AI knowledge.<\/li>\n<li>60 have not yet explored AI &#8211; but are curious and eager to learn what is possible.<\/li>\n<\/ul>\n<p>Among all respondents:<\/p>\n<ul>\n<li>Two-thirds (67%) had 4 to 10 years of Java experience.<\/li>\n<li>One-third (33%) had more than 10 years of experience.<\/li>\n<\/ul>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-2-scaled.jpg\"><img decoding=\"async\" class=\"alignnone size-full wp-image-232059\" src=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-2-scaled.jpg\" alt=\"Frame 2 image\" width=\"2500\" height=\"1251\" srcset=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-2-scaled.jpg 2500w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-2-300x150.jpg 300w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-2-1024x512.jpg 1024w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-2-768x384.jpg 768w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-2-1536x769.jpg 1536w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-2-2048x1025.jpg 2048w\" sizes=\"(max-width: 2500px) 100vw, 2500px\" \/><\/a><\/p>\n<p>This report highlights what we learned \u2013 and what it means for the future of Java and AI.<\/p>\n<h2><a name=\"_Toc196812891\"><\/a>The Scenario We Asked Java Pros to Imagine<\/h2>\n<p>\u201cPicture yourself adding an AI-driven feature to an existing Java-based app or building a brand-new intelligent application. This feature might improve customer experience \u2013 such as personalized recommendations \u2013 optimize business processes \u2013 like fraud detection \u2013 or enhance product searches using natural language. Your goal is to seamlessly integrate this feature, ensuring it is easy to develop, scalable, and maintainable.\u201d<\/p>\n<p>An impressive 97 percent of respondents said they would choose Java for building this type of intelligent application.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-3-scaled.jpg\"><img decoding=\"async\" class=\"alignnone size-full wp-image-232060\" src=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-3-scaled.jpg\" alt=\"Frame 3 image\" width=\"2500\" height=\"1251\" srcset=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-3-scaled.jpg 2500w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-3-300x150.jpg 300w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-3-1024x512.jpg 1024w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-3-768x384.jpg 768w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-3-1536x768.jpg 1536w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-3-2048x1024.jpg 2048w\" sizes=\"(max-width: 2500px) 100vw, 2500px\" \/><\/a><\/p>\n<h3><a name=\"_Toc196812892\"><\/a>A Common Misconception<\/h3>\n<p>90 percent of respondents believed that building intelligent Java apps would require deep experience with AI, Machine Learning, or Python.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-4-scaled.jpg\"><img decoding=\"async\" class=\"alignnone size-full wp-image-232061\" src=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-4-scaled.jpg\" alt=\"Frame 4 image\" width=\"2500\" height=\"1250\" srcset=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-4-scaled.jpg 2500w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-4-300x150.jpg 300w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-4-1024x512.jpg 1024w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-4-768x384.jpg 768w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-4-1536x768.jpg 1536w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-4-2048x1024.jpg 2048w\" sizes=\"(max-width: 2500px) 100vw, 2500px\" \/><\/a><\/p>\n<h4><a name=\"_Toc196812893\"><\/a>Developers Can Start to Deliver Production-Grade Intelligent Java Apps without AI, ML, or Python Skills<\/h4>\n<h5><a name=\"_Toc196812894\"><\/a>Myth of AI\/ML and Java<\/h5>\n<ul>\n<li>Java developers already have what they need \u2013 today \u2013 to build intelligent applications using modern Java-first frameworks such as Model Context Protocol (MCP) Java SDK, Spring AI, or LangChain4j.<\/li>\n<li>No prior experience in Python or Machine Learning is required for Java developers to begin adding intelligent features to their apps.<\/li>\n<li>Connecting a Java application to backend AI systems \u2013 including Large Language Models and Vector Databases \u2013 is conceptually like working with REST APIs or traditional SQL and NoSQL databases.<\/li>\n<li>Modern libraries like MCP Java SDK, Spring AI, and LangChain4j make it easier for developers to build and enhance AI-powered Java applications. These frameworks offer support for:\n<ul>\n<li>Retrieval-Augmented Generation (RAG)<\/li>\n<li>Conversational memory<\/li>\n<li>Conversation logging<\/li>\n<li>Integration with vector stores<\/li>\n<li>Secure, observable, and safe-by-default interactions<\/li>\n<li>Streamed outputs and structured reasoning<\/li>\n<\/ul>\n<\/li>\n<li>Java continues to play a leading role in enterprise software. This gives Java developers a natural advantage \u2013 and a unique opportunity \u2013 to lead the way in delivering intelligent features inside core business applications.<\/li>\n<li>It is also important to note that tasks requiring deep AI and Data Science knowledge are best left to specialists. Java developers can focus on app logic, integration, and delivering business value without needing to become AI experts themselves.<\/li>\n<\/ul>\n<h4><a name=\"_Toc196812895\"><\/a>In-Process vs HTTP-Based &#8211; A Common Misstep in AI Application Design<\/h4>\n<p>AI-powered applications can be built in different ways &#8211; and one of the patterns is to embed the model directly within the same app that handles business logic and exposes the API. This is known as the in-process approach. In this setup, the model is loaded at runtime, using local weights and often relying on a GPU for inference. It is a convenient option &#8211; especially when working with models you have created from scratch or downloaded for use in your own application.<\/p>\n<h5><a id=\"The-Shift-to-Model-as-a-Service--A-Simple-History\"><\/a>The Shift to Model-as-a-Service &#8211; A Simple History<\/h5>\n<p>Before foundation models were made available as services, most AI models were custom-built for specific use cases \u2013 like classifying documents, detecting anomalies, or predicting demand. These models were typically developed in Python using frameworks such as TensorFlow or PyTorch. Because development and usage happened in the same environment, it was natural to load the model directly into the application\u2019s memory using local weights, and to rely on a local GPU for inference.<\/p>\n<p>This model-in-app pattern made sense when the app and the model were designed together. Many popular Python-based libraries, including PyTorch, TensorFlow, and Hugging Face Transformers, encourage this in-process setup by default. As a result, the model often becomes a local function call &#8211; tightly coupled to the application\u2019s logic and runtime.<\/p>\n<p>However, that convenience introduces scaling and maintenance challenges. Every application instance must run on a machine with GPU access. You must allocate GPU resources per app, even when the app is idle. As demand grows, this leads to higher infrastructure costs, lower resource efficiency, and architectural rigidity. If you scale the app, you are often forced to scale GPU capacity along with it &#8211; even if only the app&#8217;s business logic needs scaling.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-5-scaled.jpg\"><img decoding=\"async\" class=\"alignnone size-full wp-image-232062\" src=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-5-scaled.jpg\" alt=\"Frame 5 image\" width=\"2500\" height=\"1250\" srcset=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-5-scaled.jpg 2500w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-5-300x150.jpg 300w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-5-1024x512.jpg 1024w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-5-768x384.jpg 768w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-5-1536x768.jpg 1536w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-5-2048x1024.jpg 2048w\" sizes=\"(max-width: 2500px) 100vw, 2500px\" \/><\/a><\/p>\n<h5><a id=\"The-Rise-of-HTTP-Based-Integration-with-Model-as-a-Service\"><\/a>The Rise of HTTP-Based Integration with Model-as-a-Service<\/h5>\n<p>The introduction of foundation models like GPT-4, available through services such as OpenAI and Azure OpenAI, brought a shift in how models are used in applications. These models are designed to handle a wide range of tasks and are offered as cloud-hosted APIs &#8211; a model-as-a-service approach. Instead of embedding the model into each application, you send a request over HTTP and receive a response.<\/p>\n<p>This change enables a new design pattern: the application and the model are treated as separate services. The app handles business logic, while the model service handles inference. This pattern brings clear advantages &#8211; modularity, cleaner separation of concerns, centralized control over GPU infrastructure, and the ability to reuse models across many applications.<\/p>\n<p>The diagram above illustrates this shift. On the left, the in-process setup binds the model tightly to the application, requiring direct GPU access and local weights. On the right, the HTTP-based setup enables applications written in any language stack &#8211; such as Java, Python, JavaScript, .NET, or Go &#8211; to interact with a shared model endpoint over HTTP.<\/p>\n<p>This separation makes it easier to update models, manage infrastructure, including GPU infrastructure, and scale intelligently. It also reflects how most modern AI platforms are now built.<\/p>\n<p>HTTP-based integration is scalable, cost-effective, and designed for modern application environments. It reduces operational complexity and gives developers the flexibility to choose the architecture that fits their needs &#8211; without being locked into one stack, tools, models, or setup.<\/p>\n<h4><a id=\"Myth-about-Python\"><\/a>Myth about Python<\/h4>\n<p>As we listened to Java developers across the community, a familiar pattern emerged. Many shared their experiences &#8211; and sometimes frustrations &#8211; when working with AI technologies in Java. These were not just passing remarks. They reflected real challenges &#8211; especially when it came to building or training machine learning models, where Python has long been the preferred environment.<\/p>\n<p>Here is a glimpse into what we heard:<\/p>\n<ul>\n<li><em>\u201cJava has fewer AI-specific libraries compared to Python. Libraries like TensorFlow and PyTorch are more mature and feature-rich in Python, making it easier to implement complex AI models.\u201d<\/em><\/li>\n<li><em>\u201cWorking on AI-powered applications with Java presents challenges, especially when building or training models. The ecosystem is not as deep as Python\u2019s, which has tools like Scikit-learn and notebooks like Jupyter.\u201d<\/em><\/li>\n<li><em>\u201cEven though Java can be used for AI, the support for GPU acceleration is not as seamless as it is in Python. You need extra setup and tuning.\u201d<\/em><\/li>\n<li><em>\u201cThere are fewer Java developers with strong AI backgrounds. It is harder to find or grow a team when Python seems to be the go-to language for most ML engineers.\u201d<\/em><\/li>\n<\/ul>\n<p>These are all honest, valid observations. If the job-to-be-done is building foundation models, training models from scratch, or fine-tuning existing models, then Python is a natural choice. It offers the right tools, libraries, and ecosystem support to do that job well.<\/p>\n<p>But here is what really matters today:<\/p>\n<p>Most AI application developers &#8211; including those working in Java &#8211; are not training or fine-tuning models. They are not building models from the ground up or optimizing low-level GPU workloads. Instead, they are focused on a different job:<\/p>\n<ul>\n<li>Connecting to existing foundation models.<\/li>\n<li>Calling AI services over REST APIs.<\/li>\n<li>Using AI libraries like Spring AI and LangChain4j to orchestrate intelligent workflows.<\/li>\n<li>Querying vector databases.<\/li>\n<li>Embedding AI capabilities into production-grade enterprise applications.<\/li>\n<\/ul>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-6-scaled.jpg\"><img decoding=\"async\" class=\"alignnone size-full wp-image-232063\" src=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-6-scaled.jpg\" alt=\"Frame 6 image\" width=\"2500\" height=\"1250\" srcset=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-6-scaled.jpg 2500w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-6-300x150.jpg 300w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-6-1024x512.jpg 1024w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-6-768x384.jpg 768w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-6-1536x768.jpg 1536w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-6-2048x1024.jpg 2048w\" sizes=\"(max-width: 2500px) 100vw, 2500px\" \/><\/a><\/p>\n<p>This distinction is clearly reflected in the diagram above.<\/p>\n<p>On the right side, you see \u201cModel Training and Development\u201d as a separate, specialized job. It is critical work &#8211; best handled by teams with deep expertise in data science and model engineering. On the left side, you see the application architecture most Java developers work with every day: REST APIs, business logic, database integration, and calls to external AI models and vector stores using AI libraries.<\/p>\n<p>This is where Java fits.<\/p>\n<p>Java developers are not building models &#8211; they are building apps on top of foundation models.<\/p>\n<p>And with tools like MCP Java SDK, Spring AI, and LangChain4j, they are not playing catch-up &#8211; they are building what matters, integrate AI into existing apps and capabilities.<\/p>\n<p>You do not need to train models.<\/p>\n<p>You just need to wire up the right parts, connect to the services that make AI possible, and deliver intelligent functionality where it belongs &#8211; inside the applications your organization already depends on.<\/p>\n<p style=\"padding-left: 40px;\"><em>\u201cYou can be an AI application developer &#8211; in less than 2 minutes. <\/em><\/p>\n<p style=\"padding-left: 40px;\"><em>Minute 1: Sign up for access to an LLM &#8211; Azure OpenAI, OpenAI, whatever. Get yourself an API key. <\/em><\/p>\n<p style=\"padding-left: 40px;\"><em>Minute 2: Head to https:\/\/start.spring.io, specify `OpenAI` (or whatever), hit `Generate`, and then open your new Spring Boot + Spring AI project in your IDE. In your `application.properties`, you\u2019ll need to specify your API key. Then, inject the auto-configured `ChatClient` somewhere in your code. Use the `ChatClient` to make a request to your model. <\/em><\/p>\n<p style=\"padding-left: 40px;\"><em>Congratulations &#8211; you\u2019re an AI application developer!\u201d <strong>&#8212; Josh Long, Spring Developer Advocate, Broadcom<\/strong><\/em><\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-7-scaled.jpg\"><img decoding=\"async\" class=\"alignnone size-full wp-image-232064\" src=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-7-scaled.jpg\" alt=\"Frame 7 image\" width=\"2500\" height=\"1250\" srcset=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-7-scaled.jpg 2500w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-7-300x150.jpg 300w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-7-1024x512.jpg 1024w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-7-768x384.jpg 768w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-7-1536x768.jpg 1536w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-7-2048x1024.jpg 2048w\" sizes=\"(max-width: 2500px) 100vw, 2500px\" \/><\/a><\/p>\n<p style=\"padding-left: 40px;\"><em>&#8220;Is Java still relevant in this new era of AI?&#8221;<\/em><\/p>\n<p style=\"padding-left: 40px;\"><em>&#8220;How do I, with my years of Java expertise, even begin to work with these Large Language Models today?&#8221;<\/em><\/p>\n<p style=\"padding-left: 40px;\"><em>These are questions I have heard time and again at community events and industry conferences.<\/em><\/p>\n<p style=\"padding-left: 40px;\"><em>Today, Java developers are at a pivotal moment. Our existing skills are not just still relevant &#8211; they are the foundation for building the next generation of AI-powered applications. Thanks to frameworks like Quarkus, Langchain4j, and MCP integration, we can bridge the world of traditional enterprise development with the fast-growing world of AI &#8211; all without giving up the strengths and familiarity of Java.\u201d <strong>\u2013 Daniel Oh, Senior Principal Developer Advocate, Red Hat<\/strong><\/em><\/p>\n<p><em> <a href=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-8-low-res-scaled.jpg\"><img decoding=\"async\" class=\"alignnone size-full wp-image-232073\" src=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-8-low-res-scaled.jpg\" alt=\"Frame 8 low res image\" width=\"2500\" height=\"1250\" srcset=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-8-low-res-scaled.jpg 2500w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-8-low-res-300x150.jpg 300w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-8-low-res-1024x512.jpg 1024w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-8-low-res-768x384.jpg 768w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-8-low-res-1536x768.jpg 1536w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-8-low-res-2048x1024.jpg 2048w\" sizes=\"(max-width: 2500px) 100vw, 2500px\" \/><\/a><\/em><\/p>\n<p>The future of AI in software development will be defined by who integrates AI well into applications &#8211; both existing and new apps. Most AI-related development will be connecting models to solve real problems inside real applications. And in that space, Java is already strong. From financial services to healthcare, logistics to manufacturing &#8211; Java powers the business logic and workflows that now need to become intelligent.<\/p>\n<p>This is where Java developers shine. And with the right tools, they are more than ready to lead.<\/p>\n<h2><a name=\"_Toc196812896\"><\/a>Crucial Elements for Java AI Applications<\/h2>\n<p>As we looked deeper into the survey results, one thing became clear \u2013 Java developers are not just interested in adding AI for the sake of it. They are focused on building practical, enterprise-ready features that are reliable, secure, and easy to maintain.<\/p>\n<p>98% of respondents highlighted a core set of approaches or elements that they see as essential for any AI-powered Java application:<\/p>\n<ul>\n<li>Retrieval-Augmented Generation (RAG) \u2013 Bringing real-time, context-aware answers by grounding responses in trusted data. This is especially useful in enterprise scenarios where accuracy and context matter.<\/li>\n<li>Embeddings and Vector Databases \u2013 Enabling efficient semantic search and advanced knowledge retrieval. Developers recognize this as the key to making applications \u201cunderstand\u201d the meaning behind user inputs.<\/li>\n<li>Function Calling or Tool Calling \u2013 Allowing AI models to interact with APIs, pull in real-time data, or trigger backend workflows. This is where AI starts to act \u2013 not just suggest \u2013 making it a true part of the application logic.<\/li>\n<li>AI Agents \u2013 These are not just chatbots. Agents are intelligent programs that can automate or assist with tasks on behalf of users or teams. They combine reasoning, memory, and action \u2013 gathering information and triggering responses dynamically. For many developers, agents represent the next step toward intelligent automation inside business-critical workflows.<\/li>\n<\/ul>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-9-scaled.jpg\"><img decoding=\"async\" class=\"alignnone size-full wp-image-232065\" src=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-9-scaled.jpg\" alt=\"Frame 9 image\" width=\"2500\" height=\"1250\" srcset=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-9-scaled.jpg 2500w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-9-300x150.jpg 300w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-9-1024x512.jpg 1024w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-9-768x384.jpg 768w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-9-1536x768.jpg 1536w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-9-2048x1024.jpg 2048w\" sizes=\"(max-width: 2500px) 100vw, 2500px\" \/><\/a><\/p>\n<h3><a name=\"_Toc196812897\"><\/a>Fundamentals for Enterprise-Grade AI Applications<\/h3>\n<p>When building applications for the enterprise, developers know that intelligence alone is not enough. Trust, safety, and integration matter just as much. These are the foundational features Java developers called out:<\/p>\n<ul>\n<li>Security and Access Control \u2013 Making sure AI features respect user roles, protect sensitive data, and fit into enterprise identity systems.<\/li>\n<li>Safety and Compliance \u2013 Filtering outputs to align with internal policies, legal regulations, and brand standards. This is especially important for customer-facing features.<\/li>\n<li>Observability \u2013 Tracking how AI decisions are made, logging user and AI interactions, and making sure there is a clear record of what happened \u2013 and why.<\/li>\n<li>Structured Outputs \u2013 AI responses need to work within the system, not outside it. Structured formats \u2013 like JSON or XML \u2013 ensure smooth handoffs between the AI component and the rest of the application.<\/li>\n<li>Reasoning and Explainability \u2013 Developers want AI features that can explain their answers, show their sources, and help users trust the output \u2013 especially in domains like finance, healthcare, or compliance.<\/li>\n<\/ul>\n<h3><a name=\"_Toc196812898\"><\/a>Representative Scenarios and Business Impact<\/h3>\n<p>To make things more concrete, let us look at two sample scenarios. These are not the only ones \u2013 just representative examples to help spark ideas. There is a broad and growing range of real-world situations where Java developers can use AI to create business value.<\/p>\n<h4><a name=\"_Toc196812899\"><\/a>Scenario One \u2013 Intelligent Workflow Automation<\/h4>\n<p>Imagine a production manager at an auto manufacturer &#8211; say, Mercedes-Benz or Ford &#8211; who needs to align the assembly line schedule with real-time component availability and constantly shifting order priorities.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-10-low-res-scaled.jpg\"><img decoding=\"async\" class=\"alignnone size-full wp-image-232074\" src=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-10-low-res-scaled.jpg\" alt=\"Frame 10 low res image\" width=\"2500\" height=\"1251\" srcset=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-10-low-res-scaled.jpg 2500w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-10-low-res-300x150.jpg 300w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-10-low-res-1024x512.jpg 1024w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-10-low-res-768x384.jpg 768w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-10-low-res-1536x768.jpg 1536w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-10-low-res-2048x1025.jpg 2048w\" sizes=\"(max-width: 2500px) 100vw, 2500px\" \/><\/a><\/p>\n<p>The manager\u2019s question is urgent and complex: \u201cHow can I adjust the production schedule based on today\u2019s parts inventory and current orders?\u201d Answering means pulling in data from ERP systems, supply chain feeds, vendor dashboards, and manufacturing operations &#8211; a level of complexity that can overwhelm even experienced teams. This is where AI steps in as a true copilot &#8211; working alongside the human decision-maker to gather data, flag supply constraints, and highlight scheduling options. Together, they can plan faster, adapt more confidently, and respond to change in real time.<\/p>\n<p>For Java developers, this is an opportunity to build intelligent systems that bring together data from ERP, inventory, and order management applications &#8211; enabling AI models to interact with information and collaborate with decision-makers. These systems do not rely on AI alone; they depend on strong data integration and reliable workflows &#8211; all of which can be designed, secured, and scaled within the Java ecosystem. In this way, AI becomes part of a co-working loop &#8211; and Java developers are the ones who make that loop real.<\/p>\n<h4><a name=\"_Toc196812900\"><\/a>Scenario Two \u2013 AI-Powered Process Assistants<\/h4>\n<p>Picture a logistics manager at a major shipping company &#8211; FedEx, UPS, or DHL &#8211; facing cascading delays due to severe weather across multiple regions. The manager is under pressure to reroute packages efficiently while minimizing disruptions to downstream delivery schedules.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-11-low-res-scaled.jpg\"><img decoding=\"async\" class=\"alignnone size-full wp-image-232075\" src=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-11-low-res-scaled.jpg\" alt=\"Frame 11 low res image\" width=\"2500\" height=\"1250\" srcset=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-11-low-res-scaled.jpg 2500w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-11-low-res-300x150.jpg 300w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-11-low-res-1024x512.jpg 1024w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-11-low-res-768x384.jpg 768w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-11-low-res-1536x768.jpg 1536w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-11-low-res-2048x1024.jpg 2048w\" sizes=\"(max-width: 2500px) 100vw, 2500px\" \/><\/a><\/p>\n<p>The question is urgent: \u201cWhat is the fastest rerouting option for delayed packages due to weather?\u201d Answering requires combining live weather feeds, traffic data, delivery schedules, hub capacities, and driver availability &#8211; all in real time. AI acts as a true copilot at this moment, working alongside the manager to collect relevant signals, flag risk zones, and generate rerouting recommendations. Together, they respond with speed and clarity, keeping shipments moving and customers informed.<\/p>\n<p>For Java teams, this is a practical opportunity to build intelligent systems that embed AI into logistics, supply chain, and delivery operations &#8211; not by rebuilding everything, but by integrating the right data streams, APIs, and business logic. The real value lies in data orchestration, not just algorithms. Java developers are key to enabling these AI-powered assistants by securing connections across systems and building workflows that help humans and AI collaborate effectively under pressure.<\/p>\n<h4><a name=\"_Toc196812901\"><\/a>More Scenarios \u2013 World of Possibilities<\/h4>\n<p>These two scenarios only scratch the surface. Developers across industries \u2013 from healthcare and finance to retail and public services \u2013 are finding ways to integrate AI that solve meaningful problems, reduce complexity, and improve how their systems perform.<\/p>\n<h2><a name=\"_Toc196812902\"><\/a>Java and AI Technology Stack<\/h2>\n<p>So far, we have looked at what developers want to build and how AI is changing the way applications are designed. Now, let us look at the platform behind it all \u2013 the technology stack that powers intelligent Java applications.<\/p>\n<p>To bring these ideas to life and impact, Java developers need a foundation that connects data, apps, and AI services. We call this an AI application platform. It is not a specific product \u2013 it is an integrated platform made up of components that most developer teams already use or are familiar with.<\/p>\n<p>The goal of this platform is to make developers more productive while building intelligent features into their applications. It gives teams the freedom to choose familiar tools \u2013 while making it easier to bring in AI capabilities when and where they are needed.<\/p>\n<p>We group this platform into three areas:<\/p>\n<ul>\n<li>The app platform<\/li>\n<li>The data platform<\/li>\n<li>The AI platform<\/li>\n<\/ul>\n<p>Let us break it down using the numbered diagram:<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-12-scaled.jpg\"><img decoding=\"async\" class=\"alignnone size-full wp-image-232066\" src=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-12-scaled.jpg\" alt=\"Frame 12 image\" width=\"2500\" height=\"1250\" srcset=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-12-scaled.jpg 2500w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-12-300x150.jpg 300w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-12-1024x512.jpg 1024w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-12-768x384.jpg 768w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-12-1536x768.jpg 1536w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-12-2048x1024.jpg 2048w\" sizes=\"(max-width: 2500px) 100vw, 2500px\" \/><\/a><\/p>\n<ul>\n<li>Developer Services: These are the core tools that developers use every day \u2013 IDEs, coding assistants, build tools, testing frameworks, CI\/CD pipelines. They help you write, debug, and manage application code across your team.<\/li>\n<li>Container Services | Platform-as-a-Service: This is the runtime layer \u2013 where your applications are deployed and scaled. Whether using containers or a managed platform, this layer handles traffic, performance, and operational efficiency.<\/li>\n<li>Data Platform: This is where your application data lives \u2013 databases, data lakes, and other storage services. It connects structured data, business logic, and real-time events.<\/li>\n<li>AI Platform: This is where intelligence is added. It includes access to large language models, embeddings, vector search, and other tools that support natural language interactions, automation, and decision-making.<\/li>\n<\/ul>\n<p>Together, these four parts form the foundation for building, deploying, and managing AI-powered Java applications.<\/p>\n<h3><a name=\"_Toc196812903\"><\/a>Technology Stacks for Spring Boot and Quarkus Applications<\/h3>\n<p>To make this more relatable, we highlighted two of the most widely adopted Java frameworks \u2013 Spring Boot and Quarkus. These stacks represent popular combinations that many Java teams are already using today for building cloud-native applications.<\/p>\n<p>That said, these are just representative examples. There are many valid combinations that developers, platform teams, and organizations can choose \u2013 based on their existing tools, workloads, and team preferences.<\/p>\n<h6><a name=\"_Toc196812904\"><\/a>Representative Spring Boot Stack<\/h6>\n<ul>\n<li>App Platform: App hosting service of choice<\/li>\n<li>AI Library: Spring AI<\/li>\n<li>AI Platform: OpenAI<\/li>\n<li>Business Data: PostgreSQL<\/li>\n<li>Vector Database: PostgreSQL<\/li>\n<\/ul>\n<h6><a name=\"_Toc196812905\"><\/a>Representative Quarkus Stack<\/h6>\n<ul>\n<li>App Platform: App hosting service of choice<\/li>\n<li>AI Library: LangChain4j<\/li>\n<li>AI Platform: OpenAI<\/li>\n<li>Business Data: PostgreSQL<\/li>\n<li>Vector Database: PostgreSQL<\/li>\n<\/ul>\n<p>Both stacks support the core capabilities needed for building intelligent apps \u2013 from secure model access and real-time data integration to observability and system-level debugging.<\/p>\n<p>But the opportunity does not stop there.<\/p>\n<h3><a name=\"_Toc196812906\"><\/a>Traditional App Servers\u00a0 &#8211; Tomcat, WebLogic, JBoss EAP or WebSphere<\/h3>\n<p>Many enterprise applications continue to run on Tomcat, WebLogic, JBoss EAP, or WebSphere. These are stable platforms that power core business systems \u2013 and they are very much part of the AI journey.<\/p>\n<p>If you are running on one of these platforms, you can still bring intelligence into your applications. By using a Java library of choice (Spring AI or LangChain4j) , you can connect these applications to Large Language Models (LLMs) and Model Context Protocol (MCP) servers \u2013 without needing to rewrite or migrate them.<\/p>\n<p>This means that intelligence can be added, not just rebuilt \u2013 a powerful approach for teams with large existing investments in Java EE or Jakarta EE applications.<\/p>\n<p>Whether your Java app is built with Spring Boot, Quarkus, or deployed on a traditional app server, the tools are here \u2013 and the path to intelligent applications is open. You do not have to start from scratch. You can start from where you are.<\/p>\n<h3><a name=\"_Toc196812907\"><\/a>Java and MCP \u2013 The Bridge to Intelligent Applications<\/h3>\n<p>One of the most important parts of the Java and AI story is MCP &#8211; the Model Context Protocol. MCP is an open, flexible, and interoperable standard that allows large language models to connect with the outside world &#8211; and more importantly, with real applications and real data.<\/p>\n<p>At its core, MCP is a bridge &#8211; a structured way for models to access enterprise data, invoke tools, and collaborate with AI agents. It gives developers control over how data moves, how decisions are made, and how actions are triggered. The result is safer, more predictable AI behavior inside real-world systems.<\/p>\n<p>MCP servers can be implemented in any language stack \u2013 such as Java, C#, Python, and NodeJS &#8211; and integrated into any AI-powered application, regardless of how that application is written. That interoperability makes MCP especially valuable for teams working across systems and languages.<\/p>\n<p>If you are building an MCP server using Java, the official MCP Java SDK maintained by Anthropic provides the right starting point. You can also use frameworks like Spring or Quarkus to implement MCP servers with full enterprise capabilities.<\/p>\n<p>For those building applications using Spring AI or LangChain4j, both libraries support connecting to any MCP server &#8211; whether running locally or remotely &#8211; to orchestrate tools, call functions, and manage agent behavior as part of the runtime flow.<\/p>\n<p>In addition, ready-to-use implementations like the Azure MCP Server make it easier to add intelligence to backends, orchestrate workflows, and shape AI agent behavior without starting from scratch.<\/p>\n<h4><a name=\"_Toc196812908\"><\/a><a id=\"Authentication-and-Authorization\"><\/a>Authentication and Authorization<\/h4>\n<p>Security is a critical part of any enterprise-grade solution &#8211; and MCP is no exception.<\/p>\n<p>In collaboration with Anthropic, Microsoft proposed a new authorization specification for MCP. This specification has now been finalized and is being implemented across MCP clients and servers to ensure that all interactions are secure, policy-driven, and consistent across environments.<\/p>\n<p>This continued investment in standards, tooling, and security is helping MCP mature into a core enabler of intelligent applications &#8211; especially for enterprise Java teams looking to move fast without compromising on trust or control.<\/p>\n<h3><a name=\"_Toc196812909\"><\/a>Preferred Libraries \u2013 What Java Developers Are Choosing<\/h3>\n<p>As part of our outreach to 647 Java professionals, we asked a key question:<\/p>\n<p>\u201cWhich AI frameworks or libraries would you consider for building or integrating intelligence into Java applications?\u201d<\/p>\n<p>Here is what they told us:<\/p>\n<ul>\n<li>Spring AI &#8211; selected by 43 percent.<\/li>\n<li>LangChain4j \u2013 preferred by 37 percent.<\/li>\n<\/ul>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-13-scaled.jpg\"><img decoding=\"async\" class=\"alignnone size-full wp-image-232067\" src=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-13-scaled.jpg\" alt=\"Frame 13 image\" width=\"2500\" height=\"1250\" srcset=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-13-scaled.jpg 2500w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-13-300x150.jpg 300w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-13-1024x512.jpg 1024w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-13-768x384.jpg 768w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-13-1536x768.jpg 1536w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-13-2048x1024.jpg 2048w\" sizes=\"(max-width: 2500px) 100vw, 2500px\" \/><\/a><\/p>\n<p>These two libraries clearly lead the way. They reflect the maturity of the Java ecosystem and show strong alignment with the two most active communities \u2013 Spring and Jakarta EE.<\/p>\n<p>Spring AI and LangChain4j offer higher-level abstractions that simplify how developers connect to AI services, manage context, interact with models, and build intelligent features. For developers already working in Spring Boot or Quarkus, these libraries feel familiar \u2013 and that lowers the barrier to adding intelligent capabilities into existing codebases.<\/p>\n<h4><a name=\"_Toc196812910\"><\/a>Other Developer Preferences<\/h4>\n<p>At the same time, a considerable number of developers \u2013 37 percent and 29 percent \u2013 also shared that they would prefer to work directly with AI service provider libraries or call REST APIs.<\/p>\n<p>This is not a surprise. In fact, it is a healthy signal. Many teams use these lower-level integrations to gain early access to new features or customize interactions in ways that higher-level libraries may not yet support.<\/p>\n<p>It is important that these developers know: You are not wrong &#8211; but you are not alone either.<\/p>\n<p>While direct API integration offers flexibility, AI libraries like Spring AI and LangChain4j are designed to make those experiences easier. They wrap the complexity, manage context, offer tested patterns that align with enterprise application needs &#8211; like observability, security, and structured outputs \u2013 plug your code into the Spring and Java ecosystem of possibilities for deep integration.<\/p>\n<h4><a name=\"_Toc196812911\"><\/a>Evolving Together<\/h4>\n<p>As AI services evolve, day-zero support will almost always appear first in the service provider\u2019s native SDKs and REST APIs. That is expected. But as those capabilities stabilize, AI libraries like Spring AI and LangChain4j will latch on \u2013 offering developers a smoother, more consistent programming experience.<\/p>\n<p>The result: Developers get to start fast with APIs \u2013 and scale confidently with higher level libraries and frameworks.<\/p>\n<h2><a name=\"_Toc196812912\"><\/a>Top Challenges and Areas Needing Improvement<\/h2>\n<p>As part of our research, we asked 647 Java professionals to share the biggest challenges they face \u2013 and where they believe improvements would help the most. The answers reflected where the community is today \u2013 eager to build but still facing some friction points.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-14-scaled.jpg\"><img decoding=\"async\" class=\"alignnone size-full wp-image-232068\" src=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-14-scaled.jpg\" alt=\"Frame 14 image\" width=\"2500\" height=\"1250\" srcset=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-14-scaled.jpg 2500w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-14-300x150.jpg 300w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-14-1024x512.jpg 1024w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-14-768x384.jpg 768w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-14-1536x768.jpg 1536w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-14-2048x1024.jpg 2048w\" sizes=\"(max-width: 2500px) 100vw, 2500px\" \/><\/a><\/p>\n<h3><a name=\"_Toc196812913\"><\/a>Top Challenges Java Developers Encounter<\/h3>\n<ul>\n<li>Lack of clear starting points and step-by-step guidance.<\/li>\n<li>Feeling overwhelmed by the variety of AI models, libraries, and tools.<\/li>\n<li>Misconceptions that machine learning expertise is required.<\/li>\n<li>Complexity with integrating AI features into existing applications &#8211; particularly introduced by suboptimal patterns such as directly calling REST APIs through low-level HTTP libraries, invoking Python-based routines through external OS processes, or loading models into the application\u2019s memory at runtime using local weights and GPU resources.<\/li>\n<li>Missing features in some of the current libraries and frameworks.<\/li>\n<li>Uncertainty about scaling applications and safely using private models on the cloud.<\/li>\n<\/ul>\n<h3><a name=\"_Toc196812914\"><\/a>Areas Developers Believe Need the Most Improvement<\/h3>\n<ul>\n<li>Clear and practical step-by-step workflows.<\/li>\n<li>Guidance on how to securely integrate private models.<\/li>\n<li>Examples that show how to use chat models for function calling and streaming completions.<\/li>\n<li>Educational content that explains completions, reasoning, and data validation.<\/li>\n<li>Tools and how-to guides for embedding-based search and question answering.<\/li>\n<li>Tutorials on how to leverage external data to improve model output.<\/li>\n<\/ul>\n<h3><a name=\"_Toc196812915\"><\/a>Java Developers \u2013 Familiar with AI vs. New to AI<\/h3>\n<p>Among all respondents:<\/p>\n<ul>\n<li>87 percent are familiar with AI.<\/li>\n<li>13 percent are newer to AI and just getting started.<\/li>\n<\/ul>\n<h4><a name=\"_Toc196812916\"><\/a>Java Developers New to AI<\/h4>\n<p>These developers are exploring use cases, evaluating models, and building early prototypes. Their top challenges are:<\/p>\n<ul>\n<li>Lack of clear starting points.<\/li>\n<li>Too many options in terms of tools and models.<\/li>\n<li>Need for simple, practical guidance.<\/li>\n<\/ul>\n<p>The top areas that will benefit them:<\/p>\n<ul>\n<li>Step-by-step development workflows.<\/li>\n<li>Examples of using chat models and completions.<\/li>\n<li>Simple breakdowns of key concepts like reasoning and validation.<\/li>\n<\/ul>\n<h4><a name=\"_Toc196812917\"><\/a>Java Developers Familiar with AI<\/h4>\n<p>These developers are further along \u2013 often in development or production stages \u2013 and face a wide range of challenges. A top need for them is:<\/p>\n<ul>\n<li>Secure ways to integrate private models into Java apps.<\/li>\n<li>They also benefit from deeper technical content, patterns, and advanced tooling support.<\/li>\n<\/ul>\n<h3><a name=\"_Toc196812918\"><\/a>Moving Forward with Confidence<\/h3>\n<p>This space is evolving faster than anyone expected \u2013 and that can feel overwhelming. But the top challenges Java developers face are real, and the community is actively addressing them.<\/p>\n<p>It is important not to worry about the number of tools, models, or libraries. That diversity is a sign of progress. Models will keep evolving. New ones will arrive. And this is exactly where higher-level Java libraries step in.<\/p>\n<p>Spring AI, LangChain4j, and the MCP Java SDK are designed to simplify the path forward. These libraries create a layer of abstraction that shields your application code from constant changes. You can build once \u2013 and switch models or providers as needed, without rewriting core logic.<\/p>\n<p>And these libraries are alive. You can see them in action on GitHub \u2013 through open issues, pull requests, and rapid updates. If you see a missing feature, open an issue. If you want to contribute, send a pull request. These are responsive communities that welcome participation.<\/p>\n<p style=\"padding-left: 40px;\"><em>\u201cAI, for most people today, effectively means &#8220;sending human-language sentences to an HTTP endpoint.&#8221; 80% of the noise right now is about the artful and scalable connection of these models with your data and business logic &#8211; data guarded by services whose business logic is statistically implemented in Spring Boot and Spring AI. We, as JVM developers, are uniquely well-positioned to expand the AI universe. <\/em><\/p>\n<p style=\"padding-left: 40px;\"><em>Don\u2019t delay &#8211; start (spring.io) today!\u201d <strong>&#8212; Josh Long, Spring Developer Advocate, Broadcom<\/strong><\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p style=\"padding-left: 40px;\"><em>\u201cBy combining Quarkus\u2019s speed, Langchain4j\u2019s AI orchestration, and MCP\u2019s unified tool access, Java developers are in a unique position to lead this transformation &#8211; building intelligent, resilient applications using the tools and approaches we know well. Working with AI is no longer a distant specialty &#8211; it is becoming a natural part of modern Java development\u201d\u00a0 <strong>&#8212; Daniel Oh, Senior Principal Developer Advocate, Red Hat<\/strong><\/em><\/p>\n<h3><a id=\"AI-Concepts\"><\/a>AI Concepts for App Developers<\/h3>\n<p>As you build your first intelligent Java applications, it helps to become familiar with key AI concepts such as foundation models, chat models, embedding models, prompts, inference endpoints, context windows, and vector search (see diagram below for a curated list). These concepts are not just theory &#8211; they directly shape how your applications interact with AI systems.<\/p>\n<p>To make it easier, we created a simple learning prompt that you can use with your favorite Chat Model like ChatGPT and Claude:<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-15-scaled.jpg\"><img decoding=\"async\" class=\"alignnone size-full wp-image-232069\" src=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-15-scaled.jpg\" alt=\"Frame 15 image\" width=\"2500\" height=\"1250\" srcset=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-15-scaled.jpg 2500w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-15-300x150.jpg 300w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-15-1024x512.jpg 1024w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-15-768x384.jpg 768w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-15-1536x768.jpg 1536w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-15-2048x1024.jpg 2048w\" sizes=\"(max-width: 2500px) 100vw, 2500px\" \/><\/a><\/p>\n<p><code><em>Prompt Template for Java Developers Learning AI Concepts<\/em><\/code><\/p>\n<p><code><em>(Replace &lt;TERM&gt; with the topic you want to learn.)<\/em><\/code><\/p>\n<p><code><em>\u00a0<\/em><\/code><\/p>\n<p><code><em>I am a Java enterprise app developer focused on building AI-powered Java applications.<\/em><\/code><\/p>\n<p><code><em>I do not fully understand what '&lt;TERM&gt;' means.<\/em><\/code><\/p>\n<p><code><em>Please explain it to me so simply that I can think about it like a Java library or service I would naturally use.<\/em><\/code><\/p>\n<p><code><em>Use examples from enterprise Java (like APIs, search, summarization, customer service bots) that I would typically build.<\/em><\/code><\/p>\n<p><code><em>If possible, give a mental model I can remember and relate to Java patterns.<\/em><\/code><\/p>\n<p><code><em>Also, suggest a small sample of how I would use '&lt;TERM&gt;' via an API in a Java app, if that helps understanding.<\/em><\/code><\/p>\n<p>You can replace &lt;TERM&gt; with any concept you want to learn, such as &#8220;Embedding Model&#8221; or &#8220;Inference Endpoint,&#8221; and get a focused, practical explanation that fits how you already think as a Java developer.<\/p>\n<p>By practicing with this method, you can quickly build second-nature familiarity with the terms and ideas behind AI development &#8211; without needing a research background. With the strong foundation you already have in Java, you will be ready to confidently integrate, adapt, and innovate as AI tools continue to evolve.<\/p>\n<h3><a id=\"AI-is-now-a-Java-Developers-Game\"><\/a>AI Is Now a Java Developer\u2019s Game<\/h3>\n<p>You do not need to train your own models to start building intelligent applications. You can do it today &#8211; using popular, production-ready foundation models &#8211; all within the Java ecosystem you already know and trust. These are still Java applications at their core.<\/p>\n<p>What sets you apart is not just your Java expertise &#8211; it is your deep understanding of how real business processes work and how to bring them to life in code. You know how to build, secure, scale, and operate reliable systems &#8211; and now, you can apply those same skills to deliver AI-powered solutions that run in the environments your teams already use, including Microsoft Azure.<\/p>\n<h2><a name=\"_Toc196812919\"><\/a>AI-Assisted App Development \u2013 A Powerful Companion to Building Intelligent Java Apps<\/h2>\n<p>No discussion about the future of software development is complete without acknowledging the rise of AI-assisted development. This is a separate &#8211; but equally important &#8211; path alongside building intelligent applications. And it is transforming how developers write, upgrade, and manage code.<\/p>\n<p>At the center of this shift is tools like GitHub Copilot &#8211; a tool that is reshaping how developers approach their daily work.<\/p>\n<p>Developers using GitHub Copilot report coding up to 55 percent faster, freeing up time to focus on design decisions, solving business problems, and writing less boilerplate code. But the benefits go deeper than speed &#8211; 75 percent of developers say that Copilot makes their work more satisfying.<\/p>\n<p>Today, 46 percent of all code on GitHub is written with AI assistance, and over 20,000 organizations are already embracing these tools to improve development workflows and accelerate delivery.<\/p>\n<h3><a name=\"_Toc196812920\"><\/a>Built Into the Tools You Already Use<\/h3>\n<p>GitHub Copilot works where Java developers already build \u2013 in IDEs like Visual Studio Code, IntelliJ, and Eclipse. It brings contextual, customizable assistance, powered by the latest models such as gpt-4o and Claude 3.5 Sonnet.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-16-lower-res-2-scaled.jpg\"><img decoding=\"async\" class=\"alignnone size-full wp-image-232077\" src=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-16-lower-res-2-scaled.jpg\" alt=\"Frame 16 lower res 2 image\" width=\"2500\" height=\"1406\" srcset=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-16-lower-res-2-scaled.jpg 2500w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-16-lower-res-2-300x169.jpg 300w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-16-lower-res-2-1024x576.jpg 1024w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-16-lower-res-2-768x432.jpg 768w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-16-lower-res-2-1536x864.jpg 1536w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-16-lower-res-2-2048x1152.jpg 2048w\" sizes=\"(max-width: 2500px) 100vw, 2500px\" \/><\/a><\/p>\n<p>Whether it is suggesting code snippets, auto-completing functions, or helping enforce best practices, GitHub Copilot enhances the quality of code and the productivity of developers \u2013 all while keeping them in control.<\/p>\n<h3><a name=\"_Toc196812921\"><\/a>Helping Modernize and Maintain Java Codebases<\/h3>\n<p>One of the most exciting capabilities is GitHub Copilot\u2019s growing role in modernizing Java applications. Late last year, the GitHub Copilot App Modernization \u2013 Java Upgrade feature entered private preview.<\/p>\n<p>This tool is designed to support large, mission-critical tasks like:<\/p>\n<ul>\n<li>Upgrading Java versions and frameworks<\/li>\n<li>Refactoring code<\/li>\n<li>Updating dependencies<\/li>\n<li>Aligning to cloud-first practices<\/li>\n<\/ul>\n<p>The process starts with your local Java project. Copilot provides an AI-generated upgrade assistant, and developers stay in the loop to approve changes step-by-step. The goal is to take the heavy lifting out of routine upgrades while ensuring everything remains safe and aligned with your architecture.<\/p>\n<h3><a name=\"_Toc196812922\"><\/a>Beyond App Code \u2013 Towards Cloud-Ready Modernization<\/h3>\n<p>Technology providers like Microsoft are investing deeply in this space to bring additional capabilities into developer workflows \u2013 including:<\/p>\n<ul>\n<li>Secure identity handling through passwordless authentication<\/li>\n<li>Certificate management and secrets handling<\/li>\n<li>Integration with PaaS services for storage, data, caching, and observability<\/li>\n<\/ul>\n<p>All of this reduces the time it takes to bring legacy apps forward and prepare them for modern, scalable deployments \u2013 so teams can spend more time building intelligent features and less time managing technical debt.<\/p>\n<h3><a name=\"_Toc196812923\"><\/a>Two Paths \u2013 One Goal<\/h3>\n<p>AI-assisted development, including upgrading and modernizing apps with AI, and building intelligent apps are not the same \u2013 but together, they form a powerful foundation. One helps you write and modernize code faster, the other helps you deliver smarter features inside your apps.<\/p>\n<p>For Java developers, this means there is support at every step \u2013 from idea to implementation to impact.<\/p>\n<h2><a name=\"_Toc196812924\"><\/a>Start Today and Move the Java Community Forward<\/h2>\n<p>The message from 647 Java professionals is clear: Java developers are ready \u2013 and the tools they need to build intelligent applications are already here.<\/p>\n<p>If you are a Java developer and have not started your AI journey yet now is the right time. You do not need to become an AI expert. You do not need to change your language, tools, or working style. Modern Java frameworks and libraries like Spring AI, LangChain4j, and the MCP Java SDK are designed to work the way you already build \u2013 while making it easier to add intelligence, automation, and smart experiences to your applications.<\/p>\n<p>You can start with what you know \u2013 and grow into what is next: <a href=\"https:\/\/aka.ms\/spring-ai\">aka.ms\/spring-ai<\/a> and <a href=\"https:\/\/aka.ms\/langchain4j\">aka.ms\/langchain4j<\/a>.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-17-low-res-scaled.jpg\"><img decoding=\"async\" class=\"alignnone size-full wp-image-232078\" src=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-17-low-res-scaled.jpg\" alt=\"Frame 17 low res image\" width=\"2500\" height=\"1250\" srcset=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-17-low-res-scaled.jpg 2500w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-17-low-res-300x150.jpg 300w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-17-low-res-1024x512.jpg 1024w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-17-low-res-768x384.jpg 768w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-17-low-res-1536x768.jpg 1536w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Frame-17-low-res-2048x1024.jpg 2048w\" sizes=\"(max-width: 2500px) 100vw, 2500px\" \/><\/a><\/p>\n<h3><a name=\"_Toc196812925\"><\/a>To Java Ecosystem Leaders<\/h3>\n<p>We also want to speak directly to those shaping the Java ecosystem \u2013 community leaders, experienced developers, and technical influencers. Your role is more important than ever.<\/p>\n<p>We invite you to:<\/p>\n<ul>\n<li>Show what is possible \u2013 share real examples of how AI features can be integrated into Java applications with minimal friction.<\/li>\n<li>Promote best practices \u2013 use meetups, blogs, workshops, and developer forums to spread practical guidance and patterns that others can follow.<\/li>\n<li>Improve the experience \u2013 contribute documentation, examples, and even code to help close the gaps developers face when starting their AI journeys.<\/li>\n<li>Push frameworks forward \u2013 help identify and implement missing features that can simplify Java + AI integration and speed up real-world adoption.<\/li>\n<\/ul>\n<p>This is not just about tools \u2013 it is about people helping people move forward.<\/p>\n<p>Many of you already helped make this research possible \u2013 by spreading the word on LinkedIn, sharing the survey, and encouraging others to contribute. Your support made a difference. And now, these findings belong to the entire Java ecosystem \u2013 so we can act on them together.<\/p>\n<h3><a name=\"_Toc196812926\"><\/a>To the Java Developers Who Participated<\/h3>\n<p>Thank you.<\/p>\n<p>Your input \u2013 your time, your thoughts, your challenges, your ideas \u2013 shaped this entire report. You told us what is working, what is missing, and what you need next. We hope this reflection of your voices is helpful \u2013 to you and to the broader Java community.<\/p>\n<p>The road ahead is exciting \u2013 and Java is ready to lead.<\/p>\n<h2><a name=\"_Toc196812927\"><\/a>AI Learning Resources for Java App Developers<\/h2>\n<p><a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/ai-services\/\">Azure AI Services documentation<\/a><\/p>\n<p>Azure AI Services quick starts \u2013 like <a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/ai-services\/openai\/chatgpt-quickstart?tabs=keyless%2Ctypescript-keyless%2Cpython-new%2Ccommand-line&amp;pivots=programming-language-spring\">Chat Completions<\/a> and <a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/ai-services\/openai\/use-your-data-quickstart?tabs=keyless%2Ctypescript-keyless%2Cpython-new&amp;pivots=programming-language-spring\">Use Your Data<\/a><\/p>\n<p><a href=\"https:\/\/aka.ms\/spring-ai\">Build Enterprise Agents using Java and Spring<\/a><\/p>\n<p><a href=\"https:\/\/aka.ms\/langchain4j\">OpenAI RAG with Java, LangChain4j and Quarkus<\/a><\/p>\n<h4>Spring AI<\/h4>\n<ul>\n<li><a href=\"https:\/\/spring.io\/projects\/spring-ai\">Learn how to build effective agents with Spring AI<\/a><\/li>\n<li><a href=\"https:\/\/docs.spring.io\/spring-ai\/reference\/\">Spring AI reference documentation<\/a><\/li>\n<li><a href=\"https:\/\/docs.spring.io\/spring-ai\/reference\/api\/chat\/prompt-engineering-patterns.html\">Prompt Engineering Techniques with Spring AI<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/spring-projects\/spring-ai\">Spring AI GitHub repo<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/spring-projects\/spring-ai-examples\">Spring AI examples<\/a><\/li>\n<li><a href=\"https:\/\/x.com\/springcentral\">Spring AI updates<\/a><\/li>\n<li><a href=\"https:\/\/spring.io\/blog\/2024\/11\/19\/why-spring-ai\">The Seamless Path for Spring Developer to the World of Generative AI<\/a><\/li>\n<\/ul>\n<h4>LangChain4j<\/h4>\n<ul>\n<li><a href=\"https:\/\/docs.langchain4j.dev\/\">Supercharge your Java application with the power of LLMs<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/langchain4j\/langchain4j-examples\">LangChain4j GitHub repo<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/langchain4j\/langchain4j-examples\">LangChain4j Examples<\/a><\/li>\n<li><a href=\"https:\/\/docs.quarkiverse.io\/quarkus-langchain4j\/dev\/index.html\">Quarkus LangChain4j<\/a><\/li>\n<li><a href=\"https:\/\/quarkus.io\/quarkus-workshop-langchain4j\/\">Quarkus LangChain4j Workshop<\/a><\/li>\n<li><a href=\"https:\/\/x.com\/langchain4j\">LangChain4j updates<\/a><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p class=\"\" data-start=\"102\" data-end=\"295\"><strong data-start=\"102\" data-end=\"111\">Note:<\/strong> This blog was originally published on the <a class=\"\" href=\"https:\/\/aka.ms\/JavaAI-May2025\" target=\"_new\" rel=\"noopener\" data-start=\"154\" data-end=\"218\">Microsoft Tech Community<\/a>. It is being cross-posted here to reach a broader Java developer audience.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Software development is changing fast, and Java developers are right in the middle of it &#8211; especially when it comes to using Artificial Intelligence (AI) in their apps. This report brings together feedback from 647 Java professionals to show where things stand and what is possible as Java and AI come together. One of the [&hellip;]<\/p>\n","protected":false},"author":12323,"featured_media":232070,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[14,803,1,8,804,17],"tags":[808,841,809,840,813,248,837,842,843,7,805,839,838,836,761],"class_list":["post-232057","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cloud","category-intelligent-apps","category-java","category-open-source","category-openai","category-web","tag-ai","tag-ai-search","tag-cloud","tag-cosmos-db","tag-jakarta-ee","tag-java","tag-langchain4j","tag-mcp","tag-model-context-protocol","tag-open-source","tag-openai","tag-pgvector","tag-postgresql","tag-spring-ai","tag-spring-boot"],"acf":[],"blog_post_summary":"<p>Software development is changing fast, and Java developers are right in the middle of it &#8211; especially when it comes to using Artificial Intelligence (AI) in their apps. This report brings together feedback from 647 Java professionals to show where things stand and what is possible as Java and AI come together. One of the [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/java\/wp-json\/wp\/v2\/posts\/232057","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/java\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/java\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/java\/wp-json\/wp\/v2\/users\/12323"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/java\/wp-json\/wp\/v2\/comments?post=232057"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/java\/wp-json\/wp\/v2\/posts\/232057\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/java\/wp-json\/wp\/v2\/media\/232070"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/java\/wp-json\/wp\/v2\/media?parent=232057"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/java\/wp-json\/wp\/v2\/categories?post=232057"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/java\/wp-json\/wp\/v2\/tags?post=232057"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}