본문으로 건너뛰기

결론

Javascript는 낮은 기대치를 가지고 만들어진 언어였다. Javascript는 원래 브라우저 내에서 Java의 조력자 역할을 하도록 의도되었고 초보 웹 페이지 개발자와 파트타임 프로그래머에게 적합하도록 만들어졌다. 하지만 얼마 지나지 않아 Javascript는 인터랙티브 웹 페이지를 위한 주요 언어로서 Java를 뛰어넘었다. Javascript의 첫 20년은 Javascript를 강화하고 개선하고 재설계하고 혹은 아예 대체하려는 실패한 시도들로 가득 차 있었지만 그러한 20년 끝에 Javascript는 끝내 세계에서 가장 널리 쓰이는 프로그래밍 언어가 되었다. 이제 그 사용은 웹페이지에만 국한되지도 않는다. Node.js와 같은 호스트를 사용하여 구축된 서버 애플리케이션 외에도 Javascript는 데스크톱 애플리케이션, 모바일 기기 애플리케이션, 피트니스 트래커, 로봇, 그리고 수많은 임베디드 시스템을 만드는 데 사용된다. Javascript는 심지어 제임스 웹 우주 망원경의 일부로도 들어갔다. 우주 망원경은 기내 제어 소프트웨어의 일부로 Nombas의 ES1 레벨 임베디드 Javascript를 사용한다[Dashevsky and Balzano 2008].

Javascript의 성공은 필연적이었을까? 웹과 브라우저 게임 이론은 상호 호환성을 요구하기 때문에 하나의 지배적인 웹 페이지 프로그래밍 언어를 선호할 수도 있다. 하지만 그 언어가 Javascript여야만 하는 두드러지는 이유는 없었다. 다른 언어들도 그 역할을 할 수 있었다. 실제로 Javascript의 역사 속에는 결과가 달라졌을 수 있는 여러 지점이 있다.

만약 Marc Andreessen이 브라우저 스크립팅 언어 개발을 주장하지 않았다면?

만약 Sun의 Bill Joy가 Java에 보완재로써의 초기 Mocha 개발을 지지하지 않았다면?

만약 Mocha 개발 작업이 Brendan Eich가 아닌 다른 누군가에게 주어졌다면?

만약 Eich가 더 경험 많은 언어 설계자 혹은 구현자였고, 10일만에 데모를 만드는 것이 불가능한 작업이라고 결론지었더라면?

만약 Eich가 덜 능력있는 프로그래머이거나 너무 야심찬 언어 설계를 해서 10일 동안 Mocha 데모를 만드는 데 실패했다면?

만약 Javascript의 원래 설계가 일급 함수를 포함하지 않았다면?

만약 Sun이나 Netscape가 Java를 격리된 환경에서 호스팅하는 대신 HTML과 Java를 더 잘 통합하는 데 노력을 기울였다면?

만약 Microsoft가 JScript를 구현하지 않고 그 대신에 Visual Basic 대안을 더 강력하게 추진했다면?

만약 Microsoft가 브라우저 시장 점유율이 90%를 넘은 후에도 브라우저 언어 기술에 대한 투자를 계속했다면?

만약 ES42의 재설계에 참여하는 대신에 Macromedia/Adobe가 ActionScript 2나 3을 공식 브라우저 표준으로 밀어붙였다면?

만약 TC39 내에서 ES42에 대한 반대가 나타나지 않았다면?

만약, 만약, 만약...하지만 이런 일들 중 어떤 것도 실제로 일어나지 않았다. 대신에, 때로는 심한 비판과 조롱까지 받으면서도 브라우저 구현자, 엔진 개발자, 프레임워크 설계자, 표준 기여자, 도구 제작자, 웹 애플리케이션 프로그래머들의 한 세대가 Javascript를 사용하고 향상시키는 실용적인 방법을 찾아냈다. 웹을 깨뜨리지 않으면서도 말이다.

Brendan Eich는 2011년 한 컨퍼런스 토크에서 "JSLOL" [Eich 2011e]이라는 제목으로 JavaScript를 묘사했다.

  • 사람들은 처음에 JS가 "풍부한 인터넷 애플리케이션"을 구축하는 데 유용할 수 없다고 말했다.
  • 그 다음 사람들은 JS가 빠를 수 없다고 말했다.
  • 그 다음 사람들은 JS를 고칠 수 없다고 말했다.
  • 그 다음 사람들은 JS가 멀티코어/GPU를 활용할 수 없다고 말했다.
  • 그들은 매번 틀렸다! 내 조언: 항상 JS에 베팅하라