Article View: pl.comp.lang.c
Article #267721Re: Ciemna strona C++
From: Seweryn Habdank-Wojewódzki
Date: Sat, 10 Nov 2007 17:48
Date: Sat, 10 Nov 2007 17:48
85 lines
4042 bytes
4042 bytes
Witam
Tomasz bla Fortuna wrote:
> (Chodziło chyba o przykład z 3 strony.)
Nie. Cały czas mowa o stronie slajdzie 47.
> 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.
A czy NIE możesz użyć wskaźnika?
Tak przy okazji, kiedy w jakiejś metodzie w J przekazujesz cos to skąd wiesz
czy jest modyfikowane, czy nie?
Możesz wykonać oczywiście operację foo.clone(), ale to powoduje drastyczny
spadek wydajności, bo zawsze tworzysz nowy obiekt -- taka J-wersja
przekazywania parametru przez wartość.
> Z drugiej strony jak często przez by-reference przekazuje się typy
> proste?
Tego nie wiem.
> I jak często przekazuje się by-value typy bardziej zlożone?
Powinno się to robić rzadko. Iterator i smart_ptr są przykładami kiedy tak
właśnie przekazuje się niePOD'a.
> 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...
const poprawia nie tylko czytelność. Również powoduje, że kompilator może
więcej optymalizować.
>> >> 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.
Wydaje mi się, że rynek poszedł po najmniejszej linii oporu. Okazało się, że
XML jest średnio dobry do wszystkiego. Napisano parsery XML'a i wszyscy na
tym jadą.
Ci co chcą czegoś więcej piszą sami. Są czasami jakieś wspomagacze, ale są
wszędzie tak samo paskudne (modulo paskudność języka). Po prostu zadanie
parsowania jest samo w sobie trudne.
> 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.
Przede wszystkim w C się robi takie haki. Zresztą jak widać Pan F. wyrósł z
takiej szkoły. Porównaj sobie styl sugerowany przez Pana F. i przez Koenig
i Moo. Zobaczysz jakie są drastyczne różnice.
Tak samo jak Jędrzejowi napiszę i tu:
template <typename T>
void fun(T* tablica)
{
tablica[0].whatever; // działa dobrze.
}
Pozdrawiam.
--
|\/\/| Seweryn Habdank-Wojewódzki
\/\/
Technical Details
Message-ID:
<fh4q3j$rsq$3@news.vectranet.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.vectranet.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> <20071110000717.4b6762ff@Vorago>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.vectranet.pl!not-for-mail From: Seweryn Habdank-Wojewódzki <shw_mail@wp.pl> Newsgroups: pl.comp.lang.c Subject: Re: Ciemna strona C++ Date: Sat, 10 Nov 2007 18:48:16 +0100 Organization: VectraNET - http://www.vectranet.pl Lines: 86 Message-ID: <fh4q3j$rsq$3@news.vectranet.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> <20071110000717.4b6762ff@Vorago> Reply-To: shw_mail@wp.pl NNTP-Posting-Host: 078088193244.osw.vectranet.pl Mime-Version: 1.0 X-Trace: news.vectranet.pl 1194716085 28570 78.88.193.244 (10 Nov 2007 17:34:45 GMT) X-Complaints-To: usenet@news.vectranet.pl NNTP-Posting-Date: Sat, 10 Nov 2007 17:34:45 +0000 (UTC) User-Agent: KNode/0.10.5 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit