UEFI 환경에서 JavaScript를 실행하는 프로젝트(Project)가 등장하여 개발자 커뮤니티의 주목을 받음
Duktape를 사용하여 UEFI 서비스에 접근, 부팅 로더(Bootloader)를 JavaScript로 구현
성능 및 안정성(Stability)에 대한 우려와 함께, 다양한 활용 가능성에 대한 기대가 공존
JavaScript의 확장성(Extensibility)에 대한 긍정적/부정적 시각이 엇갈리며 논쟁 발생
본 프로젝트는 Duktape를 사용하여 UEFI 서비스에 접근한다. EFI 프로토콜(EFI Protocols)(GraphicsOutput, SimpleFileSystem 등)을 JavaScript에 직접 노출하여 하드웨어를 추상화하는 대신, UEFI 애플리케이션을 빠르게 프로토타입화할 수 있도록 설계되었다. C 언어(C Language)를 사용하여 성능이 중요한 부분을 구현할 수 있도록 유연성을 제공한다.
댓글에서는 부팅 환경의 제약으로 인해 부동 소수점 연산(Floating-point Arithmetic) 지원의 어려움을 지적한다. 또한, 가비지 컬렉션(Garbage Collection)의 문제로 인해 JavaScript 커널 구현에 대한 난관을 예상한다. 이러한 제약은 UEFI 환경에서 JavaScript의 성능과 안정성에 영향을 미칠 수 있다.
일부 개발자는 JavaScript가 브라우저 내에서만 사용되어야 한다는 입장을 보이며, 다른 개발자는 파일 시스템 접근(File System Access)과 같은 기능을 JavaScript에서 사용할 수 있기를 원한다. 이러한 상반된 의견은 JavaScript의 일반 목적 프로그래밍 언어(General Purpose Programming Language)로서의 역할에 대한 논쟁으로 이어진다.
프로젝트에서 Duktape를 선택한 것은, 최소한의 libc 스텁(libc stubs)으로 독립적으로 실행될 수 있는 JavaScript 엔진이기 때문이다. 이는 V8 또는 SpiderMonkey와 같은 다른 엔진이 부팅 전에 실행하기 어렵다는 점을 고려한 결정이다. Duktape는 제약된 환경에서 임베딩(Embedding)되도록 설계되었기 때문에 UEFI 환경에 적합하다는 평가를 받는다.