🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Ciemna strona C++

#267719
From: Tomasz bla Fortuna
Date: Fri, 09 Nov 2007 23:07
95 lines
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-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>

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