Article View: pl.comp.lang.c
Article #246908Re: ile czasu trzeba aby sie nauczyc c++?
From: godek.maciek
Date: Wed, 05 Apr 2017 10:22
Date: Wed, 05 Apr 2017 10:22
57 lines
4559 bytes
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-mailReferences:
<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