Arc | |
---|---|
Clasa de limba | multi- paradigma : metalanjaj funcțional |
Aparut in | 2008 |
Autor | Paul Graham și Robert Morris |
Extensie de fișier | .arc |
Eliberare | 3.2 (28 octombrie 2018 ) |
Tip sistem | dinamic , puternic |
A fost influențat | LISP |
influențat | Anarky, HL |
Licență | Licența artistică 2.0 a Fundației Perl |
Site-ul web | arclanguage.org |
Arc este un dialect al limbajului Lisp dezvoltat de Paul Graham și Robert Morris . Pe scurt, Arc poate fi definit ca o versiune extrem de simplificată a Lisp, cu suport macro puternic care permite orice „hack-uri murdare” în stil Lisp.
În 2001, Paul Graham a anunțat [1] că lucrează la un nou dialect de Lisp, pe care l-a numit „Arc”. De-a lungul anilor, el a scris mai multe eseuri care descriu funcția sau scopul limbajului, iar unele proiecte interne Y Combinator au fost scrise în Arc, în special forumul web Hacker News și programul de agregare de știri.
În eseul Being Popular [2] Graham descrie unele dintre scopurile sale pentru limbajul său. Sunt precizate obiective precum „Arc ar trebui să poată fi piratat ” și „ar trebui să aibă biblioteci bune ”; Graham a mai spus că:
Nu voi fi departe de adevăr dacă spun că alegerea unui hacker a limbajului de programare se bazează, cel puțin subconștient, pe câte caractere trebuie să tasteze. Dacă acest lucru nu este exact ceea ce cred hackerii, designerii de limbaj ar face bine să se comporte ca și cum ar fi.
Text original (engleză)[ arataascunde]Nu ar fi departe de adevăr să spunem că un hacker pe cale să scrie un program decide ce limbaj să folosească, cel puțin subconștient, pe baza numărului total de caractere pe care va trebui să le introducă. Dacă nu așa gândesc hackerii, un designer de limbaj ar face bine să se comporte ca și cum ar fi.
Paul Graham subliniază că Lisp -ul original al lui John McCarthy a fost construit în jurul unui set mic de „axiome” și susține că Arc ar trebui să fie construit în acest fel, chiar dacă înseamnă că limbajul nu va avea caracteristicile pe care le doresc organizațiile mari. În special, Graham consideră că orientarea obiectelor este inutilă, deoarece metodele și modelele OOP sunt doar „un design bun”, iar el vede caracteristicile limbajului utilizate pentru implementarea OOP ca fiind parțial defecte [3] [4] .
Printre programatorii Lisp, întrebarea este dacă și cât de mult ar trebui completată sintaxa expresiilor S cu alte forme de sintaxă . Graham crede că ar trebui folosită sintaxă suplimentară în situațiile în care expresiile S pure ar fi prea pronunțate, spunând: „Nu cred că ar trebui să ne opunem fanatic introducerii sintaxei în Lisp”. De asemenea, Graham consideră că problemele de eficiență ar trebui rezolvate oferind programatorului un profiler bun .
Prima versiune publică a Arc a fost lansată pe 29 ianuarie 2008 [5] [6] . Lansarea a venit sub forma unei arhive .TAR care conține codul sursă Arc pentru mzscheme. De asemenea, sunt disponibile un tutorial [7] și un forum de discuții [8] . Forumul este o copie a forumului news.ycombinator.com și este scris și în Arc. Această implementare este licențiată sub Licența artistică 2.0 (dezvoltată pentru limbajul Perl ).
Versiunea inițială a provocat unele controverse, în special din cauza lipsei de suport pentru alte seturi de caractere în afară de ASCII și biblioteca de dezvoltare web furnizată cu limbajul , bazată pe aspect HTML . Toate acestea, combinate cu hype-ul publicitar din jurul Arc și procesul lent de dezvoltare, au provocat o mulțime de comentarii nefavorabile [9] .
Datorită dezvoltării lente a filialei oficiale Arc, unii membri ai comunității Arc au deschis un depozit neoficial de corecții, extensii și biblioteci [10] . O versiune, numită Anarki, a început să continue dezvoltarea după ce unii membri ai comunității au simțit că dezvoltarea centralizată a Arcului sub Paul Graham a stagnat.
Lisp | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Caracteristici |
| ||||||||||||||
Implementări |
| ||||||||||||||
Hardware |
| ||||||||||||||
Comunitate |
| ||||||||||||||
|
Limbaje de programare | |
---|---|
|