Copyright © Origin Corp. All Rights Reserved.
v1.0.10
로딩 중입니다
행복에는 덕이면 충분하다안티스테네스

마이크로소프트는 자바스크립트의 발전을 거의 10년간 가로막은 장본인이었어요.
그리고 바로 그 회사가, 훗날 자바스크립트 개발자가 가장 사랑하는 도구를 만들었어요.
이 아이러니가 타입스크립트 이야기의 출발점이에요.
1996년, 넷스케이프가 자바스크립트를 세상에 내놓자마자 마이크로소프트는 이걸 그냥 가져다 쓰지 않았어요.
살짝 비틀어 JScript라는 이름으로 따로 출시했거든요.
JScript는 자바스크립트와 비슷하게 생겼지만 미묘하게 달랐고, 그 차이가 웹 개발자들을 수년간 괴롭혔어요.
국가 표준 볼트 규격이 있는데 한 회사가 "우리 볼트는 0.1mm 다릅니다"라고 선언한 격이에요.
겉으론 비슷해 보이지만 나사가 안 맞으니, 개발자들은 코드를 두 벌 짜야 했어요.
결정타는 2007년에 나왔어요.
자바스크립트를 강력하게 개선하려는 ECMAScript 4 표준안이 완성 단계에 이르렀을 때, 마이크로소프트는 끝까지 반대해 이 표준을 무산시켰어요.
그 안에는 클래스, 타입 시스템, 패키지 시스템 같은 기능들이 담겨 있었는데, 이것들은 훗날 자바스크립트가 결국 구현하게 되는 것들이에요.
학교에서 친구들의 공동 노트를 일부러 망쳐놓던 학생이 10년 뒤 모두를 위한 가장 좋은 노트 앱을 들고 돌아온 격이에요.
이게 실제로 일어난 일이에요.

C#으로 자바와 싸웠던 남자가, 이번엔 자바스크립트 편에 섰어요.
덴마크 출신 프로그래머 안데르스 하일스버그는 소프트웨어 역사에서 보기 드문 기록을 가진 사람이에요.
Turbo Pascal, Delphi, C# 세 개의 프로그래밍 언어를 직접 설계한 장본인이거든요.
한 사람이 프로그래밍 언어를 세 개나 만든다는 건, 소설가 한 명이 국어 교과서를 세 번 다시 쓴 것만큼 이례적인 일이에요.
그 중 C#은 자바를 겨냥해 만든 언어였어요.
자바가 기업 시장을 잠식하자 마이크로소프트가 맞불을 놓은 것이고, 하일스버그가 그 칼을 만든 거예요.
그런데 2010년경, 그가 마이크로소프트 내부에서 비밀 프로젝트를 시작했어요.
이번엔 경쟁 언어를 만드는 게 아니었어요.
자바스크립트를 '죽이지 않고 도와주는' 무언가였거든요.
2년간의 개발 끝에 2012년 10월 1일, TypeScript 0.8이 세상에 공개됐어요.
TypeScript는 자바스크립트를 갈아치우는 새 언어가 아니에요.
자바스크립트 위에 얹어서, 코드를 쓸 때 실수를 미리 잡아주는 도구예요.
코드용 맞춤법 검사기인데, "이 값은 숫자여야 하는데 문자를 넣었어요"라고 저장하는 순간 바로 알려주는 식이에요.
평생 라이벌 가게와 싸워온 요리사가 어느 날 그 가게 옆에서 양념 재료를 파는 가게를 차린 격이에요.
경쟁 대신 공존을 택한 거예요.

2015년 봄, 구글은 자기네 언어 대신 라이벌의 도구를 택했어요.
구글도 자바스크립트가 마음에 들지 않기는 마찬가지였어요.
그래서 2011년 다트(Dart)라는 완전히 새로운 언어를 직접 만들었어요.
다트는 자바스크립트를 통째로 대체하겠다는 구글의 야심작이었어요.
하지만 다트는 웹 개발자들에게 크게 외면받았어요.
그러자 구글은 방향을 바꿔, 차세대 앵귤러 2 프레임워크를 개발하면서 AtScript라는 자체 확장 언어를 쓰기로 했어요.
앵귤러는 구글이 만든 웹 개발 도구로, 당시 전 세계 수많은 개발자가 매일 쓰던 도구였어요.
그런데 2015년 3월 ng-conf 컨퍼런스에서 구글이 충격적인 발표를 했어요.
ng-conf는 앵귤러 개발자들이 모이는 연례 행사인데, 그 자리에서 AtScript를 포기하고 앵귤러 2를 마이크로소프트의 TypeScript로 작성한다고 선언한 거예요.
심지어 AtScript에 있던 핵심 기능들을 TypeScript에 합쳐 달라고 하일스버그 팀에 직접 요청하기까지 했어요.
코카콜라가 자기 신제품 개발에 펩시 레시피를 베이스로 쓰기로 결정한 격이에요.
자바스크립트를 갈아치우려고 다트까지 만들었던 회사가, 정작 자기 대표 도구는 마이크로소프트의 확장 위에 지어 올린 거예요.
이 발표 이후 TypeScript는 단숨에 업계 표준의 반열에 올랐어요.
이제 자바스크립트가 타입스크립트를 닮아가려 해요.
2022년 3월, 자바스크립트의 공식 표준을 정하는 위원회 TC39에 흥미로운 제안이 들어왔어요.
TC39는 브라우저 제조사, 플랫폼 기업, 개발자들이 모여 자바스크립트의 미래를 결정하는 기구예요.
그 제안의 이름은 'Types as Comments', 번역하면 '주석으로서의 타입'이에요.
TypeScript는 변수에 타입을 붙여서 '이 값은 반드시 숫자여야 해'라고 미리 선언하는 방식으로 동작해요.
이 타입 문법을 자바스크립트 공식 표준에 새겨 넣자는 게 이 제안의 핵심이에요.
이 제안을 주도한 사람은 마이크로소프트의 다니엘 로젠바서였어요.
TC39는 이 제안을 '정식으로 논의할 만한 단계'인 stage 1으로 받아들였어요.
마이크로소프트가 2007년 자바스크립트 표준화를 막던 바로 그 자리에서, 이제 자바스크립트의 미래 문법을 제안하는 곳으로 역할이 뒤집힌 거예요.
Node.js를 만든 라이언 달도 비슷한 결론에 도달했어요.
Node.js는 브라우저 밖에서 자바스크립트를 실행하는 환경인데, 라이언 달은 "타입 시스템이 없었던 것"을 가장 후회한다고 말했어요.
그래서 그가 새로 만든 Deno는 처음 설계 단계부터 TypeScript를 기본 언어로 품었어요.
마치 외국에서 들어온 신조어가 너무 많이 쓰여서 국립국어원이 결국 표준어로 등재하기 시작한 것과 비슷해요.
한때 마이크로소프트의 비공식 확장이었던 TypeScript의 문법이, 자바스크립트의 공식 미래 문법으로 역수입되고 있어요.
마이크로소프트가 2007년 막으려 했던 바로 그 변화를, 2022년엔 자기들이 주도하고 있는 셈이에요.
이 반전을 뭐라고 불러야 할까요.
TTS 음성이 없어요.
아래 버튼으로 나레이션을 생성할 수 있습니다.
2
개