Knowledge Team





Lisp Curse

Prvotno je http://www.winestockwebdesign.com/Essays/Lisp_Curse.html

Tento esej je ďalším pokusom zmieriť moc Lisp programovacieho jazyka s neschopnosťou Lisp komunity reprodukovať svojej pre-AI úspechy zime. Niet pochýb o tom, Lisp bol vplyvný zdrojom nápadov aj vo svojej dobe ustúpiť. Táto okolnosť, a lesk rôznych Lisp Machine architektúry, a súčasný Lisp renesancie po viac ako desiatich rokoch v divočine ukazujú, že Lisp partizáni musí mať nejaký dôvod pre ich samoľúbosti. Napriek tomu, že sme neboli schopní prekladať silu Lisp do pohybu s neodolateľnou hybnosti.

V tejto eseji, tvrdím, že vyjadrovacie sila LISP je vlastne príčinou jeho nedostatok hybnosti.

Sila Lisp je jeho vlastný najhorší nepriateľ.

Tu je myšlienkový experiment, aby to dokázal: Vezmite dva programovacie jazyky, z ktorých ani jedna sú objektovo orientované. Vašou úlohou, ak sa rozhodnete prijať, je, aby sa im objektovo orientovaný, držať je spätne kompatibilná s pôvodnými jazykmi, modulo niektorých prípadoch hrany. Vkladanie nejaký pár programovacích jazykov do tohto myšlienkového experimentu ukáže, že je to jednoduchšie, s niektorými jazykmi než s ostatnými. To je bod myšlienkového experimentu. Tu je to triviálne príklad: INTERCAL a Pascal.

Teraz aby to myšlienkový experiment zaujímavé: Predstavte si, že pridávanie orientáciu objektu na C a schéme programovacích jazykov. Tvorby systému, objektovo orientovaný je úloha druháku domácu úlohu. Na druhej strane pridanie orientáciu objektu C vyžaduje programovanie kotlety na Bjarne Stroustrup.

Dôsledky tejto odlišnosti v potrebnom talentu a úsilia, spôsobí, že Lisp prekliatie:

Lisp je tak silný, že problémy, ktoré sú technické problémy v iných programovacích jazykov sú sociálne otázky v Lisp.

Zoberme si prípad systému, znova. Vzhľadom k tomu, takže schéma objektovo orientovaný je tak jednoduché, veľa schém hackeri tak urobili. Presnejšie povedané, veľa individuálny plán hackeri tak urobili. V roku 1990, čo viedlo k naozajstnej skladu zoznamu zásob objektovo orientovaných balíčky pre jazyk. Paradox of Choice, sám, zaručené, že nikto z nich by sa stal štandardom. Teraz, že niektoré schéma implementácie majú vlastné objektovej orientácie zariadenia, nie je to tak zlé. Avšak skutočnosť, že mnoho z týchto balíčkov boli dielom osamelých jedincov viedlo k problémom, ktoré Olin Shivers písali v dokumentovaní schéme Shell, scsh.

Programy pozri hackeri majú tendenciu nasledovať model poškriabaniu, svrbenie. Tieto programy budú riešiť problém, že hacker, sám, má bez nevyhnutne manipuláciu súvisiacich častí problému, ktorý by tento program viac užitočné pre ostatných. Program navyše je určite na tom pracovať osamelého hackera vlastné nastavenia, ale nemusí byť prenosná na iné Programu implementácie alebo toho istého prevedenia schémy na iných platformách. Dokumentácia môže chýbať. Byť v podstate projekt prebieha v hackerov dostatočným voľného času, program môže trpieť by v reálnom živote zodpovednosť zasahovať do hackera. Ako Olin Shivers poznamenať, to znamená, že tieto one-man-band projekty tendenciu riešiť osemdesiat percent problému.

Dr Mark Tarver esej, bipolárne Lisp Programátor, má apt opis tohto javu. Píše týchto osamelý vlk Lisp hackerov a ich

… Neschopnosť správne dokončiť veci preč. Výraz “hodiť-away konštrukcie” je úplne stanovené, že BBM a pochádza z Lisp komunity. Lisp umožňuje len Chuck veci sa tak ľahko, a to je jednoduché, aby to za samozrejmosť. Videl som to pred 10 rokmi, kedy hľadá GUI k môjmu Lisp. Žiadny problém, tam bolo 9 rôznych ponuky. Problém bol v tom, že žiadny z 9 boli riadne zdokumentované a nikto nebol bez chýb. V podstate každý človek zaviedla svoje vlastné riešenie, a to pre neho pracovali, takže to bolo v pohode. To je BBM postoj; to funguje u mňa a ja to chápem. To je tiež produktom netreba ani nechcel pomôcť niekto iný, aby niečo urobiť.

Znovu zvážiť programovací jazyk C, v tomto myšlienkovom experimente. Vzhľadom k obtiažnosti výroby C objektovo orientované, tak dve vážne pokusy o probléme robili žiadny ťah: C ++ a Objective-C. Objective-C je najviac populárne v počítači Macintosh, kým pravidlá C ++ všade inde. To znamená, že pre danú platformu, otázka, ktorý objektovo orientované rozšírenie C používať už bola s konečnou platnosťou zodpovedaná. To znamená, že zariadenie objektovo orientované pre tieto jazyky boli zdokumentované, že integrované prostredie pre rozvoj sú si vedomí z nich, že knižnice kódu sú kompatibilné s nimi, a tak ďalej.

Dr Mark Tarver esej o bipolárnou Lispers robí bod:

Teraz v kontraste, C / C ++ prístup je úplne odlišný. Je to tak sakramentsky ťažké robiť niečo s pinzetou a lepidlom, ktoré nič podstatné, čo robíte bude naozajstný úspech. Ak ju chcete zdokumentovať. Tiež ste môžu potrebovať pomoc pri akomkoľvek C projektu významné veľkosti; takže ste zodpovedný za sociálne a spolupracovať s ostatnými. Musíte sa, len aby sa dostali niekam.

A to všetko z pohľadu zamestnávateľa, je atraktívna. Desať ľudí, ktorí komunikujú, čo dokument správne a pracujú spoločne sú vhodnejšie do jedného BBM hacking Lisp, ktorý môže byť nahradený iba iným BBM (ak môžete nájsť jeden), v nie nepravdepodobnom prípade, že sa bude v určitej dobe, ísť dole, bez toho by bol rebootable.

Preto tí, ktorí už vedia, C, nepýtajte sa “Aký objekt systém mám naučiť?” Namiesto toho používajú C ++ alebo Objective-C v závislosti na tom, čo ich kolegovia, ktorý používate, a potom prejsť na “Ako sa používa objektovo orientovaný funkcia X?” Odpoveď: “GOOG to a budete nájsť.”

Reálne Hackeri, samozrejme, už dlho známe, že objektovo orientované programovanie nie je všeliek, že jeho prívrženci tvrdili. Skutočné Hackeri sa presunuli do pokročilejšie koncepty, ako sú nezmeniteľné dátových štruktúr, zadajte inferencing, lenivé vyhodnocovanie, monads, šípky, vzorov, obmedzujúcimi podmienkami, relácií, a tak ďalej. Skutočné Hackeri tiež známy, na chvíľu, že C a C ++ nie sú vhodné pre väčšinu programov, ktoré nepotrebujú k tomu ľubovoľný bit-pohrával. Avšak, Lisp Curse stále drží.
Niektoré samoľúby Lisp-milenci skúmalo aktuálne úrodu akademických jazykov (Haskell, OCaml, et cetera) a z nich chcú, hovorí, že akýkoľvek prvok ich je buď už v Lispe, alebo môže byť ľahko implementovať – a zlepšil – s Lisp makrá. Sú to zrejme pravdu.

Škoda, že Lisp hackeri.

Dr Mark Tarver – dvakrát citoval vyššie – napísal dialekt Lisp volal Qi. To je menej ako desať tisíc riadkov makier bežiacich na vrchole CLISP. Vykonáva sa väčšina z jedinečných rysov Haskell a OCaml. V niektorých ohľadoch, Qi je predčí. Napríklad, zadajte inferencing motor Qi je Turing kompletná. Vo svete, kde boli potrebné tímy talentovaných akademických pracovníkov písať Haskell, jeden človek, Dr Tarver napísal Qi všetky jeho Lonesome.

Prečítajte si, že sa odsek opäť a extrapolovať.

Cvičenie pre čitateľa: Predstavte si, že silná rivalita sa vyvíja medzi Haskell a Common Lisp. Čo sa bude diať ďalej?

Odpoveď: Lisp Curse kopy v každej druhej alebo tretej vážny Lisp hacker bude valiť svoju vlastnú implementáciu lenivý hodnotenie, funkčné čistota, šípky, vzorov, typ inferencing, a zvyšok .. Väčšina z týchto projektov bude osamelý vlk-operácie. Tak, oni budú mať osemdesiat percent funkcií, ktoré väčšina ľudí potrebujú (iný osemdesiat percent v každom prípade). Budú zle zdokumentované. Nebudú prenosné cez Lisp systémov. Predtým, než je opustený, zatiaľ čo správca projektu vypne platiť svoje účty sa niektoré ukazujú veľký prísľub. Niekoľko porazí Haskell po tej či onej dimenzie (opäť iný človek v každom prípade), ale ich prijatie bude brzdiť flame wars na comp.lang.lisp Internetová skupina.

Koniec hry: kolekcia náhodný old-time Lisp hackera makier pridá až do nelegálne, neprenosnú chrobáky plnenia 80% z Haskell, pretože Lisp je mocnejšia než Haskell.

Poučenie z tohto príbehu je, že sekundárne a terciárne dopady záleží. Technológia má vplyv nielen na to, čo môžeme robiť, pokiaľ ide o technologické otázky, ale tiež ovplyvňuje naše správanie. Toto spoločenské správanie môže prechádzať späť a neovplyvní pôvodné technologické problémy do úvahy.

Lisp je bolestne výrečným príkladom tejto lekcie. Lisp je tak silný, že podporuje individuálne nezávislosti až k bodu krvavé nepozornosti. Táto nezávislosť priniesol úžasne dobrú inovácií ako Lisp Machine dní. Rovnaký nezávislosť tiež brzdí snahy o oživenie “Lisp celú cestu dole” Systémy starý; žiadny projekt “Lisp OS” zhromaždil kritické množstvo od zániku symbolikou a LMI.

Jedným z výsledkov týchto sekundárnych a terciárnych efektov je, že aj keď Lisp je najviac expresívne jazyk vôbec, tak, že je teoreticky možné, aby sa viac expresívne jazyk, bude Lispers ešte čo učiť od iných programovacích jazykov. Smalltalk chlapci učili všetci – vrátane Lisp hackermi – jednu alebo dve veci o objektovo orientovaného programovania. Clean programovací jazyk a Mozart / Oz combo môže mať niekoľko prekvapení ich vlastné.

Lisp Curse nie je v rozpore so maxime Stanislav Datskovskiy: Zamestnávatelia oveľa radšej, že pracovníci zastupiteľný, skôr než maximálne produktívne. Príliš pravda. S veľkými ťažkosťami robí niekto sondovať predajnosť manažérske triedy. Avšak, posledný riadky jeho eseje sú problematické. Totiž:

Pokiaľ ide o “free software” svete, dychtivo sa stavia proti priemyselnej dogmy v rétorike, ale vôbec nie v praxi. No koncepcia vyhýbajú kocka poľnohospodárskych pekiel kedy získala skutočnú ťahu medzi amatérskymi masy.

V poznámke pod čiarou, ponúka Linux ako príklad tejto neochoty sledujú odlišné predstavy. Ak chcete mať istotu, že má pravdu, keď dôjde na operačných systémov (najvyššia komentár, najmä, je neznesiteľne tupý). Nemá pravdu, pokiaľ ide o programovacích jazykov. Python a Ruby boli ovplyvnené Lisp. Mnoho z ich fanúšikov vyjadriť rešpekt k Lisp a niektoré z ich záujmu sa rozšíril Lisp renesancie. S istou spravodlivosť, JavaScript bol opísaný ako “systém v C oblečení” napriek pochádzajúce z týchto kocky poľnohospodárskych pekiel.

Napriek tomuto vplyvu, a to ako na firemné a open source sveta, Lisp má stále len zlomok podielu developer mysle, ktorá súčasná úroda pokročilých skriptovacích jazykov priťahovali. Uzavreté zmýšľanie o MBA nemôže byť jediné vysvetlenie pre to. Lisp Curse má viac vypovedaciu schopnosť.

Vývojové prostredie zadarmo k dispozícii pre Lisp ďalšie príkladom Lisp kliatbu.

Je to trápne poukázať na to, ale musí sa to urobiť. Zabudnite na Lisp Machine; nemáme ani vývoj systémov, ktoré zodpovedajú tomu, čo priemerný Smalltalk hacker berie za samozrejmosť (“Vždy som cítil, Lisp je nadradený jazyk a Smalltalk je vynikajúci prostredie.” – Ramon Leon). Ak platia tisíce dolárov, Lisp hackeri sú stále uväznení s Emacs.

James Gosling, autor prvých Emacsu, ktoré bežali na Unixe, správne poukázal na to, že Emacs zásadne nezmenil viac ako dvadsať rokov. Je to preto, že správcovia Emacs stále vrstvenie kód na vrchole dizajnom, ktorý bol urovnaný späť, keď Emacs bol grad, študentský projekt na MIT AI Lab, tj, keď Emacs vývoj bol ešte nepriamo financovaná zo štátneho dlhu. Slashdotter môže namietnuť, že Emacs je už celkom schopný a môže robiť čokoľvek, že akýkoľvek iný vývoj prostredia môže urobiť, ale len lepšie. Tí, ktorí používajú Lisp stroja povedať inak.

Tak prečo nie Lisp hackeri dať chlapci Smalltalk na svojom mieste? Prečo robia zadarmo vývojový systém, ktorý evokuje niektoré stratené sláve Lisp, a to aj v prípade, že nie je možné reprodukovať ďalšie Lisp?

Dôvodom, prečo sa tak nestane, je to z dôvodu Lisp prekliatie. Veľké množstvo Lisp hackerov budú musieť vzájomne spolupracovať. Pozrite sa bližšie: Veľké množstvo druhu ľudí, ktorí sa stali Lisp hackeri budú musieť vzájomne spolupracovať. A oni budú musieť vzájomne spolupracovať na dizajne, ktorý nebol už dané od začiatku. A tam by nemal byť žiadny vonkajší disciplíny, ako je napríklad špekulatívneho kapitálu alebo iné firemné pána, aby ich na správnej ceste.

Každý projekt má trenie medzi členmi, nezhody, konflikty o štýl a filozofiu. Tieto sociálne problémy sú proti konal tým, že žiadny veľký projekt môže byť dosiahnutý inak. “Musíme sa všetci držať pohromade, alebo budeme všetci visieť samostatne.” Ale expresivita Lisp je toto vyrovnávacej sily oveľa slabšie; vždy je možné začať niečí vlastný projekt. Tak, hackeri rozhodnúť, že problém je za to nestojí. Takže buď ukončiť projekt, alebo sa nepripojí k projektu začať. To je Lisp Curse.

Dalo by sa dokonca preniknúť Emacs, aby si niečo, čo je dosť dobrý. To znamená, že Lisp Curse je spojencom Horšie je lepšia.

Výrazná sila Lisp má nevýhody. Nie je tam žiadna taká vec ako obed zadarmo.

Popular article: