JavaScript의 탄생과 죽음: Gary Bernhardt의 2014년 예측 분석

기술적 기질(Substrate)로서의 JavaScript 진화

JavaScript는 주요 프로그래밍 언어에서 다른 고수준 언어와 실행 환경을 지원하는 기초적인 기질(substrate)로 전환되었습니다. 이러한 변화는 개발자들이 생 JavaScript를 작성하는 빈도는 줄어들 수 있지만, 해당 언어의 런타임 환경은 현대 웹 및 데스크톱 애플리케이션이 구축되는 핵심 계층으로 남아 있음을 의미합니다.

컴파일 대상으로서의 JavaScript

JavaScript의 주요 역할은 수동 코딩을 위한 소스 언어라기보다 컴파일의 대상이 되는 방향으로 이동했습니다. 이러한 추세는 TypeScript의 광범위한 채택과 WebAssembly (Wasm)의 등장으로 입증됩니다.

커뮤니티 구성원들이 언급했듯이, 업계는 개발자들이 JavaScript의 "better" 버전을 만들고, 브라우저 호환성을 위해 이를 다시 JavaScript로 트랜스파일하는 주기에 진입했습니다. 이 패턴은 JavaScript가 웹의 보편적인 글루 코드(glue code) 역할을 한다는 이론을 확인시켜 줍니다.

WebAssembly (Wasm)의 역할

WebAssembly는 JavaScript가 결국 더 성능이 뛰어난 바이너리 형식에 의해 대체될 것이라는 예측의 실현을 나타냅니다. 초기 예측은 asm.js를 가리켰으나, Wasm은 브라우저에서 네이티브와 유사한 코드를 실행하기 위한 실제 표준이 되었습니다.

하지만 전환이 절대적인 것은 아닙니다. 특히 DOM 조작과 관련하여 현재의 기술적 한계가 지속되고 있습니다. Wasm은 DOM을 직접 조작할 수 없기 때문에, Wasm 로직을 브라우저의 사용자 인터페이스에 연결하는 필수적인 "글루 코드"로서 JavaScript가 여전히 필요합니다. Flutter와 같은 일부 프레임워크는 모든 것을 canvas에 렌더링함으로써 이를 우회하지만, 이 방식은 표준 웹 기능 세트를 희생합니다.

브라우저를 넘어선 확장

웹 기술은 브라우저에서 네이티브 운영 체제 공간으로 성공적으로 이주하여, 범용 컴퓨팅에서 웹 구문의 편재성을 실현하는 예측을 충족시켰습니다.

Electron을 통한 데스크톱 통합

Electron은 웹 기술을 데스크톱 애플리케이션으로 래핑할 수 있게 하여, 개발자가 단일 코드베이스를 사용하여 macOS, Windows, Linux를 동시에 지원할 수 있도록 했습니다. 비록 비판론자들은 Electron이 리소스를 많이 사용한다고 주장하지만, 이는 크로스 플랫폼 배포를 위한 가장 빠른 방법이 되었으며, 효과적으로 JavaScript 런타임을 데스크톱 OS 경험에 내장시켰습니다.

브라우저 기반 OS의 개념

브라우저 기술 또는 WebAssembly에 완전히 기반을 둔 운영 체제의 출현에 대한 논의가 지속되고 있습니다. webOS 및 Firefox OS와 같은 초기 시도들은 일부 사람들에 의해 시대를 수십 년 앞서갔던 것으로 간주되며, 웹 브라우저와 운영 체제 사이의 경계가 완전히 사라지는 미래를 예고했습니다.

JavaScript의 "죽음"에 대한 커뮤니티의 관점

JavaScript의 "죽음"은 언어의 소멸이 아니라, 그 투명성(invisibility)을 의미합니다.

"여기서 논의되는 '죽음'이란 JavaScript가 기질(substrate)이 된다는 것을 의미하며, 직접적으로 사용하지는 않지만 어디에나 존재하는 상태를 말합니다."

일부 개발자들은 JavaScript나 Wasm이 표준 Application Binary Interface (ABI)가 되는 전망을 부정적인 결과로 보지만, 다른 이들은 현재의 궤적을 자연스러운 진화로 봅니다. 합의된 의견은 JavaScript의 내재적 결함에도 불구하고, 더 새롭고 더 견고한 언어들의 빠른 반복을 가능하게 하는 보편적인 실행 환경을 제공함으로써 업계에 미친 궁극적인 영향이 매우 긍정적이었다는 것입니다.

Sources