In case you consider suggestions for the best hosting company for your site - click here to get to the web page where we collected the list of most affordable in our opinion providers and reviews of their services submitted by the customers.

Lisp Klątwa

Rudolf Winestock

Ten tekst jest kolejną próbą pogodzenia moc języka programowania Lisp z niezdolności Lisp społeczności odtworzenia ich AI dokonania pre-zima. Bez wątpienia, Lisp był wpływowym źródłem pomysłów nawet w swoim czasie rekolekcji. Ten fakt, a także blask różnych architektur Lisp Machine, a obecny renesans Lisp po ponad dziesięciu lat na pustyni wykazać, że Lisp partyzanci musi mieć jakieś uzasadnienie dla ich zadowolenia z siebie. Mimo, że nie udało się przełożyć moc Lisp w ruch z przemożnym pędu.

W tym eseju, Uważam, że siłę wyrazu LISP jest rzeczywiście przyczyną jego braku pędu.

Moc Lisp jest jego największym wrogiem.

Oto eksperyment myślowy, aby udowodnić to: Weź dwa języki programowania, z których żadna nie są zorientowane obiektowo. Twoim zadaniem, jeśli zdecydujesz się go zaakceptować, to aby je obiektowe, utrzymując je wstecznie zgodny z języków oryginalnych, modulo kilka przypadków krawędzi. Wkładanie żadnej pary języków programowania do tego eksperymentu myślowego pokaże, że jest to łatwiejsze, niż w niektórych językach z innymi. To punkt eksperymentu myślowego. Oto banalny przykład: Pascal Intercal.

A teraz ta myśl eksperymentować interesujące: Wyobraź sobie, dodając orientację obiektu do języków programowania C i Programu. Dokonywanie Schemat obiektowego jest studentem drugiego zadanie pracy domowej. Z drugiej strony, dodając orientację obiektu do C wymaga kotlety programowania z Bjarne Stroustrup.

Konsekwencje tej rozbieżności potrzebnych talentu i wysiłku spowodować Lisp Curse:

Lisp jest tak potężny, że problemy, które są kwestie techniczne w innych językach programowania są kwestie społeczne w Lisp.

Rozważmy przypadek schematu, ponownie. Od co Schemat obiektowego jest tak łatwe, wielu hakerów Schemat uczyniły. Bardziej na miejscu, wiele indywidualnych hakerzy Schemat uczyniły. W 1990, co doprowadziło do prawdziwego spisie magazynowej pakietów obiektowych dla języka. Paradox of Choice, sam, gwarantuje, że żaden z nich nie stać się standardem. Teraz, niektóre implementacje Scheme mają własne zaplecze orientacji obiektu, to nie jest tak źle. Niemniej jednak fakt, że wiele z tych pakietów są dziełem osób samotnych, które doprowadziły do problemów napisał o Olin Dreszcze w dokumentowaniu systemu Shell, scsh.

Programy napisane przez poszczególnych hakerów podążają model zarysowania swędzeniu. Programy te będą rozwiązywać problem, że haker, który sam jest bez konieczności obsługi mającej części związane z problemem, który mógłby uczynić program bardziej przydatne dla innych. Ponadto, program jest pewien, do pracy na tym Lone hakera własnej konfiguracji, ale nie może być przenośny na inne implementacje systemu lub do tej samej realizacji Programu na innych platformach. Dokumentacja może być brakuje. Jest zasadniczo Projekt odbywa się w hakera obfite wolnego czasu, program jest zobowiązany ponieść powinny prawdziwi obowiązki naruszanie hakera. Jak zauważył Olin Dreszcze, oznacza to, że te projekty one-man-band mają tendencję do rozwiązywania osiemdziesięciu procent problemu.

Esej dr Mark Tarver w Bipolar Lisp Programmer, ma trafny opis tego zjawiska. Pisze z tych samotnych wilków Lisp hakerów i ich

... Niezdolność do końca rzeczy się prawidłowo. Wyrażenie "wyrzucane projekt" jest absolutnie wykonane dla BBM i pochodzi z Lisp społeczności. Lisp pozwala po prostu rzucić rzeczy od tak łatwo, i łatwo jest wziąć to za pewnik. Widziałem to 10 lat temu, gdy szukasz GUI do mojego Lisp. Nie ma problemu, było 9 różnych ofiary.Problem polegał na tym, że żaden z 9 zostały odpowiednio udokumentowane i nie były wolne od błędów. Zasadniczo każda osoba wprowadziła swoje własne rozwiązanie i to działało na niego tak, że było w porządku. To jest postawa BBM; to działa na mnie i ja to rozumiem. Jest to również produkt nie potrzebują lub chcą pomocy kogoś innego, aby coś zrobić.

Po raz kolejny, za język programowania C w tym eksperymencie myślowym. Ze względu na trudności w dokonywaniu C obiektowego, tylko dwa poważne próby problemu poczyniły wszelkie trakcji: C ++ i Objective-C. Objective-C jest najbardziej popularna na komputerach Macintosh, natomiast zasady C ++ wszędzie. Oznacza to, że dla danej platformy, kwestia, która obiektowego rozszerzenie C do wykorzystania odpowiedział już definitywnie. To oznacza, że urządzenia zorientowane obiektowo dla tych języków zostały udokumentowane, że zintegrowane środowiska programistyczne są ich świadomi, że biblioteki kodu są z nimi zgodne, i tak dalej. Esej dr Mark Tarver w sprawie bipolarnych Lispers sprawia, że punkt:

Teraz natomiast podejście C / C ++ jest zupełnie inna. To jest tak cholernie ciężko zrobić coś pęsetą i przyklej to nic istotnego, co robisz będzie prawdziwym osiągnięciem. Aby to udokumentować. Także jesteś zobowiązany do potrzebują pomocy w każdym projekcie C znacznych rozmiarach; więc jesteś odpowiedzialny za społeczny i współpracować z innymi. Trzeba, żeby dostać się gdzieś.

A wszystko to, z punktu widzenia pracodawcy, jest atrakcyjna. Dziesięć osób, które komunikują się, rzeczy, dokumentów prawidłowo i pracują razem są lepsze niż jeden BBM hacking Lisp, który może być zastąpiony tylko przez innego BBM (jeśli można znaleźć jeden), w mało prawdopodobnym przypadku, że nie będzie on, w pewnym momencie, w dół, nie będąc rebootable.

Dlatego ci, którzy już wiedzą, C, nie pytaj "Jaki system obiektem mam się uczyć?" Zamiast tego użyć C ++ lub Objective-C, w zależności od tego, co ich koledzy używają, a następnie przejść do "Jak korzystać z obiektowego funkcji X?" Odpowiedź: "GOOG go, a znajdziecie".

Prawdziwi hakerzy, oczywiście, od dawna wiadomo, że programowanie obiektowe nie jest panaceum, że jego zwolennicy twierdzili. Prawdziwe Hakerzy przeniósł się do bardziej zaawansowanych pojęć takich jak niezmiennych struktur danych, typu wnioskowania, oceny leniwy, monad, strzałki, pasujące do wzorca, programowanie oparte na ograniczeniach i tak dalej. Prawdziwi hakerzy również znane, na chwilę, że C i C ++ nie są odpowiednie dla większości programów, które nie muszą robić dowolny bit-błahy. Niemniej jednak, nadal posiada Klątwa Lisp.

Niektórzy miłośnicy Lisp Smug nie badanych obecnych upraw językach akademickich (Haskell, SML, et cetera) i uznał je chce, mówiąc, że każdy cechą ich jest albo już w Lisp lub można łatwo wdrożyć - i poprawione - z Lisp makra. Oni chyba rację.

Szkoda, że Lisp hakerzy.

Ćwiczenia dla czytelnika: Wyobraź sobie, że silna rywalizacja między Haskell i rozwija Common Lisp. Co się potem dzieje?

Odpowiedź: Lisp Klątwa rzutach Co drugi lub trzeci poważny Lisp haker będzie toczyć własną realizację leniwy oceny, czystości funkcjonalnej, strzały, pasujące do wzorca, typ wnioskowania, a resztą.. Większość z tych projektów będą operacje lone wolf. W ten sposób będą mieli osiemdziesiąt procent cech, że większość osób potrzebujących (inny osiemdziesiąt procent w każdym przypadku). Będą one słabo udokumentowane. Oni nie będą przenośne między systemami Lisp. Niektóre pokaże wielką obietnicę przed porzucone, gdy opiekun projektu gaśnie zapłacić swoje rachunki. Kilka pobije Haskell wzdłuż tego lub tego wymiaru (ponownie, inna w każdym przypadku), ale ich przyjęcie będzie hamowany przez wojny płomienia na comp.lang.lisp grupy dyskusyjnej.

Końcówek: Kolekcja losowej Old-time LISP hakera makr doda do nieudokumentowane, nieprzenośne, bug jeździł realizacji 80% Haskell, ponieważ Lisp jest silniejsze niż Haskell.

Morał z tej historii jest to, że skutki uboczne i trzeciorzędne znaczenie. Technologia wpływa nie tylko to, co możemy zrobić w odniesieniu do kwestii technicznych, ale również wpływa na nasze zachowania społeczne. Takie zachowanie społeczne mogą pętli plecy i wpływa na oryginalne kwestie technologiczne pod uwagę.

Lisp jest boleśnie wymownym przykładem zastosowania tej lekcji. Lisp jest tak potężny, że zachęca indywidualną niezależność punktu krwawej umysłu. Ta niezależność przyniosły nadzwyczaj dobre innowacje jak w Lisp dni maszynowe. Ta sama niezależność utrudnia również starań, aby ożywić "LISP w dół" Systemy stare; żaden projekt "Lisp OS" zebrał masę krytyczną od upadku Symbolics i IRP.

Jednym z efektów tych działań średnim i wyższym jest to, że nawet jeśli Lisp jest językiem najbardziej wyraziste kiedyś tak, że teoretycznie jest to niemożliwe, aby język bardziej wyrazisty, Lispers będzie jeszcze wiele nauczyć od innych języków programowania. Chłopaki Smalltalk uczył wszystkich - w tym Lisp hakerów - to i owo na temat programowania obiektowego.Język programowania Czyste i kombi Mozart / Oz może mieć kilka niespodzianek własnych.

Lisp Klątwa nie zaprzecza maksymę Stanislav Datskovskiy: Pracodawcy wiele chętniej, że pracownicy być zmienny, a nie maksymalnie wydajne. Zbyt prawdziwe. Z wielkim trudem czy ktoś Wyrównaj sprzedajność klasy menedżerskiej. Jednak ostatnie linie eseju są problematyczne. A mianowicie:

Jak dla świata "wolne oprogramowanie", to chętnie sprzeciwia dogmaty przemysłowych w retoryce, ale nie na wszystkich w praktyce. Nie stronił od piekieł koncepcja gospodarstwa kostki nigdy nie zyskał prawdziwą trakcję wśród mas amatorskich.

na przypis, oferuje Linuksa jako przykład tego niechęć do wykonywania różnych pomysłów. Aby upewnić się, że ma rację, jeśli chodzi o systemy operacyjne (najwyższy komentarz, w szczególności, jest irytująco rozwarty). Nie ma rację, jeśli chodzi o języki programowania. Python i Ruby pod wpływem Lisp. Wielu fanów wyrazić szacunek dla Lisp, a niektóre z ich interesie spotęgowało Lisp renesans. Z pewnym sprawiedliwości, JavaScript został opisany jako "Programu w odzieży z C." pomimo pochodzące tych piekieł gospodarskich kostki.

Niemniej jednak, pomimo tego wpływu, w obu światach źródłowych korporacyjnych i otwartych, Lisp ma nadal tylko część udziału umysłu deweloper, który obecny upraw zaawansowanych języków skryptowych, które przyciąga.Zamknięte umysłu z MBA nie może być jedynym wytłumaczeniem.Lisp Klątwa ma więcej mocy wyjaśniającej.

Darmowe środowiska programistyczne dostępne dla Lisp dalej przykładem Lisp Klątwa.

To żenujące, aby zwrócić na to uwagę, ale to musi być zrobione. Zapomnij o Lisp Maszynie; nawet nie mają systemy rozwoju, które odpowiadają co przeciętny average Smalltalk hacker przejmie za pewnik ("Zawsze czułem, Lisp jest lepsza języka i Smalltalk jest lepsze środowisko." - Ramon Leon). O ile nie płacą tysiące dolarów, Lisp hakerzy nadal tkwi w Emacs.

James Gosling, autor pierwszych Emacs, które biegły na Uniksie, prawidłowo wskazał, że Emacs zasadniczo nie uległ zmianie w ponad dwudziestu lat. To dlatego, że opiekunowie Emacs nadal warstw kod na szczycie konstrukcji, która została rozliczona z powrotem, kiedy Emacs był projekt grad-student MIT AI Lab, tzn, gdy rozwój Emacs był nadal pośrednio finansowane z długu publicznego.Slashdotter może zgłosić sprzeciw, że Emacs jest już dość zdolny i może wszystko, że każdy inny może zrobić środowisko programistyczne, tylko lepiej. Ci, którzy korzystali Lisp Machines powiedzieć inaczej.

Więc dlaczego nie Lisp hakerzy umieścić chłopaków Smalltalk w ich właściwym miejscu? Dlaczego nie zwrócą się one z wolnego systemu rozwoju, który przywodzi na myśl niektóre z utraconych chwał LispM, nawet jeśli nie mogą odtworzyć inny LispM?

Powodem, dla którego tak się nie stanie się tak z powodu Lisp Curse. Duża liczba hakerów Lisp musiałby współpracować ze sobą. Przyjrzeć się bliżej: Duża liczba tego rodzaju ludzi, którzy stają się Lisp hakerów będzie musiał współpracować ze sobą. I będą musieli ze sobą współpracować nad projektem, który nie był już dany od początku. I nie byłoby żadnego dyscypliny zewnętrzne, takie jak inwestor wysokiego ryzyka lub innego mistrza korporacyjnej, aby utrzymać je na torze.

Każdy projekt ma tarcia pomiędzy członków, sporów, konfliktów stylu i filozofii. Te problemy społeczne są przeciwdziała fakt, że żaden duży projekt może być dokonane w inny sposób. "Wszyscy musimy trzymać się razem, albo wszyscy będziemy spędzać osobno." Ale wyrazistość Lisp czyni tę siłę wyrównawcze znacznie słabsze; zawsze można uruchomić własnego projektu. W ten sposób poszczególne hakerzy zdecydować, że problemem nie jest tego warte. Więc albo zamknąć projekt, czy nie przyłączyć się do projektu na początku. To jest Lisp Curse.

Źródło w języku angielskim: winestockwebdesign.com