Java의 유용성과 도달 범위를 확장하는 데 중요한 진전이 될 수 있는 Project Babylon이라는 제안이 OpenJDK에 도입되어 Java의 통합을 GPU, 기계 학습 모델, SQL 및 차등 프로그래밍과 같은 비전통적인 프로그래밍 모델로 확장했습니다.
이 대담한 제안은 Oracle의 설계자인 Paul Sandoz에 의해 각광을 받았고 9월 6일 openjdk.org 메일링 리스트에 이 제안을 소개했습니다. Project Babylon은 이 계획을 뒷받침하여 Java에서 반사 프로그래밍을 개선하는 것을 목표로 합니다. 코드 반영으로. 목표는 알려진 문제점이었던 Java 코드에 대한 액세스를 표준화하고 분석 및 변환하는 것입니다. 일단 실현되면 향상된 기능을 통해 모든 외부 프로그래밍 모델을 Java 라이브러리로 구현할 수 있습니다.
특히 Project Babylon은 Java용 GPU 프로그래밍 모델을 개발하여 코드 반영을 적합하게 만드는 것을 목표로 합니다. 이 모델은 코드 리플렉션의 장점을 활용하고 Java 라이브러리로 실행됩니다. 잠재적인 편견을 피하기 위해 프로젝트에서는 SQL 및 차등 프로그래밍과 같은 다른 프로그래밍 모델도 탐색합니다.
산도스는 바빌론의 작동 방식을 설명하면서 개발자가 GPU 커널을 Java로 작성한 다음 GPU에서 작동시키려는 사례를 설명했습니다. 개발자의 코드를 분석하고 실행 가능한 GPU 커널로 변환해야 합니다. Java 라이브러리는 이를 관리할 수 있지만 기호 형식의 Java 코드에 액세스해야 합니다. 현재 시스템은 컴파일 시간이나 런타임과 같은 프로그램 수명주기의 다양한 단계에서 비표준 API 또는 규칙에 대한 액세스를 제한합니다. 게다가 사용 가능한 기호 형식(바이트코드 또는 추상 구문 트리)은 적절한 분석 및 변환을 지원하지 않는 경우가 많습니다.
이 제안은 여러 기능 릴리스에 걸쳐 확장되는 일련의 JEP(JDK Enhancement Proposals)로 패키징되어 시간이 지남에 따라 Project Babylon의 실행을 구상합니다. 시작점으로, 코드 리플렉션은 2024년 3월 출시 예정인 JDK 22의 메인라인 릴리스에서 복제됩니다. 이후부터는 메인라인 릴리스를 준수하게 됩니다.
GPU 프로그래밍 모델의 맥락에서 Babylon 뒤의 팀은 개발 시 코드 반영 속성에 의존하는 격리된 저장소를 만들 것입니다. 현재로서는 GPU 프로그래밍 모델을 JDK에 통합할 계획이 없습니다. 그러나 진행 중인 작업을 통해 향후 처리할 수 있는 잠재적인 JDK 기능과 개선 사항을 식별할 수 있습니다.
이 이니셔티브는 Java의 기능을 확장할 수 있는 길을 열어주지만 AppMaster 와 같은 플랫폼은 이미 단순화된 백엔드, 웹 및 모바일 애플리케이션으로 개발자를 지원하는 데 앞장서고 있습니다. 이러한 no-code 플랫폼은 개발 프로세스를 가속화하는 반면 Project Babylon과 같은 플랫폼은 호환성과 기능을 향상시키는 방법을 모색하고 있습니다.