🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: ile czasu trzeba aby sie nauczyc c++?

#246908
From: godek.maciek
Date: Wed, 05 Apr 2017 10:22
57 lines
4559 bytes
W dniu środa, 5 kwietnia 2017 08:35:30 UTC+2 użytkownik Wojciech Muła napisał:

> Jeśli ktoś tu jest "fanbojem", to raczej Ty. Miłośnicy C++,
> jak się krytykuje ten koślawy język, czy idiotyczne posunięcia
> komitetu, to strasznie się unoszą.

Zwłaszcza jak zwalczają argumenty, które jeszcze nie zostały wypowiedziane,
a o tych, które wypowiedziane zostały, stwiedzają, że "stosują się
też do wszystkiego innego".

Przeszło 10 lat temu pracowałem nad swoim endżinem 3d w C++ [1],
ucząc się z książki Stroustrupa, i tworzyłem (z oficjalnym błogosławieństwem
twórcy języka) takie kwiatki jak

for_each(in_seq(objects), bind2nd(mem_fun(&Object::update), dt));

(czego w życiu bym nie napisał bez podręcznika)

Później odkryłem bibliotekę "boost", a w niej takie czarodziejstwa,
jak lambda czy bind, i nawet framework do widgetów -- jak mi się
wówczas wydawało -- dość wygodny, trochę wzorowany na Qt, w którym
mogłem pisać tak:

https://sourceforge.net/p/goose/code/HEAD/tree/janlib/jandemo.cc

Znalazłem też coś takiego, jak boost::tuple, które stanowiło nieco
lepszy odpowiednik std::pair, dzięki czemu mój kod zyskiwał na
czytelności, bo mogłem tworzyć rozjaśniające deklaracje zmiennych
w rodzaju

list<pair<v3f, list<tuple<Subspace *, int, v3f> >::iterator> > displacements;

(w tamtym czasie w C++ jeszcze nie było "auto", ale nawet gdy się
pojawiło, nie miałem pewności, czy z niego korzystać, czy nie korzystać).

Mam nadzieję, że nie muszę dodawać, że gdy zdarzyło mi się zapomnieć
średnika, komunikaty o błędach z boostem potrafiły zajmować lekko 3
ekrany (mówię o GCC, bo tylko z niego korzystałem).

Oczywiście, teraz są inne czasy -- C++0x11 wprowadził lambdy, więc
jest to już zasadniczo zupełnie inny język. Każda kolejna rewizja C++
czyni z niego zupełni inny język.

Co do programowania funkcyjnego, natknąłem się ostatnio na artykuł
Stroustrupa et al., w którym przy pomocy C++owych szablonów dodają
do języka pattern matching:

http://www.stroustrup.com/OpenPatternMatching.pdf

Jeżeli ktoś ma ochotę tego używać, jego sprawa, podobnie jak
z STLem, którego interfejs jest raczej koszmarny w użyciu
(wymaga albo bardzo dobrej pamięci, którą jednak wolę przeznaczyć
na inne rzeczy, albo ciągłego zerkania do referencji, co jest
kosztowne czasowo)

[1] jak ktoś jest zainteresowany, to źródła są wciąż dostępne tutaj
https://sourceforge.net/projects/goose/files/goose/pre-alpha-0.02/goose.tar.gz/download
Technical Details
Message-ID: <c04357ca-2816-449a-a76d-3544891487be@googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!peer01.am4!peer.am4.highwinds-media.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!n21no5464513qta.1!news-out.google.com!m191ni21047itc.0!nntp.google.com!y18no4541651itc.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
References: <451e90e7$0$17965$f69f905@mamut2.aster.pl> <2bb5.00000022.45239396@newsgate.onet.pl> <eg0l2h$pre$1@nemesis.news.tpi.pl> <2afb3725-2059-4f04-b4ac-0989aff4dbd4@googlegroups.com> <58e1d648$0$5141$65785112@news.neostrada.pl> <896bb474-1535-4eb5-a427-1d74855ca14e@googlegroups.com> <58e20fc5$0$643$65785112@news.neostrada.pl> <82bfc8d8-6b1d-4928-b831-bdbbe71fc013@googlegroups.com> <58e245ef$0$640$65785112@news.neostrada.pl> <ed300d94-7f05-4791-ae56-077b774efa54@googlegroups.com> <58e28b69$0$15195$65785112@news.neostrada.pl> <1a59b0b0-0be0-44c9-9886-28171ba25a91@googlegroups.com>

Show Full Headers
Complete Article Headers
X-Received: by 10.129.135.199 with SMTP id x190mr11553784ywf.63.1491387724477;        Wed, 05 Apr 2017 03:22:04 -0700 (PDT)
X-Received: by 10.157.15.162 with SMTP id d31mr974630otd.0.1491387724419; Wed, 05 Apr 2017 03:22:04 -0700 (PDT)
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!peer01.am4!peer.am4.highwinds-media.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!n21no5464513qta.1!news-out.google.com!m191ni21047itc.0!nntp.google.com!y18no4541651itc.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
Newsgroups: pl.comp.lang.c
Date: Wed, 5 Apr 2017 03:22:03 -0700 (PDT)
In-Reply-To: <1a59b0b0-0be0-44c9-9886-28171ba25a91@googlegroups.com>
Complaints-To: groups-abuse@google.com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=213.192.95.134; posting-account=f7iIKQoAAAAkDKpUafc-4IXhmRAzdB5r
NNTP-Posting-Host: 213.192.95.134
References: <451e90e7$0$17965$f69f905@mamut2.aster.pl> <2bb5.00000022.45239396@newsgate.onet.pl> <eg0l2h$pre$1@nemesis.news.tpi.pl> <2afb3725-2059-4f04-b4ac-0989aff4dbd4@googlegroups.com> <58e1d648$0$5141$65785112@news.neostrada.pl> <896bb474-1535-4eb5-a427-1d74855ca14e@googlegroups.com> <58e20fc5$0$643$65785112@news.neostrada.pl> <82bfc8d8-6b1d-4928-b831-bdbbe71fc013@googlegroups.com> <58e245ef$0$640$65785112@news.neostrada.pl> <ed300d94-7f05-4791-ae56-077b774efa54@googlegroups.com> <58e28b69$0$15195$65785112@news.neostrada.pl> <1a59b0b0-0be0-44c9-9886-28171ba25a91@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <c04357ca-2816-449a-a76d-3544891487be@googlegroups.com>
Subject: Re: ile czasu trzeba aby sie nauczyc c++?
From: godek.maciek@gmail.com
Injection-Date: Wed, 05 Apr 2017 10:22:04 +0000
X-Received-Body-CRC: 3644689579
X-Received-Bytes: 5014
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit