개발자 / 오픈소스

"자바스크립트, 새로운 자바인가" 자바스크립트의 자바 대체 논쟁

Paul Krill | InfoWorld 2021.03.30
자바는 '한 번 쓰고 어디서나 실행(Write once, run anywhere)'하는 프로그래밍 언어의 대명사다. 이런 자바를 자바스크립트가 대체할까?
 
ⓒ Getty Images Bank

답은 보는 관점에 따라 다르다. 또한 웹어셈블리(WebAssembly)와 같은 기술이 등장하면서 새롭게 부상하는 “한 번 쓰고 어디서나 컴파일(write once, compile anywhere)”하는 패러다임이 자바에 새로운 힘을 부여할 수도 있다.

자바는 JVM이 동작하는 곳 어디서나 실행되면서 많은 운영체제와 모바일 및 임베디드 기기를 포함한 하드웨어 플랫폼 간에 이식성을 제공한다. 그러나 뉴트랄리노(Neutralino) 자바스크립트/타입스크립트 프레임워크의 저작자 샬리타 수랑가는 브라우저 내 애플리케이션의 중심이었던 자바스크립트는 이제 일렉트론(Electron) 프레임워크와 같은 기술을 통해 데스크톱 애플리케이션에서, 리액트 네이티브(React Native)와 같은 프레임워크를 통해 모바일 애플리케이션에서, 그리고 Node.js와 데노(Deno)를 통해 웹 백엔드에서도 동작한다고 강조했다.

또한 노드MCU(NodeMCU)와 같은 도구를 통해 IoT와 로봇 개발에서도 자바스크립트를 사용할 수 있다. 디지털 제품 제조업체인 99x의 소프트웨어 엔지니어이자 아파치 프로젝트 관리 위원이기도 한 수랑가는 “요즘은 자바로 할 수 있는 일은 무엇이든 자바스크립트로도 할 수 있다”라고 말했다. 수랑가는 최근 미디엄(Medium)에 “한 번 쓰고 어디서나 실행하는 언어라고 하면 이제 자바가 아닌 자바스크립트”라고 주장하는 글을 게시했다.


자바스크립트, 웹 브라우저에서 서버와 기기로

수랑가는 자바스크립트를 불멸의 언어로, 자바를 서서히 죽어가는 언어로 선언했지만 수랑가의 말이 자바스크립트가 프로그래밍 언어로서의 자바를 대체할 것이라는 의미는 아니다. 이보다는 자바가 빛을 발하는 모든 곳에서(데스크톱 애플리케이션, 웹 서버, 웹 클라이언트, 모바일 앱, 스마트 TV 애플리케이션) 이제 자바스크립트가 자바보다 더 낫다는 주장을 하는 것이다. 

특히 자바스크립트는 자바 애플릿이 제대로 자리잡지 못한 웹 브라우저 영역을 지배한다. 안드로이드 모바일 앱에서도 자바는 아이오닉(Ionic), 리액트 네이티브, 네이티브스크립트(NativeScript)와 같은 크로스 플랫폼 자바스크립트 프레임워크에 밀려났다.

그러나 자바 표준 에디션 개발을 관장하는 오라클은 자바스크립트에 밀려 자바가 쇠락할 것이라는 주장에 대해 회의적이다. 오라클 자바 플랫폼 그룹의 개발자 관계 담당 부사장인 채드 아리무라는 “자바가 죽는다는 이야기는 15년 전부터 있었지만 자바는 매우 중요한 플랫폼으로서 여전히 건재하다”라고 말했다. 오라클은 지난 3월 16일 자바의 최신 표준 버전인 자바 16을 공개했다.

오라클과 경쟁하는 자바 런타임 제공업체인 아줄(Azul)은 자바 가상 머신의 '어디서나 실행된다'는 이점뿐만 아니라 특히 서버 측에서 JVM이 제공하는 확장성을 강조했다. 아줄의 부CTO인 사이먼 리터는 “물론 자바스크립트는 브라우저 안에 위치하고 원하는 모든 플랫폼에서 실행되므로 완전한 크로스 플랫폼이라는 것은 사실”이라면서, “그러나 자바는 서버 측 성능 관점에서 여전히 크고 확고한 우위를 갖고 있다”라고 말했다.


웹어셈블리, 자바의 새 생명인가

웹어셈블리, 스프링 네이티브(Spring Native)와 같은 기술은 '한 번 쓰고 어디서나 실행된다'는 개념에 새로운 측면을 더했다. 이런 기술은 다양한 프로그래밍 언어를 이식 가능한 실행 파일 또는 네이티브 실행 파일로 컴파일할 수 있게 해주므로 사실상 언어를 런타임 플랫폼에서 분리해내는 역할을 한다. 즉, 개발자는 JVM 없이 자바를 사용할 수 있다.

웹어셈블리 바이너리 명령어 형식은 브라우저 내 프로그래밍을 위한 메커니즘 역할을 하며, 웹어셈블리는 웹에서 실행하기 위한 다른 언어의 컴파일 대상이다. 현재 개발 중인 J웹어셈블리 컴파일러 프로젝트는 웹어셈블리를 통해 브라우저에서 네이티브로 자바를 실행하는 것을 목표로 한다. 또한 웹어셈블리는 와스머(Wasmer) 런타임을 통해 서버에도 배포가 가능하다. 웹어셈블리를 통해 자바는 자바스크립트가 가는 모든 곳에 갈 수 있다.

그럼에도 불구하고 수랑가는 사용의 용이함과 동적 특징 측면에서 여전히 자바스크립트에 이점이 있다고 본다. 웹어셈블리가 자바를 불멸의 언어로 만들고 웹 개발에서 자바스크립트 없이 자바를 사용할 수 있게 해준다고 말할 수 있지만, 수랑가는 개발자들은 여전히 자바스크립트를 선택하게 될 가능성이 높다고 주장했다.

한편 스프링 네이티브는 자바 프로그래밍을 JVM 없이 독립적인 실행 파일을 구축하는 데 사용할 수 있게 해준다. 스프링 자바와 코틀린(Kotlin) 애플리케이션은 네이티브 이미지로 컴파일된다. 그랄VM(GraalVM) 다중 언어 런타임은 최근 베타 릴리스 단계로 넘어간 스프링 네이티브와 함께 사용된다. editor@itworld.co.kr  

회사명 : 한국IDG | 제호: ITWorld | 주소 : 서울시 중구 세종대로 23, 4층 우)04512
| 등록번호 : 서울 아00743 등록발행일자 : 2009년 01월 19일

발행인 : 박형미 | 편집인 : 박재곤 | 청소년보호책임자 : 한정규
| 사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.