Lisp Needus

Originaali alates Rudolf Winestock, tõlkida koos http://www.winestockwebdesign.com/Essays/Lisp_Curse.html

See essee on järjekordne katse ühitada võimu programmeerimiskeele Lisp koos võimetus Lisp ühenduse reprodutseerida oma pre-AI Winter saavutusi. Kahtlemata, Lisp on olnud mõjukas ideede allikas, isegi ajal oma aeg taanduda. See asjaolu, pluss sära eri Lisp Masin arhitektuuri ja praeguse Lisp renessanss pärast rohkem kui kümme aastat kõrbes tõendada, et Lisp miško peab olema mingi põhjendus oma smugness. Siiski, nad ei ole suutelised võimu Lisp arvesse liikumine koos vastupandamatu hoogu.

Selle essee, mis ma väidavad, et Lisp on ekspressiivne jõud on tegelikult põhjustada selle puudumine hoogu.

___________________

Võimsus Lisp on tema enda suurim vaenlane.

Siin on mõtlemise katse, et tõestada: Võtta kaks programmeerimiskeeled, kumbki mis on objekt-orienteeritud. Oma missiooni, kui otsustad selle vastu võtta, on need objekt-orienteeritud, hoides neid tahapoole ühilduv originaal keeles, mooduli võtmine mõned serv juhtudel. Paigaldamisel iga paari programmeerimiskeeled arvesse selle mõtte eksperiment näitab, et see on lihtsam mõne keele kui teistega. See punkt mõte katsetada. Siin on triviaalne näide: Intercal ja Pascal.

Nüüd teeb see mõte huvitav eksperiment: Kujutage ette, lisades objekti orientatsioon C ja Scheme programmeerimiskeeled. Tegemise Scheme objekt-orienteeritud on üliõpilane kodutöö. Teiselt poolt, lisades objekti orientatsiooni C nõuab programmitöö chops, Bjarne Stroustrup.

Selle tagajärgi on üksteisest vaja annet ja jõudu põhjustada Lisp Needus:

Lisp on nii võimas, et probleemid, mis on tehnilisi küsimusi teistes programmeerimiskeeltes on sotsiaalsed probleemid Lisp.

Vaatleme Scheme, jälle. Kuna tegemise Scheme objekt-orienteeritud on nii lihtne, paljud Kava häkkerid on teinud. Veel punkt, paljud individuaalse Skeemi häkkerid on teinud. 1990. aastatel oli tulemuseks see, et tõeline ladu nimekiri objekt-orienteeritud pakid keeles. Paradoks Valik, üksi, tagatud, et ükski neist ei oleks saanud standard. Nüüd, et mõned Scheme rakendamist on oma objekti orientatsiooni rajatiste, see ei ole nii halb. Siiski, asjaolu, et palju need paketid olid töö üksildane üksikisikute probleeme tekitanud, mida Olin Shivers kirjutas dokumenteerimisel Scheme Shell, scsh.

Programme, mis on kirjutatud üksikud häkkerid kipuvad järgima kriimustada–sügelema mudel. Need programmid ei lahenda probleemi, et häkker ise on ilma tingimata käitlemisega seotud osade probleem, mis muudaks programmi rohkem kasulik teistele. Lisaks programm on kindel, et töö, et lone häkker enda setup, kuid ei pruugi olla kaasaskantav muu Scheme rakendamist või sama Scheme rakendamise muudele platvormidele. Dokumendid võivad olla puudulikud. Põhiolemuselt projekti teha häkker ohtralt vaba aega, programm on kohustatud kannatama peaks reaalse elu kohustused intrude kohta häkker. Kui Olin Shivers märkida, see tähendab, et need ühe-mehe-bänd projektid kipuvad lahendada kaheksakümmend protsenti probleem.

Dr Mark Tarver on essee, Bipolaarse Lisp Programmeerija, on apt kirjeldus käesoleva nähtus. Ta kirjutab need üksik-hunt Lisp häkkerite ja nende

…võimetus lõpeta asju maha korralikult. Fraas “viska-ära design” on täiesti tehtud BBM ja see pärineb Lisp ühenduse. Lisp võimaldab teil lihtsalt chuck asju maha nii lihtne, ja see on lihtne, et võtame seda endastmõistetavana. Ma nägin seda 10 aastat tagasi, kui otsid GUI minu Lisp. Pole probleemi, seal oli 9 erinevat pakkumisi. Hädas olnud, et ükski 9 oleksid korralikult dokumenteeritud ja keegi ei olnud bug tasuta. Põhimõtteliselt iga inimene rakendanud oma lahendus ja seda töötas ta nii, et oli hea. See on BBM suhtumine; see toimib minu jaoks ja ma mõistan seda. Samuti on toode, mis ei vaja või kes tahavad keegi teine abi ei midagi.

___________________

Veelkord, kaaluge C programmeerimiskeel selleks, et arvasin, et katsetada. Kuna raske on teha C objektorienteeritud, ainult kaks tõsist katset probleem on valmistatud mis tahes veojõu: C++ ja Objective-C. Objective-C on kõige populaarsem Macintosh, samas C++ reeglid igal pool mujal. See tähendab, et antud platvorm küsimus, mis objekt-orienteeritud laiendamine C kasutada on juba vastatud lõplikult. See tähendab, et objekt-orienteeritud vahendid need keeled on dokumenteeritud, et arengu integreeritud keskkonnad on teada, et kood raamatukogud on kooskõlas neid, ja nii edasi.

Dr Mark Tarver on essee bipolaarne Lispers muudab punkti:

Nüüd seevastu on C/C++ lähenemine on üsna erinevad. See on nii kuradi raske, et midagi koos pintsetid ja liimi, et midagi märkimisväärset sul on tõeline saavutus. Soovite dokumenti. Samuti olete kohustatud vaja abi tahes C projekti märkimisväärse suurusega, nii et sa oled kohustatud olema sotsiaalne ja töötada koos teistega. Teil on vaja, lihtsalt selleks, et kuhugi jõuda.

Ja kõik, mis, seisukohast tööandja, on atraktiivne. Kümme inimest, kes edastab dokumendi asju õigesti ja töötavad koos, on soovitatav, et üks BBM häkkimine Lisp, kes saab asendada ainult teine BBM (kui leiad ühe) ei ebatõenäolisel juhul, kui ta on mingil ajal minna ilma rebootable.

Seega, need, kes juba teavad, C ei küsi “Mida objekt, süsteem peaks ma õppima?” Selle asemel, nad kasutada C++ või Objective-C, olenevalt sellest, mida nende kolleegid kasutavad, siis liikuda edasi “Kuidas kasutada objekt-orienteeritud funktsioon X?” Vastus: “Goog see ja te leiate.”

___________________

Tõelised Häkkerid, muidugi, on ammu teada, et objekt-orienteeritud programmeerimine ei ole imerohi, mis selle miško on väitnud. Tõelised Häkkerid on liikunud rohkem arenenud mõisted nagu püsiv andmete struktuurid, tüüp inferencing, laisk, hindamine, monads, nooled, mustrite, piiraja põhinev programmeerimine ja nii edasi. Tõelised Häkkerid on ka teada, küll, et C ja C++ ei ole asjakohane, sest enamus programme, et ei pea tegema meelevaldseid bit-juhtiv. Siiski, Lisp Needus ikka hoiab.

Mõned ennastimetlev Lisp-armastaja on küsitletud, et praegune põllukultuuri akadeemilise keeles (Haskell, Ocaml, jj jne) ja leida neid, kes soovivad, öeldes, et iga funktsioon päralt on kas juba olemas Lisp või saab kergesti rakendada — ja parandada — Lisp makrod. Nad on ilmselt õigus.

Kahju et Lisp häkkerid.

___________________

Dr Mark Tarver — kaks korda tsiteeritud, eespool kirjutas murre Lisp nimega Qi. See on vähem kui kümme tuhat rida makrod töötab atop Clisp. Ta rakendab kõige unikaalne omadus Haskell ja OCaml. Mõnes mõttes Qi ületab neid. Näiteks, Qi tüüp inferencing mootor on Turingi täielik. Maailmas, kus meeskonnad andekad õppejõud oli vaja kirjutada Haskell, üks mees, Dr. Tarver kirjutas Qi kõik tema üksildane.

Loe seda lõiku uuesti ja järeldusi teha.

___________________

Harjutus lugejale: Kujutage ette, et tugev konkurents arendab vahel Haskell ja Common Lisp. Mis saab edasi?

Vastus: Lisp Needus tunda. Iga teine või kolmas tõsine Lisp häkker pöörab enda rakendamist laisk, hindamine, funktsionaalsed puhtus, nooled, mustrite, tüüp inferencing ja puhata. Enamik neist projektidest on lone-hunt toimingud. Seega, nad on kaheksakümmend protsenti funktsioone, et enamik inimesi vaja (eri kaheksakümmend protsenti igal juhul). Nad on halvasti dokumenteeritud. Nad ei ole kaasaskantav kogu Lisp süsteemid. Mõned näitab suur lubadus enne, kui on loobunud, kuigi projekt hooldaja läheb maha, et oma arveid tasuda. Mitu võita Haskell mööda seda või see mõõde (taas, mõnda igal juhul), kuid nende vastuvõtmiseks on takistanud flame wars comp.lang.lisp Useneti grupp.

Endgame: juhuslik vana-aja Lisp häkker kogumise makrosid saab lisada kuni dokumenteerimata, unportable, bug vaevatud rakendamise 80% Haskell, sest Lisp on võimsam kui Haskell.

___________________

Selle loo moraal on see, et teise ja kolmanda taseme mõju oluline. Tehnoloogia mõjutab mitte üksnes see, mida me saame teha seoses tehnoloogilisi küsimusi, see mõjutab ka meie sotsiaalne käitumine. See sotsiaalne käitumine võib kaarde tagasi ja mõjutada originaal tehnoloogiliste küsimuste kaalumisel.

Lisp on valusalt kõnekas eeskuju õppetunni. Lisp on nii võimas, et see julgustab individuaalne sõltumatus punktis verine-kohusetunne. See iseseisvus on andnud hämmastavalt hea uuendusi nagu Lisp Masina päeva. See sama sõltumatuse takistab ka jõupingutusi elavdada “Lisp kogu tee alla” süsteemid vana; nr “Lisp OS” projekt on kogunenud kriitiline mass, kuna kokkukukkumist Symbolics ja LMI.

Üks tulemus on need teise ja kolmanda taseme mõju on see, et, isegi kui Lisp on kõige väljendusrikas keel kunagi nii, et see on teoreetiliselt võimatu teha rohkem väljendusrikas keel, Lispers on veel asju õppida teiste programmeerimiskeelte. Kui Smalltalk poisid õpetasid igaühele, sh Lisp häkkerid — asja või kaks umbes objektorienteeritud programmeerimine. Clean programmeerimiskeel ja Mozart/Oz combo võib-olla vähe üllatusi oma.

___________________

Lisp Needus ei ole vastuolus maksiim Stanislav Datskovskiy: Tööandjate palju parem, et töötajad olema vahetatavad, mitte maksimaalselt produktiivne. Liiga tõsi. Väga raske, et keegi ei veinipunane, et venality juhtiva klassi. Siiski, viimase read tema essee on problemaatiline. Nimelt:

Nagu “vaba tarkvara” maailma, see innukalt vastu tööstus dogmad aastal retoorika, kuid üldse mitte praktikas. Ei mõiste shunned poolt kuubi talu hells on kunagi saanud tõeline vedamine seas amatöör massid.

Joonealuses märkuses, ta pakub, Linux näiteks käesoleva soovimatus jätkata erinevaid ideid. Et olla kindel, et ta on punkt, kui tegemist on operatsioonisüsteemide (pealmine kommentaar, eelkõige on infuriatingly nüri). Ta ei ole punkti, kui tegemist on programmeerimiskeeled. Python ja Ruby olid mõjutatud Lisp. Paljud nende fännid väljendada austust Lisp ja mõned nende huvi on suurendatud Lisp renessanss. Mõned justiits, JavaScript on kirjeldatud kui “Scheme aastal C  riietus” vaatamata sellele, mis on pärit neist kuubi talu põrgu.

Siiski, vaatamata selle mõju nii ettevõtte ja avatud lähtekoodiga maailma, Lisp ikka on ainult murdosa arendaja meeles, aktsia, mille praegune põllukultuuri arenenud skriptimine keeles on äratanud. Suletud-kohusetunne of MBA ei saa olla ainus selgitus sellele. Lisp Needus on rohkem, selgitavad võimu.

___________________

Vaba arengu keskkondades saadaval Lisp veel seletama Lisp Needus.

See on piinlik punkti see välja, kuid seda tuleb teha. Unusta Lisp Masin; me ei pea isegi arendamise süsteeme, mis sobivad, mida keskmine Smalltalk häkker võtab enesestmõistetavaks (“Olen alati tundnud, Lisp on hea keele-ja Smalltalk on hea keskkonnale.” – Ramon Leon). Kui nad maksavad tuhandeid dollareid, Lisp häkkerid on endiselt ummikus Emacs.

James Gosling, autori esimese Emacs, mis jooksis Unix, on õigesti märkinud, et Emacs ei ole põhimõtteliselt muutunud rohkem kui kakskümmend aastat. See on, sest Emacs hooldajad on ikka kihilisus kood atop kujundus, mis oli väljakujunenud tagasi, kui Emacs oli grad üliõpilane projekti MIT AI Lab, st, kui Emacs areng oli veel kaudselt rahastab riigi võlakirju. A Slashdotter võib objekt, mis Emacs on juba üsna võimekas ja ei saa midagi teha, et kõik teised arengu keskkonda saab teha, ainult parem. Need, kes on kasutanud Lisp Masin öelda teisiti.

Nii et miks ei ole Lisp häkkerid panna Smalltalk poisid oma õige koht? Miks ei ole nad teevad tasuta arendamise süsteemi, mis manab mõned kadunud glories LispM, isegi kui nad ei saa paljuneda teise LispM?

Põhjus, miks seda ei juhtu, kuna Lisp Needus. Suured numbrid Lisp häkkerid oleks omavahel koostööd tegema. Lähemalt: Suured numbrid sorti inimesed, kes saavad Lisp häkkerid oleks omavahel koostööd tegema. Ja nad peaksid tegema omavahel koostööd käsitleva projekti, mis ei olnud juba andnud algusest peale. Ja seal ei oleks mingeid väliseid distsipliini, nagu ettevõtmise kapitalistlik või muude korporatiivsete meister, hoida neid jälgida.

Iga projekti puhul on hõõrdumine liikmete vahel, erimeelsusi, konflikte stiil ja filosoofia. Need sotsiaalsed probleemid on counter-tegutses asjaolu, et ükski suur projekt on võimalik saavutada muul viisil. “Me kõik peame riputada koos, või me kõik riputada eraldi.” Kuid väljendusrikkust Lisp teeb see tasakaalustav jõud palju nõrgem, saab alati alustada oma projekti. Seega, üksikud häkkerid otsustada, et probleeme ei ole seda väärt. Nii nad kas lõpetada projekt, või ärge ühinege projektiga alustada. See on Lisp Needus.

Võiks isegi hack Emacs, et saada midagi, mis on piisavalt hea. Seega, Lisp Needus on liitlane Halvem on Parem.

___________________

Väljendusrikas jõud Lisp on puudused. Ei ole olemas sellist asja nagu tasuta lõunasöök.

 

 

Tagasi esilehele