🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.c
Article #267809

Re: Ciemna strona C++

#267809
From: Marcin ‘Qrczak’ Kowalczyk
Date: Sat, 24 Nov 2007 15:35
53 lines
4304 bytes
Dnia 24-11-2007, So o godzinie 14:31 +0000, Sektor van Skijlen pisze:

> Ktoś mi mówił - nie wiem, czy nie Qrczak - że ta składnia taka miała
> początkowo być tylko składnią pośrednią, a jako user-friendly składnia miało
> być opracowane co innego. No ale podobno jakoś zaczęli używać tego języka w
> tej składni wewnętrznej i nikomu się już nie chciało pisać normalnej składni.

Nie pamiętam, czy o tym mówiłem.

W pracach naukowych były używane dwie składnie: jedna do zapisu
programu, M-expressions (m = meta):
   http://en.wikipedia.org/wiki/M-expression
a druga do zapisu danych przetwarzanych przez program, S-expressions
(s = symbolic). Początkowo elementy list w S-expressions były oddzielane
przecinkami, a nie spacjami. M-expressions można kodować w S-expressions.

Oryginalna praca McCarthy’ego o Lispie z roku 1960 jest tutaj:
   http://www-formal.stanford.edu/jmc/recursive.html
albo w oryginalnej typografii wcześniejsza wersja, 1959:
   http://www.informatimago.com/develop/lisp/small-cl-pgms/aim-8/aim-8.html

> Efekt jest taki, że może jakby ktoś zrobił z tego sensowną składnię,
> to może i Lisp przyjąłby się bardziej. A tak - cóż.

Nieprawda. Powstał język Dylan, nawet Apple go promował. Semantykę ma
podobną do Lispa, ale składnię do Pascala czy Ady (trochę rozwlekłą,
ale poza tym to całkiem miły język). Jest jednak o wiele mniej popularny
niż Common Lisp.

Lispowcy używają tego jako kanonicznego argumentu za składnią Lispa.
Ale ja składni Lispa nie lubię.

> Poza tym, Java nie jest wcale taka znów dynamiczna. Nie widzę w tym względzie
> żadnych większych różnic od C++.

Różnica jest zasadnicza. Bibliotekę Javy można owinąć w interfejs innego 
języka programowania polegając wyłącznie na informacji dostępnej w czasie
wykonania. Podobnie jak w wielu innych językach. Można zobaczyć, jakie są
w niej klasy, jakie one mają metody, wywoływać metody po nazwie znanej
w czasie wykonania, przekazywać obiekty nie znając statycznie ich typu.

W C++ niczego takiego nie ma i biblioteki trzeba owijać nie dość,
że na etapie kompilacji, to jeszcze ręcznie opisując interfejs
każdej biblioteki - nie da się przeiterować po wszystkich elementach
definiowanych przez bibliotekę oraz poznać ich interfejs ani w czasie
wykonania, ani kombinacją szablonów i makr w czasie kompilacji.
W C++ nie można też złapać wyjątku i np. przekazać go do innego wątku
bez statycznej znajomości jego typu.

-- 
   __("<         Marcin Kowalczyk
   \__/       qrczak@knm.org.pl
    ^^     http://qrnik.knm.org.pl/~qrczak/
Technical Details
Message-ID: <1195918508.27382.40.camel@qrnik>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!opal.futuro.pl!news.internetia.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mail
References: <fghgeo$spf$1@nemesis.news.tpi.pl> <fghsb4$kpq$1@news.dialog.net.pl> <fgo4c7$mtu$1@news.vectranet.pl> <20071106073039.433f4934@Vorago> <fgqn9m$74j$2@news.vectranet.pl> <618565031.20071107113041@pkierski.net> <fgt6sh$jov$1@news.vectranet.pl> <fgtb6j$nur$1@news.vectranet.pl> <fgv6ba$k14$1@bozon2.softax.pl> <fgvkne$u3b$1@news.vectranet.pl> <fh1tjd$dtt$1@bozon2.softax.pl> <fh2lj6$qkh$1@news.vectranet.pl> <fha3as$pap$1@bozon2.softax.pl> <fhaj8u$e02$1@news.vectranet.pl> <fhf09d$ohq$1@bozon2.softax.pl> <fhfi9l$640$1@news.vectranet.pl> <fhurmu$5d9$1@bozon2.softax.pl> <fhv020$8k1$1@news.vectranet.pl> <fi1bs4$nn3$1@bozon2.softax.pl> <fi27ds$gt1$1@kujawiak.man.lodz.pl> <fi458p$fmv$1@bozon2.softax.pl> <fi9ckc$2u5$1@kujawiak.man.lodz.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!opal.futuro.pl!news.internetia.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mail
From: Marcin ‘Qrczak’ Kowalczyk
 <qrczak@knm.org.pl>
Newsgroups: pl.comp.lang.c
Subject: Re: Ciemna strona C++
Date: Sat, 24 Nov 2007 16:35:08 +0100
Organization: tp.internet - http://www.tpi.pl/
Lines: 78
Message-ID: <1195918508.27382.40.camel@qrnik>
References: <fghgeo$spf$1@nemesis.news.tpi.pl>  <fghsb4$kpq$1@news.dialog.net.pl> <fgo4c7$mtu$1@news.vectranet.pl>  <20071106073039.433f4934@Vorago> <fgqn9m$74j$2@news.vectranet.pl>  <618565031.20071107113041@pkierski.net> <fgt6sh$jov$1@news.vectranet.pl>  <fgtb6j$nur$1@news.vectranet.pl> <fgv6ba$k14$1@bozon2.softax.pl>  <fgvkne$u3b$1@news.vectranet.pl> <fh1tjd$dtt$1@bozon2.softax.pl>  <fh2lj6$qkh$1@news.vectranet.pl> <fha3as$pap$1@bozon2.softax.pl>  <fhaj8u$e02$1@news.vectranet.pl> <fhf09d$ohq$1@bozon2.softax.pl>  <fhfi9l$640$1@news.vectranet.pl> <fhurmu$5d9$1@bozon2.softax.pl>  <fhv020$8k1$1@news.vectranet.pl> <fi1bs4$nn3$1@bozon2.softax.pl>  <fi27ds$gt1$1@kujawiak.man.lodz.pl> <fi458p$fmv$1@bozon2.softax.pl>  <fi9ckc$2u5$1@kujawiak.man.lodz.pl>
NNTP-Posting-Host: hjd150.internetdsl.tpnet.pl
Mime-Version: 1.0
X-Trace: nemesis.news.tpi.pl 1195918853 17084 79.187.237.150 (24 Nov 2007 15:40:53 GMT)
X-Complaints-To: usenet@tpi.pl
NNTP-Posting-Date: Sat, 24 Nov 2007 15:40:53 +0000 (UTC)
In-Reply-To: <fi9ckc$2u5$1@kujawiak.man.lodz.pl>
X-Mailer: Evolution 2.12.1 PLD Linux
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit