다음 책들과 MDN의 내용을 모아 자바스크립트 핵심 위주로 정리해 보았습니다. 여러 권의 책을 한 글로 훑어볼 수 있도록 최대한 간결하게 정리하겠습니다.
이미 다른 프로그래밍 언어에 익숙하다면, 자바스크립트가 객체 지향, 함수형 프로그래밍 스타일에 적합한 고수준의 동적인 인터프리터 언어라는 사실을 아는 것이 도움될 것입니다.
데이비드 플래너건 , 『자바스크립트 완벽 가이드』, 인사이트(2022), p1.
자바스크립트 변수에는 타입이 없습니다. 이런 문법은 어느 정도 자바에서 차용한 것이 맞지만, 이를 제외하면 두 언어 사이에는 별 관련이 없습니다. 자바스크립트의 일급 함수라는 개념은 스킴(Scheme)에서 가져왔고, 프로토타입에 기반한 상속은 유명하지 않은 언어 셀프(Self)에서 가져왔습니다. 하지만 자바스크립트를 배우기 위해 이 두 언어를 알아야 하는 것은 아니며, 이 용어에 익숙할 필요도 없습니다.
데이비드 플래너건 , 『자바스크립트 완벽 가이드』, 인사이트(2022), p1.
프로그래밍 언어를 설계할 때 가장 중요한 목적은 그 언어가 분명하고 논리적이어서 구성이 잘 되고, 이상한 코너 케이스(corner case)가 없어야 한다는 것입니다. 자바스크립트는 이 목적에 잘 부합하는 언어는 아닙니다. 오히려 새로운 버전이 나올 때마다 쓸데없는 기능을 추가하느라 점점 더 그 목적에서 멀어지고 있습니다.
더글러스 크락포드 , 『자바스크립트는 왜 그 모양일까?』, 인사이트(2020), p2.
자바스크립트는 처음 시작하고 실행하기에는 가장 쉬운 언어지만, 독특한 기벽 탓에 다른 언어들에 비해 언어 자체를 완전히 익히고 섭렵한 달인은 찾아보기 매우 드문 편이다. …그러나 간단하고 쓰기 쉬운 언어일수록 여러 가지 의미와 복잡하고 세밀한 다양한 기법들이 결집되어 있기 때문에 꼼꼼하게 학습하지 않으면 제아무리 노련한 개발자라 할지라도 올바르게 이해하지 못한다. 이것이 바로 자바스크립트의 역설이자 아킬레스건이며, 이 책을 읽고 여러분이 넘어야 할 산이다. 다 알지 못해도 사용하는 데 문제가 없다 보니 끝내 자바스크립트를 제대로 이해하지 못하고 넘어가는 경우가 비일비재하다.
카일 심슨 , 『You Don’t Know JS - 타입과 문법, 스코프와 클로저』, 한빛미디어(2017), p12-13.
자바스크립트는 과도하다고 느껴질 만큼 친절한 프로그래밍 언어입니다. 웬만해서는 에러 없이 실행되며, 작은 실수는 알아서 대응해 주는 등, 되도록 손이 덜 가게끔 설계되어 있습니다. …이러한 자바스크립트의 특징은 편리한 경우도 있지만 내부 동작을 이해하기 어렵게 만들기도 합니다. 이는 자바스크립트의 탄생 목적이 일반적인 프로그래밍 언어와 다르기 때문입니다. …자바스크립트는 웹페이지의 단순한 보조 기능을 처리하기 위한 제한적인 용도를 목적으로 태어났습니다. 하지만 자바스크립트는 더 이상 제한적인 용도의 프로그래밍 언어가 아닙니다.
이웅모 , 『모던 자바스크립트 Deep Dive』, 위키북스(2020), pⅣ
다음 글에서는 자바스크립트의 어휘 구조에 대해 다루어 볼 예정입니다.
References
데이비드 플래너건 , 『자바스크립트 완벽 가이드』, 인사이트(2022)
더글러스 크락포드 , 『자바스크립트는 왜 그 모양일까?』, 인사이트(2020)
카일 심슨 , 『You Don’t Know JS - 타입과 문법, 스코프와 클로저』, 한빛미디어(2017)
이웅모 , 『모던 자바스크립트 Deep Dive』, 위키북스(2020)