🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

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

#310304
From: Wojciech Muła
Date: Mon, 07 Dec 2020 20:53
22 lines
4238 bytes
On Monday, December 7, 2020 at 4:32:37 PM UTC+1, jawors...@adres.pl wrote:
> > Nadużywasz słów "zawsze" i "nigdy".
> W poradniku to raczej normalne...

Może w poradniku dla sapera. :)

> > Razi styl C++ fanboja, przekręcanie nazw języków itp. Mało to profesjonalne i nie zachęca do poważnego potratowania.
> Zadałem tu: https://4programmers.net/Forum/Inne/346577-jaki_jezyk_jest_lepszy_od_c pytanie: Czy ktoś zna język mający wszystkie najważniejsze zalety C++? I był przy tym lepszy od C++. Poziom odpowiedzi był żenująco niski. 
> Nawet nie wiedzieli tam jaki inny język wspiera wielodziedziczenie. 
> Tak więc puki co będę entuzjastą C++. 

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.

C++ trochę nadrabia ostatnio, ale przez dekady nie dorobił się systemu modułów. W równoległym wszechświecie koncepcja modułów istniej od pół wieku, doczekała nawet wariantu parametryzowanego (w Ocamlu, SML-u, Adzie). C++ nie ma spójnego systemu budowania. Nie ma systemu dystrybucji paczek, wersjonowania pakietów, słowem niczego co jest normą w innych językach i co jest oczekiwane przez programistów. Z powodu tych bolączek powstał cały ruch bibliotek "include only", bo po prostu łatwiej skopiować plik i teoretycznie gotowe. Ale to obejście, a nie rozwiązanie systemowe.

Wspomniałeś w poprzednim poście o obsłudze napisów. Przecież C++ w 2020 roku nawet nie wie co to Unicode. Nie zna pojęcia "znaku", utożsamiając go z losowym kodem znaku. Weźmy np. static_cast<char>(250) -- co to jest? Weźmiesz kodowanie extended ASCII? A może to pierwszy bajt z UTF-8? A może to przyszło z programu pana Zenka, który w 1983 zastosował kodowanie Mazovia, czy jak to się tam zwało. A może z maszyny sterowanej Windowsem'95 i tam będzie Windows-1251?

W ogóle klasa std::string to jest piękny przykład nagromadzenia antypatternów, coś potwornego. Do tego mało praktyczna, bo jak ktoś poużywał stringów np. w Pythonie i musi wrócić do C++, to fizycznie boli. Wyrażenia regularne z C++11? Są jak żona komisarza Ryby --- pomyłką. API z lat '90, niewyobrażalnie koślawe, żeby jeszcze implementacje były wydajne... no nie są.

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. Ten język nie umrze łatwo, za dużo w nim kodu napisano. Jest nawet niezerowa szansa, że nie podzieli losu COBOLA.

w.
Technical Details
Message-ID: <e38a42c4-36d3-49b6-8644-468f65828f4cn@googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!fu-berlin.de!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>

Show Full Headers
Complete Article Headers
X-Received: by 2002:ac8:6642:: with SMTP id j2mr25464988qtp.323.1607374384807;        Mon, 07 Dec 2020 12:53:04 -0800 (PST)
X-Received: by 2002:ae9:f819:: with SMTP id x25mr6449577qkh.429.1607374384615; Mon, 07 Dec 2020 12:53:04 -0800 (PST)
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!fu-berlin.de!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: pl.comp.lang.c
Date: Mon, 7 Dec 2020 12:53:04 -0800 (PST)
In-Reply-To: <cdd14123-89b7-4f80-9f2b-865f1038810an@googlegroups.com>
Complaints-To: groups-abuse@google.com
Injection-Info: google-groups.googlegroups.com; posting-host=178.43.54.87; posting-account=VFwkXwoAAADdT4-lLKRZrMYkTjizGoyn
NNTP-Posting-Host: 178.43.54.87
References: <478ab743-cd00-4961-88e1-983025db304bn@googlegroups.com> <d9830106-c21a-4564-b45f-0766ef86181fn@googlegroups.com> <cdd14123-89b7-4f80-9f2b-865f1038810an@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <e38a42c4-36d3-49b6-8644-468f65828f4cn@googlegroups.com>
Subject: Re: Sztuka Kodowania w C++ - Nowa Wersja!
From: Wojciech Muła <wojciech_mula@poczta.onet.pl>
Injection-Date: Mon, 07 Dec 2020 20:53:04 +0000
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit