Article View: pl.comp.lang.c
Article #246896Re: ile czasu trzeba aby sie nauczyc c++?
From: Wojciech Muła
Date: Mon, 03 Apr 2017 16:07
Date: Mon, 03 Apr 2017 16:07
32 lines
3352 bytes
3352 bytes
On Monday, April 3, 2017 at 2:54:08 PM UTC+2, Ghost wrote: > >> >C++ jest wyjątkowo paskudnym językiem, który słabo chroni przed błędami. > > > >> Zlot fanbojów? > > >Raczej ludzi z doświadczeniem przemysłowym. > > "Każdy (mądry) ci to powie", mój najulubieńszy argument oponenta - z miejsca > ułatwia pozycjonowanie. Samochodem pewnie też jeździsz najlepsiejszym, > telefon masz najfajniejszy i muzyki słuchasz najkulerskiej :-) Przepraszam, ale to Ty wyskoczyłeś z "fanbojami", teraz próbujesz jakieś tanie zagrywki ad personam. Darujmy sobie. Powiem Ci, jak to wygląda w praktyce. Język C++ pozwala na przykład na tworzenie obiektu, w którym nie zainicjowano wszystkich pól. Ktoś przeoczy inicjalizację jednego i szuka się błędu kilka dni, bo testy jednostkowe przechodzą (przez przypadek, ale przechodzą). Albo z rozpędu ktoś dopisze noexcept, ale metoda niżej rzuca wyjątkiem i domyśl się dlaczego wołany jest std::terminate. Lub też używa się operacji SIMD, bo szybsze, a język pozwala na reinterpret_cast. I program się sypie w losowych momentach, bo gdzieś tam, czasem, wylezie się poza zaalokowaną pamięć akurat na niezamapowaną stronę pamięci. Albo UB powoduje, że program skompilowany w trybie release działa inaczej niż w wersji bez optymalizacji. C++ pozwala na dużo, ale niestety przerzuca odpowiedzialność na programistę. Dlatego powstały standardy kodowania, static checkery, sanitizery, czy ostatnio popularne fuzzery - wszystko to jest poza językiem, uzupełniając jego braki. (Poza tym, przy dużej skali projektu zaczyna działać na naszą niekorzyść statystyka, błędy po prostu będą i trzeba się na to przygotować.) w.
Technical Details
Message-ID:
<ed300d94-7f05-4791-ae56-077b774efa54@googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news.glorb.com!y18no3713735itc.0!news-out.google.com!j72ni1555itb.0!nntp.google.com!y18no3705672itc.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>Show Full Headers
Complete Article Headers
X-Received: by 10.107.152.149 with SMTP id a143mr7559621ioe.30.1491235678860; Mon, 03 Apr 2017 09:07:58 -0700 (PDT) X-Received: by 10.157.46.203 with SMTP id w69mr721890ota.5.1491235678819; Mon, 03 Apr 2017 09:07:58 -0700 (PDT) Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news.glorb.com!y18no3713735itc.0!news-out.google.com!j72ni1555itb.0!nntp.google.com!y18no3705672itc.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: pl.comp.lang.c Date: Mon, 3 Apr 2017 09:07:57 -0700 (PDT) In-Reply-To: <58e245ef$0$640$65785112@news.neostrada.pl> Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=37.47.133.57; posting-account=VFwkXwoAAADdT4-lLKRZrMYkTjizGoyn NNTP-Posting-Host: 37.47.133.57 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> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <ed300d94-7f05-4791-ae56-077b774efa54@googlegroups.com> Subject: Re: ile czasu trzeba aby sie nauczyc c++? From: Wojciech Muła <wojciech_mula@poczta.onet.pl> Injection-Date: Mon, 03 Apr 2017 16:07:58 +0000 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit