2008-12-11 9 views
16

Pracuję nad zestawem narzędzi (coś w stylu Live-CD Lisp-in-a-Box) dla osób, które nie są już w Common Lisp, i chcę się upewnić, że jest to bardzo satysfakcjonujące. Co jest dla ciebie atrakcyjne w Lisp? Co/czego chciałbyś/chciałabyś zacząć i zachować zainteresowanie?Co sprawia, że ​​chcesz się uczyć Common Lisp? Czego chcesz od tego?

Co mam do tej pory: SBCL 10.22, Emacs 22,3, SLIME i LTK połączone razem i skonfigurowane na Live CD na Linuksie, który uruchamia się całkowicie w pamięci RAM.


Właśnie opublikowałem wynik tego; jest dostępny pod numerem Thnake website.

Odpowiedz

1

to robi:

http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html

Oczywiście Chciałbym również, aby dowiedzieć się więcej Python 3.0, erlang i F #. Uważam, że języki funkcjonalne (nie mówiąc o tym, że język Python jest językiem funkcjonalnym) dają tylko inną perspektywę. Im więcej masz perspektywy, tym lepsze rozwiązania możesz zaprojektować. Chodzi o to, aby użyć odpowiednich narzędzi do pracy, ale jeśli nie znasz przynajmniej czegoś, czego możesz nigdy nie pomyśleć o rozwiązaniu problemu z konkretnym narzędziem. Przypuszczam, że wraca do starego powiedzenia, że ​​dla stolarza wszystko wygląda jak gwóźdź. Nie chcę wbijać C# we wszystko, gdy dostępne są lepsze rozwiązania. Zmieniają się również czasy i mody.

6

Moja sugestia to włączenie serwera HTTP, takiego jak Hunchentoot i popularnej platformy internetowej. Podejrzewam, że większość osób, które chcą nauczyć się Lisp w dzisiejszych czasach, robi to z powodu czytania Paula Grahama i chęci naśladowania jego sukcesu w budowaniu Viaweb, więc możliwość łatwego tworzenia i modyfikowania potężnych aplikacji internetowych byłaby mocnym punktem sprzedaży dla twojego live PŁYTA CD.

+0

Dobrze, ale Hunchentoot to serwer HTTP, a nie framework sieciowy. Czy uważasz, że coś w rodzaju Weblocks byłoby dobrym wyborem? – JasonFruit

+0

Nie mam dużego doświadczenia z aplikacjami internetowymi na Common Lisp, ale naprawdę nie ma powodu, aby nie dodawać tylu popularnych frameworków i serwerów HTTP, jak to tylko możliwe. Weblocks brzmi podobnie do serwera sieciowego PLT, więc uważam, że byłby to dobry początek, ale sprawił, że bardzo, bardzo łatwo jest zacząć działać. –

+0

Chciałbym dołączyć UnCommon Web (UCW) - jest to ciekawa platforma internetowa CL. –

9

Dołączę co najmniej cl-ppcre, clx, Hunchentoot i Weblocks.

Zgaduję, że musiałbyś negocjować z odpowiednimi autorami, ale w tym "On Lisp", "Practical Common Lisp" i "Successful Lisp" byłoby wielkim atutem dla CD.

Co byłoby naprawdę miłe, to używać programu stumpwm jako menedżera okien na Live CD.

+1

Chciałbym użyć stumpwm, ale staram się ułatwić to ludziom z wielu środowisk; stumpwm jest fajny, ale idiosynkratyczny. – JasonFruit

+0

Dobre połączenie w książkach; Będę musiał porozmawiać przynajmniej z Peterem Seibelem, co moim zdaniem jest najbardziej prawdopodobnym wyborem. – JasonFruit

+1

Być może możesz przynajmniej dać stumpwm jako opcję (używam gdm na ekranie logowania, gdzie możesz wybrać swojego menedżera okien). – Svante

3

Czytanie Paul Graham sprawia, że ​​chcę się uczyć Common Lisp. Ale jeśli rzeczywiście usiądę i spróbuję się tego nauczyć, popęd ustąpi.

+1

Więc co cię zniechęca? Chciałbym spróbować wygładzić go tak bardzo, jak to możliwe, aby ludzie mieli lepsze wrażenia – JasonFruit

+0

Świetna odpowiedź!: D – ShreevatsaR

+3

Programowanie jest trudne, chodźmy na zakupy! –

3

Wszystko w clbuild (http://common-lisp.net/project/clbuild) powinno być dobrym kandydatem do dołączenia. Nawiasem mówiąc, wszystkie pakiety na twojej liście oprócz Emacsa są również zarządzane przez clbuild. Myślę, że byłoby dobrze, gdyby kolekcja projektów w clbuild mogła nabrać rozpędu w kierunku standardowej, powszechnej selekcji bibliotek.

7

Emacs prawie uniemożliwił mi naukę Common Lisp. Trzeba było wiele wysiłku, żeby to przezwyciężyć. Emacs i SLIME to zbyt wiele dla początkujących i nigdy nie będą one satysfakcjonujące dla początkujących. Jeśli chcę nauczyć się nowego języka programowania, chcę, aby wszystko inne pozostało na mojej drodze, podczas gdy ja się go nauczę. Zadanie nauki Lispa jest wystarczająco trudne bez dodatkowych technicznych i komplikacji związanych z tworzeniem środowiska. Izoluj zmienną.

SBCL należy skonfigurować za pomocą rlwrap lub odpowiednika. rlwrap obsługuje bardzo proste dopasowywanie paren i wyszukiwanie historii, a nawet może wykonywać operacje "tab-completion". Nie tak wyszukany jak SLIME, ale początkujący nie potrzebuje SLIME. Początkujący muszą być w stanie uruchomić hello-world nie tracąc godziny na walkę z Emacsem. Zapewnij opcję Emacs/SLIME jako opcję, ale nie jest wymagana.

+2

Widzę tutaj punkt, ale Emacs jest tak rozpowszechniony wśród typów Lispa i doskonale pasuje do języka, który moim zdaniem źle by zasugerował, aby uczyli się na czymkolwiek innym (prawie mówiłem "mniej"). – JasonFruit

+2

Emacs jest szeroko rozpowszechniony wśród EKSPERTÓW Lispa. Nie dla początkujących. Jeśli ktoś uczył się C po raz pierwszy, czy powinienem wykonać krok "Zainstalować Visual Studio i spędzić dzień ucząc się, jak używać go jako profesjonalisty"? Nie, to byłoby "Napisz swój kod w prostym edytorze tekstu i skompiluj go ręcznie na swój sposób". –

+4

Hogwash. Nauczyłem się jednocześnie Lisp i Emacs i myślę, że wzmacniają się nawzajem. Emacs/Slime zapewnia uzupełnianie symboli, wyszukiwanie argumentów funkcji automatycznych i łatwy dostęp do dokumentacji, nawigacji po kodzie itp., A wszystko to pomaga ogromnie przyspieszyć działanie. – huaiyuan

4

Co naprawdę mnie zainteresuje Common Lisp to nowoczesny zestaw bibliotek na poziomie .net lub Java, a także naprawdę dobra dokumentacja, która nie jest gnarly. Jeśli chodzi o oprogramowanie, to ładny edytor gui na wzór notatnika ++ lub jEdit byłby dobry. Emacs/vi & edytory tekstowe zawsze wydają się urocze i przestarzałe do poważnego rozwoju.

+2

Heh. Zawsze mam ochotę wrócić do epoki kamienia, kiedy muszę użyć czegoś innego niż emacs lub vim. – Svante

+2

To prawda, że ​​używanie vima lub emacsa wydaje się być dwa razy wydajniejsze niż użycie Eclipse ... –

1

Emacs ma trochę krzywej uczenia się, ale świetnie nadaje się do poważnego rozwoju - bez brzydkich, sterowanych myszką komunikatów na drodze (tekstowego) kodu.

Gotowy jest teraz tryb CUA (więc Cx, Cc, Cv działa "standardowy"), i jest menu z operacjami na plikach, takimi jak zapis, itp., Więc nie powinno to trudne, jeśli wszystko jest w paczce. Ale wstępne skonfigurowanie pliku .emacs, aby upewnić się, że tryb CUA jest włączony, SLIME nie musi być konfigurowany przez użytkownika itd. Jest koniecznością - plus dodatkowe informacje dla użytkownika dla .emacs configs - links na EmacsWiki itp. (hrm, jeśli jest to na płycie CD, jest mało prawdopodobne, aby użytkownik sam je konfigurował, czy nie jest to ...)

4

Dołącz Emacs, oczywiście, ale możesz chcieć mieć coś łagodniejszego.

Środowisko Lisp, do którego najłatwiej wszedłem, to Macintosh Common Lisp, z edytorem FRED (Fred przypomina Emacsa celowo). Digitool nie udało się z powodzeniem wkroczyć w obecną erę komputerów Mac, ale otworzyli oni wiele swoich rzeczy po złożeniu. Wypróbuj www.clozure.com lub wyszukaj "openmcl" w Google.

Był projekt, aby środowisko Fred działało na Openmcl, ale nie znam statusu offhand (nie robiłem nic z Lisp od dłuższego czasu i nie zwracałem uwagi na mailing listy).

Więc moje zalecenia:

Zapytaj Paul Graham czy można to "On Lisp". Oddaje za darmo plik do pobrania, więc szanse są dobre, że da pozwolenie. (Jego druga znakomita książka Lisp, "ANSI Common Lisp", wciąż się sprzedaje, więc jest mało prawdopodobne, że da ci tam pozwolenie.)

Przynajmniej sprawdź, co MCL ma do sprawdzenia, czy jest coś, co można znaleźć Ułatwić to. Emacs jest wspaniałym środowiskiem Lisp, ale dla początkującego jest nieco onieśmielający.

Ostatnio nie przeglądałem dokumentacji SBCL. Czy jest dość czytelny i przyjazny dla początkujących? Być może ktoś mógłby napisać kilka szybkich instrukcji jak zacząć i jak debugować. Najpierw uwydatnij użycie myszy, nawet jeśli używasz Emacsa.

0

Myślę, że pomysł włączenia samouczków jest doskonały.

Oprócz tych już wymienionych, istnieje zarówno najprostszy książka dla początkujących na Lisp (łagodne wprowadzenie do obliczeń symbolicznych) oraz kilka doskonałe stron internetowych ukrywających się tam w internecie, że ludzie powinni wiedzieć.Oto one:

+0

Postaram się ustawić kilka dobrych domyślnych zakładek - dziękuję za sugestię. – JasonFruit

0

O ile mi undertand robisz Thnake.

Dziękujemy za świetną dystrybucję na żywo!

Próbowałem go kilka dni wcześniej i okazało się, że jest imponujący i interesujący.

Jest kilka rzeczy, których oczywiście nie ma, takich jak LTK, ponieważ już zawarłeś Common Lisp i Tcl/Tk. A ponieważ istnieje gtk, możesz dołączyć powiązania i dokumentację dla CL i Pythona.

Istnieje również potrzeba w Lisp Hyperspec i wstępnej frazeacji Slime, aby go użyć. (To samo dotyczy dokumentacji dla Pythona i Tcl) Może być lepiej dodać emacs-w3m do szybkiego i wygodnego przeglądania dokumentacji.

+0

Po rozmowie z Zachiem Beane i innymi, zastanawiam się nad tym: Zrzucam Pythona, dodając więcej bibliotek, łącząc materiały instruktażowe i wypuszczając je z właściwej strony internetowej. Zmieniam też nazwę czegoś mniej głupiego. Cieszę się, że ci się podobało i dzięki za pomysły. – JasonFruit

0

Powinieneś też dodać Vima, skonfigurowanego z wtyczką RainbowParenthsis.

rlwrap dla SBCL to dobry pomysł, i tak (wymaga: sb-aclrepl).

Weblocks powinien pochodzić z Cl-prewalencji i może Elephant/BDB też.

1

Mam pewne zainteresowanie nauką Lispa, ale nie "lubię" większości dostępnych zasobów. Co powiesz na rozszerzenie tego projektu na stworzenie jakiejś "społeczności" odpowiedzialnej za dostarczanie tutoriali lub czegoś w celu uczynienia Common Lisp bardziej popularnym i łatwiejszym do nauczenia? Zły/dziwny/bezużyteczny pomysł?

+0

Dobry pomysł - zły facet. Nie jestem świetny w tworzeniu "społeczności". – JasonFruit