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.