🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Ciemna strona C++

#267721
From: Seweryn Habdank-Wojewódzki
Date: Sat, 10 Nov 2007 17:48
85 lines
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-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> <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