Article View: pl.comp.lang.c
Article #267719Re: Ciemna strona C++
From: Tomasz bla Fortuna
Date: Fri, 09 Nov 2007 23:07
Date: Fri, 09 Nov 2007 23:07
95 lines
4746 bytes
4746 bytes
Dnia Fri, 09 Nov 2007 23:18:55 +0100 Seweryn Habdank-Wojewódzki <shw_mail@wp.pl> napisał(a): > Sebastian Kaliszewski wrote: > >> Pan F. nie pokazuje jak coś nie działa i jest to zrobione w dobrym > >> stylu C++. > > > > Użycie iteratorów jest w złym stylu C++ ??? > On nie użył iteratora! Wskaźnik to nie iterator. Iterator może być > wskaźnikiem. Taka silna inkluzja zbiorów. Pan F. bawi się wskaźnikami > a nie iteratorem. (Chodziło chyba o przykład z 3 strony.) > >> Do tego właśnie służy CONST!!! > > Co ty wyyślasz???!!?!?!?!?!?!? > > > > int dupa(int niemodyfikowany, int& modyfikowany); > > gdzie masz jakieś const??!?! > > int dupa(int niemodyfikowany // tu wszyscy orędownicy języków > lepszych // podnoszą larum o kopiowanie, > // zatem proponuję to co poniżej > , int& modyfikowany); > > int dupa(type const & niemodyfikowany, type & modyfikowany); > int dupa(POD_type const niemodyfikowany, POD_type & modyfikowany); Tylko wywołanie będzie wyglądało i tak w ten sposób: int a,b; dupa(a,b); Programista zorientuje się, że coś jest tutaj może być modyfikowane dopiero jako obejrzy nagłówek dupy, a wskaźniki wymuszą dodanie & i pisanie: dupa(a,&b); co rzuca się bardziej w oczy przy czytaniu kodu. Z drugiej strony jak często przez by-reference przekazuje się typy proste? I jak często przekazuje się by-value typy bardziej zlożone? W rzeczywistości raczej i tak operuje się na wskaźnikach na obiekty i jedyna możliwość zobaczenia czy te obiekty są modyfikowane to ów const w nagłówku... > >> Parsery wszędzie pisze się parszywie. > > > > Taaa, zwłaszcza w Ocamlu... Albo w Pythonie > > W Ocamlu to w ogóle wszystko elegancko się pisze -- język ten > zdominował rynek. Przepraszam, ale wolę Pythona, czy Haskela. Może rynek nie ma potrzeb na dobry język do parserów? Jego dominacją lub nie na pewno nie można wszystkiego tłumaczyć. No a ocamllex i ocamlyacc jest ok. > >>>W C są wyjątki??? iteratory??? desytuktory???? > >> > >> Nie ma. Są za to inne kwiatki. > > > > Te kwiatki są proste i ograniczone jak samo C. > > Nie są, ani proste, ani ograniczone, a zakres błędów który może > powstawać jest duży. > > > Ale nie wszędzie kod najbardziej oczywisty jest kodem > > niebezpiecznym i niestylowym. To jest domena C++. > > Zapewne. To niech lewary nie piszą w C++! Nie wszyscy maja maturę, nie > wszyscy kończą studia, nie wszyscy muszą pisać w C++. > Nikomu nie każe pisać w C++. > Pewnie znacie ten quote. IMHO pasuje jak ulał: C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, it blows away your whole leg. - Bjarne Stroustrup C nie jest językiem prostym. Ale trudno tam doprowadzić kod do takiego stanu, że trzebaby używać hacków/wrapperów i kombinacji wszelakiego typu żeby naprawić drobny błąd projektowy popełniony na samym początku. > > Przykazywany jest wskaźnik na obiekt klasy pochodnej do funkcji > > oczekującej wskaźnika na obiekt klasy bazowej -- to jest > > *standardowe* użycie polimorfizmu. To, że funkcja oczekuje > > przekazania tablicy, tylko przygłupi, kulawy język nie miesza > > tablice ze wskaźnikami to jest to co jest. > > To jest spadek z C. Tylko w nim pozwalał na postrzelenie się w stopę, a tu pozwala na odstrzelenie całej nogi. ;) Pozdrawiam. -- Tomasz bla Fortuna jid: bla(at)af.gliwice.pl pgp: 0x90746E79 @ pgp.mit.edu www: http://bla.thera.be
Technical Details
Message-ID:
<20071110000717.4b6762ff@Vorago>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!newsfeed.silweb.pl!polsl.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>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!newsfeed.silweb.pl!polsl.pl!not-for-mail From: Tomasz bla Fortuna <bla@thera.be> Newsgroups: pl.comp.lang.c Subject: Re: Ciemna strona C++ Date: Sat, 10 Nov 2007 00:07:17 +0100 Organization: Politechnika Slaska, Gliwice Lines: 119 Message-ID: <20071110000717.4b6762ff@Vorago> 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> NNTP-Posting-Host: afdns.sownet.pl Mime-Version: 1.0 X-Trace: polsl.pl 1194649524 2159 195.82.188.30 (9 Nov 2007 23:05:24 GMT) X-Complaints-To: news@polsl.pl NNTP-Posting-Date: Fri, 9 Nov 2007 23:05:24 +0000 (UTC) X-Newsreader: Claws Mail 3.0.2 (GTK+ 2.12.1; x86_64-pc-linux-gnu) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit