Nie znam wystarczająco Lispa, aby powiedzieć, czy jest dobry, czy zły. Wygląda na to, że każdy, kto używał Lispa, uwielbia go, ale obecnie najpopularniejsze języki wywodzą się od C.
Więc co takiego jest w Lispie, że jest tak wspaniały i dlaczego nie jest używany częściej? Czy jest coś po prostu złego w Lisp (poza nieustanną ilością nawiasów)?
Odpowiedzi:
Lisp to Chuck Norris języków programowania.
Lisp to pasek, z którym mierzone są inne języki.
Znajomość Lispa demonstruje oświecenie programistów.
Słyszałem o 3 słabościach (i ich kontrargumentach):
Dynamiczne pisanie.
Istnieje argument przemawiający za tym, że języki z typowaniem statycznym obracają się wokół dostarczania kompilatorowi wystarczających informacji, aby wychwycić pewną klasę błędów, aby nie zdarzały się one w czasie wykonywania. Ale nadal musisz przetestować.
W tym artykule argumentuje się za dynamicznym pisaniem wraz z większą liczbą testów: Silne pisanie vs. silne testowanie .
Trudno odebrać.
W rzeczywistości są to dwie części: nauka i narzędzia.
Lisp wymaga trochę wysiłku, aby naprawdę "zdobyć", ale warto, ponieważ nauka Lispa naprawdę uczyni cię lepszym programistą w innych językach. Na przykład, kiedy naprawdę „dostaniesz” domknięcia, zrozumiesz wewnętrzne klasy Javy. A kiedy już „zdobędziesz” funkcje pierwszej klasy, będziesz przygnębiony za każdym razem, gdy użyjesz języka bez nich.
Przeczytałem The Little Schemer i czytam Practical Common Lisp , które są doskonałe.
Dalej są narzędzia. Jestem na komputerze Mac, więc skupiłem się na Aquamacs Emacs (sprawia, że Emacs jest znośny dla nowicjusza) i Steel Bank Common Lisp (SBCL).
Brak bibliotek.
Nie wiem jeszcze na pewno, ale wątpię. Do tworzenia witryn internetowych wygląda na to, że Hunchentoot i Elephant zapewniają dobry zestaw narzędzi. Ale tak naprawdę nie widzę Lispers narzekających na brak bibliotek (może dlatego, że Lisp jest tak potężny, że po prostu nie są potrzebne?).
źródło
Oto mój pogląd:
Pozornie Lisp jest przyjemnym, prostym funkcjonalnym językiem programowania. Nie ma prawie żadnej składni, a wszystkie elementy pasują do siebie w logiczny sposób.
Jeśli zagłębisz się trochę głębiej, przeczytasz SICP i napiszesz ewaluator metacircular, odkryjesz dwie rzeczy: Po pierwsze, cały interpreter (biorąc pod uwagę tylko kilka prymitywów) to zaledwie strona kodu, a po drugie, związek między kodem a danymi pozwala na eleganckie techniki programowania.
Kiedy w pełni to przyswoisz, wydaje się, że inne języki są jak kamień, gdy pozwalają ci powiedzieć tylko kilka rzeczy. Lisp może w ogóle zbudować dowolną abstrakcję, jeśli możesz zdefiniować dla niej składnię i semantykę.
źródło
Lisp jest dobry, ponieważ ma bardzo minimalną, prostą, regularną składnię.
Lisp jest zły, ponieważ ma bardzo minimalną, prostą, regularną składnię.
źródło
„Każdy wystarczająco skomplikowany program w języku C lub Fortran zawiera ad hoc, nieformalnie określoną, obarczoną błędami, powolną implementację połowy Common Lisp”.
Dziesiąta zasada Greenspun
źródło
Oto kilka pomocnych linków:
źródło
Pierwszy rozdział Petera Seibel wspaniałe Practical Common Lisp obejmuje jego przyczyny lubić Lisp. Najważniejsze jest wyrażenie „programowalny język programowania” - możliwość dostosowania języka do Twojej domeny lub preferowanego stylu.
źródło
Źródło: http://www.gigamonkeys.com/book/introduction-why-lisp.html
źródło