{"id":230213,"date":"2023-12-04T23:23:04","date_gmt":"2023-12-05T07:23:04","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/java\/?p=230213"},"modified":"2023-12-04T23:23:04","modified_gmt":"2023-12-05T07:23:04","slug":"2-5-million-java-developers-on-visual-studio-code","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/java\/2-5-million-java-developers-on-visual-studio-code\/","title":{"rendered":"2.5 million Java developers on Visual Studio Code! Roadmap for the next 6 months"},"content":{"rendered":"<h3><b>A big big thank you to the community! <\/b><\/h3>\n<p>Hi everyone, we are thrilled to share that Visual Studio Code now has a community of over 2.5 million Java developers. Much like our achievements in the past, this incredible milestone wouldn&#8217;t have been possible without the support from our amazing community and users, and for that, we want to extend our heartfelt gratitude!<\/p>\n<h3><b>Joint announcement: Microsoft and Red Hat shares roadmap of Visual Studio Code Java for next six months\u00a0<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">As a special update for this month, we are excited to share our roadmap for the next few months in collaboration with Red Hat. This collaboration represents our dedication to supporting developers and cultivating innovation within the open-source community. There are lots of exciting things to cover, so let&#8217;s get started.<\/span><\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2023\/12\/2.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-230315\" src=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2023\/12\/2.png\" alt=\"VS Code Java Roadmap for next 6 months\" width=\"1280\" height=\"720\" srcset=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2023\/12\/2.png 1280w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2023\/12\/2-300x169.png 300w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2023\/12\/2-1024x576.png 1024w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2023\/12\/2-768x432.png 768w\" sizes=\"(max-width: 1280px) 100vw, 1280px\" \/><\/a><\/p>\n<h4>Fundamental Experience<\/h4>\n<p>Fundamental experience is the foundation of everything. In this area, we will bring updates such as:<\/p>\n<p><b>Java 21 support<\/b><span style=\"font-weight: 400;\">: Full support around Java 21 and upcoming JDK releases.<\/span><\/p>\n<p><b>Enhanced Code Navigation<\/b><span style=\"font-weight: 400;\">: Seamlessly navigate through your Java codebase with improved efficiency and precision.<\/span><\/p>\n<p><b>Advanced Debugging Capabilities<\/b><span style=\"font-weight: 400;\">: We&#8217;re introducing new debugging features to empower you in identifying and resolving issues more effectively.<\/span><\/p>\n<h4>Reliability:<\/h4>\n<p>Reliability is one of the most mentioned issues from our users in the past year. We want to improve the stability of our platform so you can focus on your code without worrying about language server glitches or crashes, or code completion stops. We aim to build a stable and consistent coding experience for the users.<\/p>\n<h4>Compatibility:<\/h4>\n<p>Compatibility is another major area of our focus. In this aspect, we are primarily targeting to improve Gradle development experience (such as project import success rate) on Visual Studio Code. In collaboration with Gradle, we just <a href=\"https:\/\/devblogs.microsoft.com\/java\/announcing-the-build-server-for-gradle-open-source-repository\/\">announced our open-source project of Build Server<\/a> for Gradle in early November. We will continue to build on top of this project to ensure build results in Visual Studio Code are consistent with the output obtained by running Gradle commands, which ultimately will improve combability.<\/p>\n<h4>Performance:<\/h4>\n<p>Performance is always crucial to any development tool. From past user feedback we have consistently heard about performance issues under certain circumstances, therefore in the next several months, we are going to look into two areas:<\/p>\n<ul>\n<li>Optimize JVM count and CPU\/Memory usage per session<\/li>\n<li>Improve performance with Spring projects<\/li>\n<\/ul>\n<h4>Code Completion:<\/h4>\n<p>Code completion quality impacts daily developer productivity. We&#8217;ve heard that our users want smarter coding assist with import statements. We&#8217;ve just added some nice support for this (shared in the next section) and there will be a few other code completion intelligence enhancements for the few next months as well.<\/p>\n<h4>Project Management:<\/h4>\n<p>Next area is project management. In this area, there are two parts. First part is to improve JDK configuration experience, this is something we wanted to do for both beginner and professional Java developers. The second part is to enhance the project creation and import experience. This includes:<\/p>\n<ul>\n<li>Allow users to select project parameters parameters while importing (such as modules for multi-module projects)<\/li>\n<li>When creating projects, offer option to create in new window or current window<\/li>\n<li>User experience improvement for package\/class creation<\/li>\n<\/ul>\n<p>We hope these project management improvements can let users become more effective at using Java projects during the entire lifecycle.<\/p>\n<h4>User Experience:<\/h4>\n<p>In terms of user experience, we have realized that some of our features and settings are not easy to discover to our users. Therefore we plan to make several updates to make them easier to use and discoverable. This includes:<\/p>\n<ul>\n<li>Provide a better path to code refactoring options<\/li>\n<li>Easier discovery to Java language server status<\/li>\n<li>Simplify Java language server settings and provide better groupings<\/li>\n<\/ul>\n<p>We hope these UX changes will make some of the most common operations much easier for users to find.<\/p>\n<h4>AI:<\/h4>\n<p>AI has been quickly changing all aspects of how we build software, including the way we write code. Initially introduced in July, GitHub Copilot Chat is an AI companion in every step of your development cycle. In terms of user experience, it is a chat interface that allows developers to ask and receive answers to coding-related questions directly within a supported IDE. Recently <a href=\"https:\/\/github.blog\/2023-11-08-universe-2023-copilot-transforms-github-into-the-ai-powered-developer-platform\/#github-copilot-chat-generally-available-in-december-2023\">announced in GitHub Universe<\/a>, GitHub Copilot Chat is becoming generally available in December.<\/p>\n<p>In addition, shared from the speakers <a href=\"https:\/\/www.youtube.com\/watch?v=AAT4zCfzsHI&amp;t=916s\">in this session<\/a>, soon the developers will be able to integrate with GitHub Copilot and GitHub Copilot Chat to extend their capabilities. Visual Studio Code Java is no exception, in the next few months we will explore how to leverage GitHub Copilot Chat to enhance your Java development experience, whether it\u2019s finding an error, writing unit tests, helping debug code, adding dependencies, or managing Java projects.<\/p>\n<h4>Looking Forward<\/h4>\n<p>In addition to the updates we have provided above, Microsoft and Red Hat will continue to collaborate and deliver other upgrades, this includes more intelligent code completion enhancements and so on. We sincerely hope Java developers can get awesome experience on Visual Studio Code and please continue to provide us feedback whenever you can.<\/p>\n<h3><strong>Feature Updates<\/strong><\/h3>\n<p>In addition to the roadmap, we also wanted to share some exciting recent feature updates.<\/p>\n<h4>Easier Discovery to Static Import Type Settings<\/h4>\n<p>As we shared in the roadmap above, we are making some improvements to the import experience. Our code completion suggestions for static import statements is based on a &#8220;whitelist&#8221; mechanism, therefore users need to use a specific setting to input their favorite static members so these types will get high priority prompts when typing code. Previously, this setting is hard to discover. Recently, we have added this setting into the &#8220;Quick Fix&#8221; light bulb suggestion, making this much easier to find. Here&#8217;s a demo:<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2023\/11\/staticimportsetting.gif\"><img decoding=\"async\" class=\"alignnone size-full wp-image-230271\" src=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2023\/11\/staticimportsetting.gif\" alt=\"Static import setting\" width=\"1522\" height=\"698\" \/><\/a><\/p>\n<h4>Smarter Code Completion for Static Import Types<\/h4>\n<p>Based on the setting above, we also realize that sometimes modifying the settings is not ideal enough. Therefore, we have also added some smart detection based on the current imported static members. If Visual Studio Code Java sees that there are some already some static import statements, when you type related code in your file, it will automatically suggest relevant code, without the need to modifying the setting, here&#8217;s the demo for this feature.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2023\/11\/smarter.gif\"><img decoding=\"async\" class=\"alignnone size-full wp-image-230273\" src=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2023\/11\/smarter.gif\" alt=\"Smarter code completion for static import statements\" width=\"2140\" height=\"1514\" \/><\/a><\/p>\n<h3><strong>Install Extension Pack for Java<\/strong><\/h3>\n<p>To use all features mentioned above, please download and install <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=vscjava.vscode-java-pack\">Extension Pack for Java<\/a> on Visual Studio Code.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2022\/09\/javapack.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-229421\" src=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2022\/09\/javapack.png\" alt=\"Extension pack for Java\" width=\"1215\" height=\"238\" srcset=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2022\/09\/javapack.png 1215w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2022\/09\/javapack-300x59.png 300w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2022\/09\/javapack-1024x201.png 1024w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2022\/09\/javapack-768x150.png 768w\" sizes=\"(max-width: 1215px) 100vw, 1215px\" \/><\/a><\/p>\n<p>If you are a Spring developer working on a Spring Boot application, you can also download the <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=Pivotal.vscode-boot-dev-pack\">Spring Boot Extension Pack<\/a> for specialized Spring experience.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2022\/10\/spring.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-229533\" src=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2022\/10\/spring.png\" alt=\"Spring boot extension pack\" width=\"1221\" height=\"224\" srcset=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2022\/10\/spring.png 1221w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2022\/10\/spring-300x55.png 300w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2022\/10\/spring-1024x188.png 1024w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2022\/10\/spring-768x141.png 768w\" sizes=\"(max-width: 1221px) 100vw, 1221px\" \/><\/a><\/p>\n<h3><strong>Feedback and suggestions<\/strong><\/h3>\n<p>As always, your feedback and suggestions are very important to us and will help shape our product in future. There are several ways to give us feedback<\/p>\n<ul>\n<li>Leave your comment on this blog post<\/li>\n<li><a href=\"https:\/\/github.com\/microsoft\/vscode-java-pack\/issues\/new\/choose\" target=\"_blank\" rel=\"noopener\">Open an issue<\/a>\u00a0on our GitHub Issues page<\/li>\n<li>Send an email to: vscjfeedback@microsoft.com<\/li>\n<\/ul>\n<h3><strong>Resources<\/strong><\/h3>\n<p>Here is a list of links that are helpful to learn Java on Visual Studio Code.<\/p>\n<ul>\n<li class=\"x-hidden-focus\">Learn more about\u00a0<a class=\"x-hidden-focus\" href=\"https:\/\/code.visualstudio.com\/docs\/languages\/java\" target=\"_blank\" rel=\"noopener noreferrer\">Java on Visual Studio Code<\/a>.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>A big big thank you to the community! Hi everyone, we are thrilled to share that Visual Studio Code now has a community of over 2.5 million Java developers. Much like our achievements in the past, this incredible milestone wouldn&#8217;t have been possible without the support from our amazing community and users, and for that, [&hellip;]<\/p>\n","protected":false},"author":31999,"featured_media":230316,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[14,22,1,8,15],"tags":[],"class_list":["post-230213","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cloud","category-desktop","category-java","category-open-source","category-vscode"],"acf":[],"blog_post_summary":"<p>A big big thank you to the community! Hi everyone, we are thrilled to share that Visual Studio Code now has a community of over 2.5 million Java developers. Much like our achievements in the past, this incredible milestone wouldn&#8217;t have been possible without the support from our amazing community and users, and for that, [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/java\/wp-json\/wp\/v2\/posts\/230213","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\/31999"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/java\/wp-json\/wp\/v2\/comments?post=230213"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/java\/wp-json\/wp\/v2\/posts\/230213\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/java\/wp-json\/wp\/v2\/media\/230316"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/java\/wp-json\/wp\/v2\/media?parent=230213"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/java\/wp-json\/wp\/v2\/categories?post=230213"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/java\/wp-json\/wp\/v2\/tags?post=230213"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}