GN⁺: Java 22 / JDK 22 출시(GA)
(mail.openjdk.org)- Java 22의 레퍼런스 구현체인 JDK 22가 일반 사용(GA)을 위해 출시됨
- Oracle에서 GPL 라이선스로 제공하는 OpenJDK 빌드는 https://jdk.java.net/22 에서 사용 가능. 다른 벤더들의 빌드도 곧 사용 가능할 것
이번 릴리스에는 총 12개의 JEP(Java Enhancement Proposals)가 포함
- 423: G1에 대한 지역 고정(Region Pinning)
- 447: super(...) 이전의 선언문 (미리보기)
- 454: 외부 함수 및 메모리 API
- 456: 이름 없는 변수 및 패턴
- 457: 클래스 파일 API (미리보기)
- 458: 다중 파일 소스 코드 프로그램 실행
- 459: 문자열 템플릿 (두 번째 미리보기)
- 460: 벡터 API (일곱 번째 인큐베이터)
- 461: 스트림 수집기 (미리보기)
- 462: 구조화된 동시성 (두 번째 미리보기)
- 463: 암묵적으로 선언된 클래스 및 인스턴스 메인 메소드 (두 번째 미리보기)
- 464: 범위 지정 값 (두 번째 미리보기)
추가 정보
- 이번 릴리스는 수백 가지의 작은 개선 사항과 수천 개의 버그 수정을 포함함.
- 이번 릴리스에 기여한 모든 사람들에게 감사의 말을 전함.
GN⁺의 의견
- JDK 22의 출시는 자바 개발자들에게 중요한 이벤트이며, 새로운 기능과 개선 사항들을 통해 개발 경험이 향상될 것으로 기대됨.
- 특히 외부 함수 및 메모리 API와 같은 기능은 시스템 프로그래밍과 통합에 있어 자바의 역량을 확장하는 데 기여할 수 있음.
- 구조화된 동시성과 같은 기능은 현대적인 멀티코어 프로세서의 이점을 더 잘 활용하기 위한 자바의 노력을 반영함.
- 다른 언어나 플랫폼에서 비슷한 기능을 제공하는 경우가 많지만, 자바는 광범위한 사용자 기반과 강력한 커뮤니티 지원을 통해 독특한 가치를 제공함.
- 기존 시스템과의 호환성, 성능 영향, 학습 곡선 등을 고려해야 하며, JDK 22의 새로운 기능들도 이러한 고려 사항에 따라 점진적으로 도입되어야 함.
Hacker News 의견
-
새로운 릴리스에서 가장 마음에 드는 기능:
JEP 463은 초보자를 위한 사용성 개선으로, 자바 프로그래밍에 새로운 사람들이 계속해서 자바를 사용할지 여부에 차이를 줄 수 있음.
-
"섹시하지" 않은 프로그래밍 언어 변경이지만, 외부 함수 인터페이스는 큰 변화가 될 것:
이전의 자바 JNI 기반 라이브러리에 의존하는 것이 업그레이드 시 가장 많이 문제가 되는 부분 중 하나이므로, 이 변경이 자바의 유지보수 부담을 줄여줄 것을 기대함.
-
링크 가능한 기능들:
개인적으로 가장 흥미로운 것은 JEP 461 (Stream Gatherers)로, 여기에서 확인 가능하며, 스트림 연산에 흥미로운 추가 기능을 제공할 것임.
-
외부 함수 인터페이스는 C#이 자바에 비해 가진 주요 장점 중 하나:
예를 들어 안드로이드나 macOS와 같은 거대한 API에 대항할 때, 이 JEP의 결과가 매우 궁금함.
-
자바 8을 여전히 사용하는 곳이 많다는 것에 놀람:
최근 검색한 설문조사에 따르면 프로젝트의 약 1/3이 자바 8을 사용하고 있으며, 그 중 절반 정도는 자바 11을 사용함.
-
G1 가비지 컬렉터가 계속해서 무료로 개선됨:
이를 위한 새로운 빌드 태그를 생성할 시간임.
-
문자열 템플릿 API의 발전이 흥미로움:
STR과 fmt 템플릿 프로세서를 사용하는 API 개발 상황을 주목함.
-
"Vector API (Seventh Incubator)"에 대한 의문:
자바에서 벡터와 관련하여 일곱 번째 반복이라니, 무슨 일이 벌어지고 있는지 궁금함.
-
이러한 기능들의 예시:
해피코더스에서 자바 22의 기능들에 대한 예시를 확인할 수 있음.
-
자바와 관련 없지만, 단순한 HTML 페이지를 보는 것이 상쾌함:
복잡하지 않은 HTML 페이지를 보는 것은 오랜만에 시원한 경험임.