Red Hat is excited to announce that today we are shipping the 1.0 release of Language Support for Java by Red Hat on Visual Studio Code. The 1.0 release includes support for Java 17, type hierarchy and a number of performance improvements.
This is the product of a multi-year collaboration between Red Hat, Microsoft, and members of the Java developer community at large. This release would not have been possible without your help, and we appreciate everyone who has given us feedback or contributed to the project.
Since the start of the "Language Support for Java by Red Hat" (vscode-java) extension for VS Code, the goal has always been to provide the kind of Java support one would expect from any IDE. As we release version 1.0.0, it's a great opportunity to look back at how this project started, what has been accomplished, and plans for the future
Background
The vscode-java extension started as an experiment by Red Hat's Gorkem Ercan in May 2016. The goal was to understand and evaluate Language Server Protocol (LSP) by implementing a Java Language Server using the building blocks of Eclipse IDE, a full blown Java IDE. The language server could be easily reused by any other IDE/editor implementing LSP.
The initial implementation for a Java language server was demoed during the DevNation keynote in June of 2016.
A couple weeks later, the Microsoft Visual Studio Code team hosted a Hackathon in Zurich, Switzerland, where engineers from Red Hat, Microsoft, CodeEnvy and IBM worked together for a week on what would ultimately become the first official release of “Language support for Java for Visual Studio Code” on the Visual Studio Marketplace.
For a few more months, subsequent releases were performed by a small Red Hat team, twice a month. At that point, vscode-java was really geared toward development of microservices applications, built with Maven or Eclipse.
In July 2017, the Java team at Microsoft contacted us to see if they could contribute debugging support for Java as an external extension. We then started to open up vscode-java to 3rd party extensions, by leveraging the plugin infrastructure of our underlying Eclipse-based language server.
The Microsoft team started contributing more and more features to the VS Code extension and the language server and are now equally driving the roadmap and features of our Java tooling. To this day a complete ecosystem of extensions is available for Java, including a debugger, test runner, lombok support, Spring Boot, Quarkus extensions, and more.
Accomplishments
Since the very first release, the goal of the Java language support extension, has been to make VS Code more fun to use for Java developers. The initial release had a modest set of features, and we have continued to build upon that, releasing about 1-2 times per month. Listed below are a few of our recent accomplishments.
Java 17 Support
We are striving to support the latest language features and enhancements provided by the Java language.
Performance Improvements
New features in the LSP specification have allowed us to defer certain computations which result in better performance in a lot of use cases. Some better default JVM options while launching have allowed us to improve our experience on larger projects. We have also made and continue to make many smaller improvements to boost responsiveness.
Type Hierarchy
A feature that was introduced fairly recently and has been missing for too long from the Java support in Visual Studio Code.
Source Lookup
Being able to quickly locate the source code of a library is a really useful feature that we've had for some time. We've also brought it to unmanaged projects, so as long as your library comes from Maven Central, we can resolve sources. We also support more advanced configurations as well.
More Code Actions
We continue to adopt new code actions to improve the overall development experience.
Gradle Kotlin (.kts) Support
While we have existing support for Gradle projects using Groovy scripts, we heard the demand for Kotlin support and have taken steps to provide some basic support for this. We hope that going forward, we are able to expand upon this and deliver a good experience for this as well.
Community
While it's easy to discuss accomplishments in terms of the many enhancements, and fixes provided, this project owes its growth to a variety of contributors spanning different ecosystems, and companies.
Looking at the VS Code Java extension, and language server, it's clear that Microsoft has helped us greatly maintain and bring new features to the extension. However, the language server itself also relies on components directly from the Eclipse IDE's Java tooling, which is also supported by IBM and various other companies. In addition to support from various companies, we also have individual contributors who have made significant feature contributions to the project as well.
Looking downstream, we also see the ecosystem of extensions for Java developers has grown considerably. We have “Debugger for Java”, “Test Runner for Java”, “Maven for Java”, and “Project Manager for Java.”
These all contribute their own capabilities on top of the base extension (vscode-java) and language server, while also being easy to install in one shot, through the “Extension Pack for Java." Other extensions like Quarkus, MicroProfile Tools, and Spring Boot Tools also provide support across various technologies.
To put it simply, it really does take a village to build nice things when your components are an intersection of many different technologies, and where there are many different interests.
Roadmap
There are many items planned for the Java language support in VS Code. Some of these include :
-
Make it easier to configure compiler error/warnings and code formatting options
-
Add useful auto-completion features (e.g. Postfix completion)
-
Continue to adopt convenient code actions (e.g. new Java language features) and eventually reach feature parity with those provided by the Eclipse Java IDE
-
Improving the language server initial startup time and overall performance
-
Embedding a Java runtime to improve the “Getting Started” experience
For more on this extension, check out our post on Red Hat Developer.
저자 소개
Mohit Suman works as a Senior Product Manager driving innovation at Red Hat Developer Experience Team. He has experience in product management, software engineering and architecture in fields such as large-scale distributed computing and developer productivity. Currently making software to enhance the overall developer experience for Java ecosystem, Hybrid Cloud infrastructure, Red Hat Developer Hub.
With a keen eye for innovation and a relentless pursuit of excellence, Mohit Suman continues to be a driving force in the intersection of product management and cutting-edge technology, leaving an indomitable impact on the ever-evolving landscape of developer tools and hybrid-cloud solutions.
채널별 검색
오토메이션
기술, 팀, 인프라를 위한 IT 자동화 최신 동향
인공지능
고객이 어디서나 AI 워크로드를 실행할 수 있도록 지원하는 플랫폼 업데이트
오픈 하이브리드 클라우드
하이브리드 클라우드로 더욱 유연한 미래를 구축하는 방법을 알아보세요
보안
환경과 기술 전반에 걸쳐 리스크를 감소하는 방법에 대한 최신 정보
엣지 컴퓨팅
엣지에서의 운영을 단순화하는 플랫폼 업데이트
인프라
세계적으로 인정받은 기업용 Linux 플랫폼에 대한 최신 정보
애플리케이션
복잡한 애플리케이션에 대한 솔루션 더 보기
오리지널 쇼
엔터프라이즈 기술 분야의 제작자와 리더가 전하는 흥미로운 스토리
제품
- Red Hat Enterprise Linux
- Red Hat OpenShift Enterprise
- Red Hat Ansible Automation Platform
- 클라우드 서비스
- 모든 제품 보기
툴
체험, 구매 & 영업
커뮤니케이션
Red Hat 소개
Red Hat은 Linux, 클라우드, 컨테이너, 쿠버네티스 등을 포함한 글로벌 엔터프라이즈 오픈소스 솔루션 공급업체입니다. Red Hat은 코어 데이터센터에서 네트워크 엣지에 이르기까지 다양한 플랫폼과 환경에서 기업의 업무 편의성을 높여 주는 강화된 기능의 솔루션을 제공합니다.