Lisp이 그렇게 훌륭하다면

2003년 5월

Lisp이 그렇게 훌륭하다면 왜 더 많은 사람들이 사용하지 않을까? 최근 강연에서 한 학생에게 이 질문을 받았다. 처음이 아니었다.

언어에 있어서는, 다른 많은 것들과 마찬가지로, 인기와 품질 사이에 큰 상관관계가 없다. 왜 John Grisham의 (King of Torts 판매 순위 44위) 책이 Jane Austen의 (Pride and Prejudice 판매 순위 6191위) 책보다 더 많이 팔릴까? 심지어 Grisham조차 자신이 더 나은 작가라서 그렇다고 주장할까?

다음은 _오만과 편견_의 첫 문장이다:

재산을 넉넉히 가진 독신 남자가 아내를 필요로 한다는 것은 세상이 보편적으로 인정하는 진리이다.

"세상이 보편적으로 인정하는 진리라고?" 연애 소설의 첫 문장치고는 긴 단어들이다.

Jane Austen처럼 Lisp도 어려워 보인다. Lisp의 문법, 혹은 문법의 부재는 대부분의 사람들이 익숙한 언어와는 완전히 다르게 보이게 한다. Lisp을 배우기 전에는 나도 그것을 두려워했다. 최근 1983년도에 내가 썼던 노트를 발견했는데, 거기에는 이렇게 적혀 있었다:

Lisp을 배워야 할 것 같긴 한데, 너무 이질적으로 느껴진다.

다행히도, 그때 나는 19살이었고 새로운 것을 배우는 데 크게 저항하지 않았다. 나는 너무 무지해서 거의 모든 것을 배우는 것이 새로운 것을 배우는 것을 의미했다.

Lisp에 겁먹은 사람들은 그것을 사용하지 않는 다른 이유를 만들어낸다. C가 기본 언어였던 시절의 일반적인 변명은 Lisp이 너무 느리다는 것이었다. 이제 Lisp 방언들이 사용 가능한 언어 중 더 빠른 언어에 속하게 되면서, 그 변명은 사라졌다. 이제 일반적인 변명은 노골적으로 순환적이다: 다른 언어들이 더 인기가 많다는 것.

(그런 추론을 조심하라. 그것은 당신에게 Windows를 안겨줄 것이다.)

인기는 항상 자가 증식하지만, 프로그래밍 언어에서는 특히 그렇다. 인기 있는 언어에는 더 많은 라이브러리가 작성되고, 이는 그 언어를 더욱 인기 있게 만든다. 프로그램은 종종 기존 프로그램과 함께 작동해야 하는데, 같은 언어로 작성되면 더 쉽다. 그래서 언어는 바이러스처럼 프로그램에서 프로그램으로 퍼져나간다. 그리고 관리자들은 인기 있는 언어를 선호하는데, 이는 개발자들에 대한 영향력을 더 많이 주기 때문이다. 개발자들은 더 쉽게 교체될 수 있기 때문이다.

실제로, 만약 프로그래밍 언어들이 모두 다 비슷하다면, 가장 인기 있는 언어 외에 다른 것을 사용할 정당성은 거의 없을 것이다. 하지만 그것들은 전혀 동등하지 않다. 결코 그렇지 않다. 그리고 그것이 Jane Austen의 소설처럼 덜 인기 있는 언어들이 계속해서 살아남는 이유이다. 다른 모든 사람들이 최신 John Grisham 소설을 읽을 때, 항상 Jane Austen을 대신 읽는 소수의 사람들이 있을 것이다.