최근 JavaScript의 표준을 만드는 TC39에서 Shu-yu Guo가 자바스크립트 언어의 발전을 원활하게 하기 위해서 언어를 JS0과 JSSugar 두가지로 나누자는 제안을 정리하고 제안한 문서를 한국어로 번역한 글입니다. 원 문서도 번역되어 있어서 편하게 읽었습니다.


언어는 두가지로 나눈다니 놀랄수 있지만 그리 크게 영향 받을 일은 아니긴하고 JS0과 JSSugar가 이름이 좀 촌스럽긴 하지만 초기 제안이라 받아들여지더라고 이름은 바뀔 가능성이 얼마든지 있습니다.


문제의식에는 어느정도는 공감이 되었는데 요즘 많은 개발 상황을 보면 JavaScript로도 어플리케이션을 작성하지만 TypeScript로도 개발하고 더 최신 언어 기능을 쓰기 위해서 개발한 뒤에 Babel 등의 컴파일러를 써서 다시 JavaScript로 컴파일하고 이를 배포하는 경우가 일반적입니다.


이렇게 생성된 JavaScript는 보통 브라우저나 node.js같은 런타임에서 실행이 되는데 여기서는 실제 사용자가 사용하게 되므로 최신 기능을 도입하기도 하지만 보안과 성능 등 신경 쓸 부분이 많이 존재합니다. 그렇기 때문에 TC39에서는 JavaScript의 새 기능을 스테이지를 나누어서 도입 단계를 관리하지만 새로운 기능을 계속 추가하고 싶은 언어쪽 상황에 비해서 브라우저쪽은 아무래도 신경쓸게 많아서 어느정도 보수적인 입장을 취할 수밖에 없게 되어 양쪽의 입장이 충돌하게 됩니다.


그래서 이 제안은 JS0은 브라우저 등에서 사용하는 언어가 되고 여기에는 안정적이라고 생각하는 기능이 포함되기 때문에 브라우저는 어느정도 확인된 기능만 천천히 도입할 수 있게 되고 사실 컴파일러를 안쓰고 자바스크립트로 개발한다면 JS0으로 개발한다고 생각할 수 있습니다.


대신 Babel같은 컴파일러 입장에서는 아직 브라우저에서 구현되지 않은 새로운 기능도 적극적으로 지원하면서 이를 JavaScript로 컴파일하게 되므로 여기는 JSSugar로 정의해서 새로운 기능을 빠르게 도입하면서 컴파일러가 JS0으로 컴파일하게 하자는 제안합니다.


어떤 면에서 보면 지금상황과 크게 다르지 않으면서도 명확하게 구분되는 느낌도 있습니다.


https://medium.com/@jiwoochoics/%EB%B2%88%EC%97%AD-js0-jssugar-%EC%A0%9C%EC%95%88%EC%97%90-%EB%8C%80%ED%95%9C-%EC%83%9D%EA%B0%81-172d2e5203b5

(번역) JS0/JSSugar 제안에 대한 생각

Medium

(번역) JS0/JSSugar 제안에 대한 생각

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2024년 12월 4일 오후 5:26

댓글 0