Jeśli Lisp jest taki wspaniały

Maj 2003

Jeśli Lisp jest taki wspaniały, dlaczego nie używa go więcej osób? Zostałem zapytany o to przez studenta na niedawno udzielonym przeze mnie wykładzie. Nie po raz pierwszy zresztą.

W językach, podobnie jak w wielu innych rzeczach, nie ma dużej korelacji między popularnością a jakością. Dlaczego John Grisham (ranking sprzedaży "King of Torts", 44) sprzedaje więcej niż Jane Austen ("Pride and Prejudice" ranking sprzedaży, 6191)? Czy nawet Grisham twierdziłby, że to dlatego, iż jest lepszym pisarzem?

Oto pierwsze zdanie "Dumy i uprzedzenia":

It is a truth universally acknowledged, that a single man in possession of a good fortune must be in want of a wife.

"Powszechnie wiadomo?" Długie słowa jak na pierwsze zdanie historii miłosnej.

Podobnie jak Jane Austen, Lisp wygląda na trudny. Jego składnia, a raczej jej brak, sprawia, że wygląda całkowicie inaczej niż języki, do których większość ludzi jest przyzwyczajona. Zanim nauczyłem się Lispa, też się go bałem. Niedawno natknąłem się na notatnik z 1983 roku, w którym napisałem:

Chyba powinienem się nauczyć Lispa, ale wydaje się taki obcy.

Na szczęście miałem wtedy 19 lat i nie byłem zbyt oporny na naukę nowych rzeczy. Byłem tak niewiedzący, że nauka niemal czegokolwiek oznaczała naukę nowych rzeczy.

Ludzie przestraszeni przez Lisp wymyślają inne powody, by go nie używać. Standardową wymówką, gdy C był domyślnym językiem, było to, że Lisp był zbyt wolny. Teraz, gdy dialekty Lispa należą do szybszych dostępnych języków, ta wymówka zniknęła. Teraz standardową wymówką jest jawnie błędne koło: że inne języki są popularniejsze.

(Strzeż się takiego rozumowania. Takie rozumowanie prowadzi do Windowsa.)

Popularność zawsze sama się napędza, ale szczególnie dotyczy to języków programowania. Więcej bibliotek jest pisanych dla popularnych języków, co czyni je jeszcze popularniejszymi. Programy często muszą współpracować z istniejącymi programami, a jest to łatwiejsze, jeśli są napisane w tym samym języku, więc języki rozprzestrzeniają się z programu na program jak wirus. A menedżerowie preferują popularne języki, ponieważ dają im większą siłę przetargową nad programistami, którzy mogą być łatwiej zastąpieni.

Rzeczywiście, gdyby języki programowania były mniej więcej równoważne, nie byłoby uzasadnienia do używania czegokolwiek poza najpopularniejszymi. Ale nie są one równoważne, ani trochę. I dlatego mniej popularne języki, podobnie jak powieści Jane Austen, nadal istnieją. Kiedy wszyscy inni czytają najnowszą powieść Johna Grishama, zawsze znajdzie się kilka osób czytających zamiast tego Jane Austen.