🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.funkcyjne
Article #982

Re: Ciekawa seria podcastów na temat Common Lispa

#982
From: godek.maciek
Date: Wed, 25 Jan 2017 10:55
76 lines
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-mail
References: <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