🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Sztuka Kodowania w C++ - Nowa Wersja!

#310306
From: Wojciech Muła
Date: Wed, 09 Dec 2020 08:12
33 lines
4214 bytes
On Tuesday, December 8, 2020 at 11:35:59 AM UTC+1, godek....@gmail.com wrote:
> poniedziałek, 7 grudnia 2020 o 21:53:05 UTC+1 Wojciech Muła napisał(a): 
> 
> > Czepiłeś się tego wielodziedziczenia, jakby to był jakiś cud natury, a ta cecha jest marginalna, używana tak naprawdę sporadycznie (no i oczywiście w klasyczny dla C++ sposób skopana, patrz dziedziczenie wirtualne). Ludzkość bowiem dość dawno temu zauważała, że skomplikowanych systemów nie da się łatwo modelować grafami acyklicznymi, że bardziej praktyczna jest kompozycja typów.
> Z tego co rozumiem, wielodziedziczenie umożliwia właśnie tworzenie cyklicznych grafów. (natomiast hierarchie wynikające z kompozycji typów będą zawsze acykliczne) 

Nie. Pojedyncze dziedziczenie daje Ci drzewiastą hierarchię, a wielodziedziczenie grafy skierowane acykliczne.
W hierarchii typów nie możesz mieć cyklu. Przynajmniej ja nie potrafię sobie tego wyobrazić.

> Raz tylko spotkałem się z kimś, kto próbował uzasadnić potrzebę wielodziedziczenia, tutaj: 
> https://www.quora.com/Do-C-developers-find-multiple-inheritance-a-useful-feature-Do-Java-developers-ever-find-themselves-wishing-Java-supported-it/answer/Mario-Galindo-Queralt 
> 
> jednak, jak zwróciłem uwagę w komentarzu, ten sam cel mógłby lepiej osiągnąć za pomocą zwykłej kompozycji. 

Używałem wielodziedzenia jako środka technicznego, bo było wygodniej coś zrobić, ale nie
kojarzę ani jednego użycia na poziomie koncepcyjnym. Tak samo używałem pokręconego
wzorca CRTP, żeby coś było szybciej. Tylko te przypadki policzę na placach jednej ręki.

> > Piszę w tym języku od wielu lat i mógłbym wymieniać więcej kwiatków, np. poznęcać się nad "metaprogramowaniem", które pojawiło się w C++ przez przypadek i tak też działa. Ale, z całym szacunkiem, nie chce mi się, bo jest to po prostu nudne.
> Ja uważam, że rzetelna krytyka jest zawsze wartościowa. 

Produkowanie się tutaj, jeszcze po polsku, to strata czasu. W ogóle krytykowanie C++, nawet
konstruktywne, to strata czasu. Realnie to by trzeba składać proposale, przechodzić przez
całą biurokrację itd. Przykład biblioteki fmt: istnieje od 8 lat, jest powszechnie używana,
jej standaryzacja zajęła rok albo dwa i to będzie dopiero w C++20. Dobre dla kogoś kto ma dużo
wolnego czasu, albo jestoddelegowany w firmie i robi to w godzinach pracy.

> Inna rzecz, że programiści często odbierają krytykę narzędzi jak atak personalny, albo gloryfikują je jakby były nie wiadomo czym.

To kwestia wieku, młodzi się zwykle bardzo przejmują. Z wiekiem i doświadczeniem
uczysz się, że wzruszenie ramionami to często i tak zbyt gwałtowna reakcja. :)

w.
Technical Details
Message-ID: <7ba4dfc5-5edd-4847-b45d-9fbce7d764b7n@googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!wsisiz.edu.pl!goblin2!goblin1!goblin.stu.neva.ru!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
References: <478ab743-cd00-4961-88e1-983025db304bn@googlegroups.com> <d9830106-c21a-4564-b45f-0766ef86181fn@googlegroups.com> <cdd14123-89b7-4f80-9f2b-865f1038810an@googlegroups.com> <e38a42c4-36d3-49b6-8644-468f65828f4cn@googlegroups.com> <edd1ce6a-46e1-4883-8943-db4a0da8da33n@googlegroups.com>

Show Full Headers
Complete Article Headers
X-Received: by 2002:a0c:c30d:: with SMTP id f13mr1656585qvi.29.1607501524455;        Wed, 09 Dec 2020 00:12:04 -0800 (PST)
X-Received: by 2002:a0c:9e43:: with SMTP id z3mr1650548qve.2.1607501524284; Wed, 09 Dec 2020 00:12:04 -0800 (PST)
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!wsisiz.edu.pl!goblin2!goblin1!goblin.stu.neva.ru!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: pl.comp.lang.c
Date: Wed, 9 Dec 2020 00:12:04 -0800 (PST)
In-Reply-To: <edd1ce6a-46e1-4883-8943-db4a0da8da33n@googlegroups.com>
Complaints-To: groups-abuse@google.com
Injection-Info: google-groups.googlegroups.com; posting-host=2a03:5342:f:6:0:0:0:3; posting-account=VFwkXwoAAADdT4-lLKRZrMYkTjizGoyn
NNTP-Posting-Host: 2a03:5342:f:6:0:0:0:3
References: <478ab743-cd00-4961-88e1-983025db304bn@googlegroups.com> <d9830106-c21a-4564-b45f-0766ef86181fn@googlegroups.com> <cdd14123-89b7-4f80-9f2b-865f1038810an@googlegroups.com> <e38a42c4-36d3-49b6-8644-468f65828f4cn@googlegroups.com> <edd1ce6a-46e1-4883-8943-db4a0da8da33n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <7ba4dfc5-5edd-4847-b45d-9fbce7d764b7n@googlegroups.com>
Subject: Re: Sztuka Kodowania w C++ - Nowa Wersja!
From: Wojciech Muła <wojciech_mula@poczta.onet.pl>
Injection-Date: Wed, 09 Dec 2020 08:12:04 +0000
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit