Article View: pl.comp.lang.funkcyjne
Article #996Re: W nawiązaniu do rozmowy o Common Lisp vs Java
From: godek.maciek
Date: Fri, 27 Jan 2017 07:36
Date: Fri, 27 Jan 2017 07:36
43 lines
3682 bytes
3682 bytes
W dniu czwartek, 26 stycznia 2017 23:56:05 UTC+1 użytkownik godek....@gmail.com napisał: > Ja myślę o tych kwestiach w zupełnie inny sposób, tzn. mam świadomość, > że korzystając z jakiegoś języka programowania niebędącego lispem, coś > odrzucam. [...] uświadomiłem sobie, że chyba niedociągnąłem wątku. Chodzi mi zasadniczo o to, że być może istnieją języki, które mają lepsze ekosystemy, niż Common Lisp albo Scheme (przynajmniej do partykularnych potrzeb), jednak to jest kwestia przygodna -- ekosystem jest czymś, co ewoluuje. Co do pewnych własności istotowych, to Common Lisp i Scheme będą zawsze je posiadały -- homoikoniczność jest realną przewagą Lispów nad nie-lispami. Składnia Javy może się podobać albo nie, tak jak składnia Pythona albo Ruby'ego. Być może za popularnością Pythona stoją względy estetyczno-kulturowe, bardziej niż cokolwiek innego. W przypadku Lispa -- w przeciwieństwie do Javy czy Pythona -- składnia nie jest kwestią fanaberii. Kluczową kwestią jest zrozumienie, że to jest składnia uniwersalna, tzn. taka, w której można wyrazić (w sposób jednorodny) każdą strukturę wyrażalną w każdej innej składni. To nie jest kwestia estetyki (w każdym razie wizualnej), tylko zrozumienia. To jest składnia obiektywnie prostsza -- co mogdybym chciał stworzyć podobną strukturę w C albo Javieżna stwierdzić, porównując BNF dla Lispa np. z BNF dla C http://cui.unige.ch/db-research/Enseignement/analyseinfo/LISP/BNFlisp.html http://www.cs.man.ac.uk/~pjj/bnf/c_syntax.bnf (jest prostsza do wyrażenia, a zatem prosta w nauce, bo przewidywalna, i prosta do przetworzenia). Co prawda analogony operatora quote istnieją w takich językach, jak Julia czy Elixir, a makra można tworzyć nawet w Scali, ale w każdym z tych przypadków jest to nieporównywalnie trudniejsze i idiosynkratyczne. Wracając do przykładu z gramatykami bezkontekstowymi, gdybym chciał stworzyć podobną strukturę w C albo w Javie, napotkałbym na wiele przeszkód. W Pythonie albo Javascripcie mógłbym co prawda korzystać z tablic albo stringów, ale nawet wówczas składnia jest nieprzezroczysta, tzn. musiałbym pisać ['<S>', '=>', '<A>', '<B>'] itd., co jest upierdliwe nawet przy wpisywaniu, oraz istotowo różne od kodu w Pythonie/JavaScipcie.
Technical Details
Message-ID:
<8919efae-0e7a-4c03-9a9b-78becf3847b0@googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news.glorb.com!r185no572854ita.0!news-out.google.com!15ni12570itm.0!nntp.google.com!r185no572845ita.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mailReferences:
<f2971b42-0147-4004-9719-35597606c6eb@googlegroups.com> <bc80031a-7361-4ad7-afba-749028aafb84@googlegroups.com>Show Full Headers
Complete Article Headers
X-Received: by 10.107.136.105 with SMTP id k102mr1912301iod.21.1485502578655; Thu, 26 Jan 2017 23:36:18 -0800 (PST) X-Received: by 10.157.56.117 with SMTP id r50mr493286otd.12.1485502578604; Thu, 26 Jan 2017 23:36:18 -0800 (PST) Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news.glorb.com!r185no572854ita.0!news-out.google.com!15ni12570itm.0!nntp.google.com!r185no572845ita.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: pl.comp.lang.funkcyjne Date: Thu, 26 Jan 2017 23:36:18 -0800 (PST) In-Reply-To: <bc80031a-7361-4ad7-afba-749028aafb84@googlegroups.com> Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=176.221.123.40; posting-account=f7iIKQoAAAAkDKpUafc-4IXhmRAzdB5r NNTP-Posting-Host: 176.221.123.40 References: <f2971b42-0147-4004-9719-35597606c6eb@googlegroups.com> <bc80031a-7361-4ad7-afba-749028aafb84@googlegroups.com> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <8919efae-0e7a-4c03-9a9b-78becf3847b0@googlegroups.com> Subject: Re: W nawiązaniu do rozmowy o Common Lisp vs Java From: godek.maciek@gmail.com Injection-Date: Fri, 27 Jan 2017 07:36:18 +0000 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit