Programuję od lat, pracując nad różnymi wersjami Blub (BASIC, Asembler, C, C ++, Visual Basic, Java, Ruby w żadnej kolejności „Blub-ness”) i chciałbym się uczyć Seplenienie. Mam jednak dużo intertia, co z ograniczonym czasem (rodzina, praca na pełen etat itp.) I wygodnym szczęściem z obecnym Blubem (Java).
Moje pytanie brzmi więc, biorąc pod uwagę, że jestem kimś, kto naprawdę chciałby się uczyć Lisp, jakie byłyby pierwsze kroki, aby uzyskać dobry wynik, który pokazuje wyższość Lisp w tworzeniu stron internetowych ? Może nie rozumiem tego, ale tak początkowo widziałbym zastosowanie mojej wiedzy Lisp.
Myślę „użyj dialektu A, użyj IDE B, postępuj zgodnie z instrukcjami na stronie C, kwestionuj swoje zdrowie psychiczne po monadach korzystających z doradcy D”. Chciałbym tylko wiedzieć, co ludzie tutaj uważają za optymalny zestaw wartości dla A, B, C i być może D. Również trochę dyskusji na temat względnej korzyści z uczenia się tak potężnego języka w przeciwieństwie do, powiedzmy, stania się Railsami ekspert.
Żeby dodać trochę więcej szczegółów, będę rozwijał się na MacOS (lub Linux VM) - żadne podejście oparte na Windowsie nie będzie konieczne, dzięki.
Uwagi dla osób przeglądających według
Mam zamiar pozostawić to pytanie otwarte, aby móc wyrazić opinię na temat sugestii po ich zbadaniu. Jeśli akurat przeglądasz strony i uważasz, że masz coś do dodania, zrób to. Bardzo chciałbym poznać Twoją opinię.
Ciekawe linki
Zakładając, że przybywasz do Lisp z Java, ten zestaw linków sprawi, że szybko zaczniesz.
- Korzystanie z wtyczki La Clojure firmy Intellij do integracji Lisp ( videocast )
- Lisp dla sieci
- Wersja online Practical Common Lisp (pod Frank Frank Shearar)
- Land of Lisp to
(+ (+ very quirky) game based)
sposób na wejście, ale wszystko jest takie proste - Zainstaluj Clojure i Sublime 2 na MacOS - doskonały przewodnik dla początkujących
- Spójrz na książkę Clojure in Action . Pracował dla mnie.
źródło
Odpowiedzi:
Jest to prawdopodobnie sprzeczne z zaleceniami większości ludzi, ale unikaj Emacsa na początek, chyba że już go znasz. Zwłaszcza jeśli jesteś przyzwyczajony do nowoczesnych IDE / edytorów.
Mówię z doświadczenia; Próbowałem zacząć od Emacsa, ale nauka języka i edytor jednocześnie mnie bardzo frustrowały (zwłaszcza, że Emacs tak bardzo różni się od innych narzędzi). Skończyło się na tym, że zacząłem go rzucać, zaczynając od PLT Scheme (teraz Racket), który zawiera stosunkowo proste IDE międzyplatformowe, scentralizowane repozytorium pakietów i wspaniałe dokumenty (w tym pośredni samouczek przeznaczony specjalnie do tworzenia stron internetowych ). Po tym, jak opanowałem Lisp, wróciłem do Emacsa, zbierając EL / CL poprzez Practical Common Lisp i Xah's Elisp Guide. Zasadniczo, tak jak ja to widzę, musisz znać Lisp, zanim będziesz mógł skutecznie używać Emacsa, i musisz znać Emacsa, aby być bardzo efektywnym w CL / Elisp. Oznacza to, że możesz albo wybrać Schemat, albo najpierw nauczyć się Common Lisp za pomocą innego edytora (prawdopodobnie osobiście LispWorks).
Jeśli już znasz Emacsa, to tak, Elisp jest naturalnym krokiem (chociaż to, jak chciałbyś korzystać z Emacsa, nie wiedząc, że Elisp jest pierwszy, jest poza mną).
YMMV oczywiście pomogło mi właśnie to.
Ponieważ twoim obecnym blubem jest Java, prawdopodobnie możesz uzyskać wiele kilometrów z Clojure , Armed Bear lub Kawa . Sam nie próbowałem żadnego z nich, nie będąc facetem Javy, ale Clojure jest szczególnie polecany przez innych Lisperów, których znam. Wygląda na to, że umiejętność utrzymania bieżącej maszyny wirtualnej i IDE może pomóc w procesie uczenia się.
źródło
C-x C-c
). Kocham Emacs na śmierć, a prawie na żywo w nim teraz, ale uświadomić sobie, że w pierwszych latach, jesteś walki pamięci mięśniowej mówi ciC-s
toSave
, nieSearch
i żeUndo
jestC-z
. Nie polecę tego rodzaju frustracji komuś, kto zamierza nauczyć się Lisp. Naucz się najpierw języka, zdaj sobie sprawę, że go kochasz, a następnie zacznij walczyć rękami z wyraźnym celem.Cóż, możesz trafić w dwa ptaki czytając SICP ; Jeden uczy się LISP (mam na myśli, że schemat jest dialektem Lisp), a drugi jest świetnym wglądem w programowanie. Okres !!
źródło
Conrad Barski ma świetny samouczek o nazwie Casting SPELs w Lisp (SPEL to jego skrót od makr). Polega na stworzeniu prostej gry typu Przygoda i wskakuje bezpośrednio do makr Lisp. Pracował również nad książką wprowadzającą, która jest teraz dostępna pod adresem:
Naucz się programować Lisp, jedna gra na raz .
I ze spisu treści:
Nie wiem jednak, co to oznacza dla rozwoju sieci (jak na stronach HTML) przy użyciu Lisp. :)
Aktualizacja - widzę, że ktoś wspomniał o książce „Struktura i interpretacja programów komputerowych”, która przypomniała mi, że MIT umieścił online, całe wykłady wideo SICP Hal Helsona i Geralda Jaya Sussmana . Być może książka była sucha, ale wykłady są doskonałe. Chociaż są oparte na Schemacie, nadal bardzo dobrze znają podstawowe koncepcje również w Lisp. Warto pobrać i obejrzeć.
źródło
Aby uzyskać dobre podstawowe wprowadzenie do języka, przeczytaj Practical Common Lisp Petera Seibela . Książka jest doskonała.
Konfigurowanie emacsa i SLIME może być trudne dla początkujących, gdzie „trudne” różni się wielkością w zależności od systemu operacyjnego. Jak zwykle Windows dostaje krótką końcówkę, ale ludzie wykonali trudną część i napisali ją (SBCL, Emacs, SLIME).
Kiedy to się stanie, Planet Lisp odniosła się do artykułu opisującego ostatnio konfigurację Hunchentoot i nginx.
Edycja specyficzna dla systemu operacyjnego: MCLIDE może być dobrym miejscem na rozpoczęcie. Zainstalowałem go, ale nie miałem okazji go użyć, więc nie mogę powiedzieć nic użytecznego. Z pewnością wygląda interesująco!
Edycja: Eclipse ma również wtyczkę Cusp .
źródło
Mam już wiele świetnych odpowiedzi, ale zakładając, że chcesz zagłębić się w tworzenie stron internetowych za pomocą Lisp, mam jeszcze kilka pomysłów.
Clojure jest pierwszym Lispem, w którym widziałem naprawdę doskonałe frameworki internetowe z pełnym stosem, które są gotowe na najwyższy czas.
Jeśli nie zauważyłeś, właśnie opisałem cały stos sieci i wszystko jest napisane w Clojure.
Uważam, że Clojure jest nieco łatwiej zacząć od Common Lisp, ze znacznie lepszym zestawem funkcji / obsługą bibliotek niż Scheme.
Jeśli w ogóle pochodzisz z języka Java, ma on tę dodatkową zaletę, że działa na JVM, co zapewnia dostęp do całego pakietu stdlib Java, gdy jest on potrzebny.
Dostępna dokumentacja jest w toku, podobnie jak same ramy. Ale tutaj jest całkiem niezły tutorial .
Jeśli chodzi o redaktorów ... jeśli nie masz nic przeciwko vimowi, możesz go używać z SLIMV. Jeśli lubisz emacsa, emacs / SLIME jest w porządku. Jest całkiem dobra obsługa Eclipse i NetBeans dla Clojure (a przynajmniej tak mi powiedziano), ale ogólnie używam TextMate (chociaż Sublime Text 2 szybko staje się moim edytorem). Wiem, że brakuje mi trochę magii Lisp, która nie korzysta z bardziej zintegrowanego środowiska, ale chętnie wciskam ⌘-Tab, aby przełączać się między moim edytorem a REPL; twój przebieg może się różnić.
Jeśli chcesz książka by nadać ci, polecam Programowanie Clojure Stuart Halloway i Aaron Bedra. Druga edycja właśnie wyszła z PragProg , więc jest aktualna.
Happy Lisping!
źródło
Inny komentator, Inaimathi , polecił tę książkę kilka dni temu: Mały Schemer
Otrzymałem go dzisiaj i mogę powiedzieć, jako ktoś, kto ma bardzo bogatą bibliotekę książek programistycznych nabytych przez wiele lat, że mogłem przeczytać tylko jeden rozdział, ale na pewno będę potrzebował jego twardej wersji. Czyta się jak Tao Te Ching, wiele małych fragmentów boskiej mądrości dotyczących języka. Może powiedzieć „Schemat”, ale pierwotnie nazywał się „Mały LISPer”, języki na omawianym poziomie są wystarczająco podobne, aby uczyć się ich jako jednego.
To nie jest zaawansowany tekst, ale ma misję zaszczepienia zasad języka i tego, do czego tak naprawdę służy, jak tak myśleć. Wierzę, że byłby to doskonały start dla LISP.
NB. Matryca kompetencji programistów faktycznie wspomina o tej książce na najwyższym poziomie kompetencji rzeczy, których należy szukać. (patrz sekcja Książki)
źródło
Bardzo miłym miejscem do rozpoczęcia korzystania z Lisp jest edytor Emacsa, w którym można go zdefiniować na nowo. Chcesz, aby klawisz „e” wstawił datę, po prostu napisz mały fragment Lisp, aby wygenerować ciąg i powiązać go z kluczem e. Gotowy.
Pozwoli ci to również faktycznie UŻYWAĆ tego, czego się nauczysz w codziennym otoczeniu, jeśli zdarzy ci się używać zwykłego edytora w ciągu dnia.
źródło
Jeśli będziesz programować na komputerze Mac, możesz wypróbować Clozure CL . Wyposażony jest w IDE, które ma klawisze kompatybilne z Emacsem, i jest mostek do Objective C, dzięki czemu możesz pisać aplikacje Cocoa.
Przeczytałem także Practical Common Lisp, ale Pomyślne Lisp również było pomocne.
Wreszcie, twoja cierpliwość zostanie nagrodzona. Wydajność i niewielkie zwycięstwa nadejdą dość szybko, ale duża wygrana może chwilę potrwać.
źródło
Mam przy biurku kopię ANSI Common Lisp . Podnoszę go co kilka lat i przeglądam kilka rozdziałów, potem utknąłem na kilku ćwiczeniach i ześlizguje się z listy priorytetów. To chyba mówi więcej o mnie niż o książce. Książka wydaje się całkowicie kompetentna ...
źródło