Article View: pl.comp.lang.funkcyjne
Article #982Re: Ciekawa seria podcastów na temat Common Lispa
From: godek.maciek
Date: Wed, 25 Jan 2017 10:55
Date: Wed, 25 Jan 2017 10:55
76 lines
5049 bytes
5049 bytes
W dniu środa, 25 stycznia 2017 07:36:54 UTC+1 użytkownik markfal...@gmail.com napisał: > On Tuesday, January 24, 2017 at 1:08:30 PM UTC+1, godek....@gmail.com wrote: > > > Non sequitur, tym bardziej, że są języki (takie jak np. Python > > albo w pewnej mierze Haskell), które są raczej czytelne nawet dla osób, > > które nigdy wcześniej nie programowały > > Dokładnie. Na temat nieczytelności nawiasów Common Lispie > w pewnych sytuacjach, wypowiadał się nawet twórca Clojure. Z Hickeyem nie zgadzam się pod wieloma względami. Moim zdaniem czyteność języka wcale się nie poprawia, jak się wprowadza do języka wiele nawiasów, które w różnych kontenstach oznaczają różne rzeczy. To wymaga tylko więcej zapamiętywania i jest frustrujące. Raczej sytuację mógłby uratować dobry edytor typografizujący, żeby każdy programista mógł wyświetlać kod stosownie do swoich upodobań. > Stąd w Clojure wektory, przekazywanie argumentów funkcji > w nawiasach kwadratowych itd. Z tego co wiem (a coś tam kiedyś w Clojure pisałem), aplikacja funkcji jest w nawiasach okrągłych, tzn. piszesz (f x y ...) -- tak jak we wszystkich lispach. Przy definiowaniu funkcji używa się nawiasów kwadratowych, tzn. pisze się (defn f [x y] ...) (w najprostszym wariancie) W Common lispie pisze się (defun f (x y) ...), co wydaje się równie dziwaczne, zważywszy na asymetrię między definicję a użyciem. Moim zdaniem tylko Scheme robi to dobrze, tzn. jeżeli napiszesz (define (f x) cośtam/x), to (f x) rzeczywiście oznacza cośtam/x. Tak czy inaczej, nie widzę, w jaki sposób rozwiązanie w Clojure miałoby być lepsze niż w Common Lispie. Tak samo, jeżeli idzie o formę let. O ile zgadzam się, że domyślne zachowanie let powinno być sekwencyjne (czyli jak let* w CL/Scheme), to nie widzę, dlaczego pisanie (let [a 5 b 10] ...) miałoby być czytelniejsze niż (let ((a 5) (b 10)) ...). > Jak dla mnie bolączką Common Lispa jest przede wszystkim uboga > biblioteka standardowa, uboga ilość bibliotek w porównaniu > z Pythonem, Ruby, Javą, a nawet Perlem (coś jak Pypi, CPAN, RubyGems), Dla mnie największe bolączki Pythona to nadmiar wersji, oraz genialny pomysł Guido, żeby rozbić kompatybilność pomiędzy pythonem 2 i 3 (najbardziej idiotyczna fanaberia w dziejach współczesnej informatyki) -- a szkoda, bo istnieją naprawdę fajne projekty, jak choćby Enaml (którego postawienie jest jednak groteskowo trudne np. na OS X) Co do pakietów to niby jest Quicklisp; ja tam zresztą nie wiem -- i tak zazwyczaj sam rozwijam swoje biblioteki (no ale to w Schemie). Zresztą chyba Garret Smith żartował, że menadżerem pakietów Erlanga jest Github. > brak tzw "killer apps", które spowodują, że dużo ludzi po prostu będzie > chciało przesiąść się na Lispa i rozwijać jego klocki, bo nie zrobi > "czegoś" tak wygodnie i fajnie jak w Common Lispie (czyli np. boom > jaki był z Railsami w pewnym czasie, albo dzisiaj jest z Node.js > i Angularem dla JS'a). Tzn. chodzi o to, że nie ma na Common Lispa głupiej mody. Zgoda, pewnie nigdy nie będzie, Common Lisp nie jest dla owiec. Z drugiej strony, jeżeli warto to robić, przepisanie aplikacji z Pythona na Common Lisp jest raczej łatwe, a zysk wydajności potrafi być nawet o kilka rzędów wielkości. > Poza tym rozdrobnienie środowiska na kilka > odmian Common Lispów (z czego najbardziej popularny CLisp jest sprzed 6 lat). Takie samo rozdrobnienie środowiska masz w Pythonie (bo różne wersje) i w JavaScripcie (bo różne przeglądarki)
Technical Details
Message-ID:
<15cdaa3f-103f-4144-8566-b6b27033c2d5@googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!news.glorb.com!r185no104407ita.0!news-out.google.com!15ni2760itm.0!nntp.google.com!r185no104396ita.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mailReferences:
<6fa92c07-f755-408e-a20c-0e9a357d7342@googlegroups.com> <ccd0fdd2-5b9c-450f-a309-ad0da31ae929@googlegroups.com> <fbbef48e-6ca7-4894-817c-e3c0e70e8e55@googlegroups.com>Show Full Headers
Complete Article Headers
X-Received: by 10.157.41.189 with SMTP id n58mr11630976otb.124.1485341745186; Wed, 25 Jan 2017 02:55:45 -0800 (PST) X-Received: by 10.157.39.202 with SMTP id c68mr1974159otb.8.1485341744973; Wed, 25 Jan 2017 02:55:44 -0800 (PST) Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!news.glorb.com!r185no104407ita.0!news-out.google.com!15ni2760itm.0!nntp.google.com!r185no104396ita.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: pl.comp.lang.funkcyjne Date: Wed, 25 Jan 2017 02:55:44 -0800 (PST) In-Reply-To: <fbbef48e-6ca7-4894-817c-e3c0e70e8e55@googlegroups.com> Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=213.192.95.134; posting-account=f7iIKQoAAAAkDKpUafc-4IXhmRAzdB5r NNTP-Posting-Host: 213.192.95.134 References: <6fa92c07-f755-408e-a20c-0e9a357d7342@googlegroups.com> <ccd0fdd2-5b9c-450f-a309-ad0da31ae929@googlegroups.com> <fbbef48e-6ca7-4894-817c-e3c0e70e8e55@googlegroups.com> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <15cdaa3f-103f-4144-8566-b6b27033c2d5@googlegroups.com> Subject: Re: Ciekawa seria podcastów na temat Common Lispa From: godek.maciek@gmail.com Injection-Date: Wed, 25 Jan 2017 10:55:45 +0000 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit