Article View: pl.comp.lang.c
Article #267825Re: Ciemna strona C++
From: Sektor van Skijlen
Date: Mon, 26 Nov 2007 12:26
Date: Mon, 26 Nov 2007 12:26
90 lines
6085 bytes
6085 bytes
Dnia Sat, 24 Nov 2007 16:35:08 +0100, Marcin ?Qrczak? Kowalczyk skrobie:
> Dnia 24-11-2007, So o godzinie 14:31 +0000, Sektor van Skijlen pisze:
> > 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.
Sam fakt, że Dylan się nie przyjął, to jeszcze dla mnie nie argument.
Gdy przyglądam się jego składni, to nosi w sobie pewne wizualne podobieństwa
do wielu "literowo-pisanych" języków (Algol, Pascal, Ada, Simula, Ruby).
Nie widziałbym problemu, żeby zrobić podobny język ze składnią bliższą C++.
Problem tylko w tym, że Dylan po prostu konkurował z innymi językami, niż
Scheme. No i kwestia promocji przez samą firmę Apple, która sama długo nie
mogła się przecież zdecydować, na jaki język mają stawiać. Nie bez kozery
przyczyną porażki Dylana był związek z Newtonem (cytując za Wikipedią):
Dylan was created in the early 1990s by a group led by Apple Computer. At one
point in its development it was intended for use with Apple's Newton computer,
but the Dylan implementation did not reach sufficient maturity in time, and
Newton instead used a combination of C and the NewtonScript developed by
Walter Smith. Apple ended their Dylan development effort in 1995, though they
made a "technology release" version available ("Apple Dylan TR1") that
included an advanced IDE.
> Lispowcy używają tego jako kanonicznego argumentu za składnią Lispa.
Czy trudno o lepszy dowód, że Lispowcy to idioci?
Przecież gdyby to była prawda, Scheme wygrałby nie tylko z Dylanem, ale
również z C++ i Javą. Na razie się na to nie zanosi.
> Ale ja składni Lispa nie lubię.
Truno ją lubić - chociaż winię właśnie składnię za jedną z istotniejszych
przyczyn małej popularności tej rodziny języków.
No i oczywiście jak wielu niepopularnym językom, zabrakło dobrej promocji, a
co za tym idzie, bibliotek, rozwiązań, wsparcia itd. Podobny los spotkał
przecież Tcl-a, a jest to z języków inspirowanych Lispem (nawet w niewielkim
stopniu) jeden z najsensowniejszych.
> > 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.
Pod warunkiem, że projekt jest skompilowany javac-em, a nie gcj-em.
> W C++ niczego takiego nie ma
Poprawka: dla C++ nikt do tej pory nie napisał kompilatora kompilującego na
taką platformę, która by to udostępniała.
> 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.
Ale po co, do cholery???
Przecież jeśli - dajmy na to - chciałbym wywołać sobie metodę Javy spod
skryptu w Tcl-u (Jacl?), to MUSZĘ znać nazwę tej metody, jej właściwości,
interfejs, typy argumentów, typ zwracany, posiadać facility do przekształcania
danych w razie konieczności itd. Na cholerę mi do tego jest potrzebne
iterowanie po wszystkich elementach definiowanych przez bibliotekę!?
> W C++ nie można też złapać wyjątku i np. przekazać go do innego wątku
> bez statycznej znajomości jego typu.
Owszem, można. Pod warunkiem oczywiście, że jest wyprowadzony z
std::exception.
--
// _ ___ Michal "Sektor" Malecki <sektor(whirl)kis.p.lodz.pl>
\\ L_ |/ `| /^\ ,() <ethouris(O)gmail.com>
// \_ |\ \/ \_/ /\ C++ bez cholesterolu: http://www.intercon.pl/~sektor/cbx
"Java is answer for a question that has never been stated"
Technical Details
Message-ID:
<fiee2a$af0$1@kujawiak.man.lodz.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!lublin.pl!news.man.lodz.pl!not-for-mailReferences:
<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> <1195918508.27382.40.camel@qrnik>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!lublin.pl!news.man.lodz.pl!not-for-mail
From: Sektor van Skijlen <ethouris@guess.if.gmail.com.is.valid.or.invalid>
Newsgroups: pl.comp.lang.c
Subject: Re: Ciemna strona C++
Date: Mon, 26 Nov 2007 12:26:50 +0000 (UTC)
Organization: LODMAN - Metropolitan Area Network in LODZ, Poland
Lines: 90
Sender: Michal Malecki <sektor@student.kis.p.lodz.pl>
Message-ID: <fiee2a$af0$1@kujawiak.man.lodz.pl>
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> <1195918508.27382.40.camel@qrnik>
NNTP-Posting-Host: student.kis.p.lodz.pl
Mime-Version: 1.0
X-Trace: kujawiak.man.lodz.pl 1196080010 10720 212.191.89.21 (26 Nov 2007 12:26:50 GMT)
X-Complaints-To: abuse@man.lodz.pl
NNTP-Posting-Date: Mon, 26 Nov 2007 12:26:50 +0000 (UTC)
User-Agent: tin/1.8.3-20070201 ("Scotasay") (UNIX) (FreeBSD/6.2-RELEASE-p3 (sparc64))
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit