-
X-Received: by 2002:a0c:b917:: with SMTP id u23mr389797qvf.6.1545951212237; Thu, 27
Dec 2018 14:53:32 -0800 (PST)
X-Received: by 2002:a0c:b917:: with SMTP id u23mr389797qvf.6.1545951212237; Thu, 27
Dec 2018 14:53:32 -0800 (PST)
Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit
0.net!newsreader4.netcologne.de!news.netcologne.de!peer02.ams1!peer.ams1.xlned.
com!news.xlned.com!peer01.fr7!futter-mich.highwinds-media.com!peer02.iad!feed-m
e.highwinds-media.com!news.highwinds-media.com!v55no534952qtk.0!news-out.google
.com!h3ni6219qtk.1!nntp.google.com!v55no534948qtk.0!postnews.google.com!glegrou
psg2000goo.googlegroups.com!not-for-mail
Newsgroups: pl.comp.programming
Date: Thu, 27 Dec 2018 14:53:31 -0800 (PST)
In-Reply-To: <6...@g...com>
Complaints-To: g...@g...com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=31.0.80.71;
posting-account=f7iIKQoAAAAkDKpUafc-4IXhmRAzdB5r
NNTP-Posting-Host: 31.0.80.71
References: <c...@g...com>
<f...@g...com>
<a...@g...com>
<7...@g...com>
<a...@g...com>
<6...@g...com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <0...@g...com>
Subject: Re: Jaki język polecić początkującemu? - komentarz do artykułu w
Programista 9/2018
From: g...@g...com
Injection-Date: Thu, 27 Dec 2018 22:53:32 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 6428
X-Received-Body-CRC: 1163697354
Xref: news-archive.icm.edu.pl pl.comp.programming:213082
[ ukryj nagłówki ]W dniu czwartek, 27 grudnia 2018 19:20:20 UTC+1 użytkownik Maciej Sobczak napisał:
> > > Jakich złych nawyków?
> >
> > Pewnie teraz nawet sobie nie jestem w stanie tego wszystkiego
> > uświadomić.
>
> Ale chociaż ze dwa przykłady, dla potomności.
Przykłady podałem w linku (i szczerze wątpię, żeby potomność
zechciała kiedykolwiek grzebać na tym śmietnisku).
> > Z rzeczy najbardziej oczywistych byłoby to używanie
> > operatora przypisania tam, gdzie nie jest to konieczne.
>
> Np. gdzie nie jest konieczne?
> I dlaczego to jest zły nawyk?
W większości miejsc nie jest konieczne.
A jest to zły nawyk, ponieważ - mówiąc skrótowo - zwiększa złożoność
środków analizy programów i tworzy "przypadkową złożoność".
Dokładniej jest to wyjaśnione tutaj:
https://mitpress.mit.edu/sites/default/files/sicp/fu
ll-text/book/book-Z-H-20.html#%_sec_3.1.3
ale wyjaśnienie odwołuje się do sekcji 1.1.5.
> > Inna rzecz, to bałaganiarskie podejście do projektowania interfejsów,
> > które wydaje się w środowiskach C++-owych na porządku dziennym.
>
> "Bałaganiarskie", "wydaje się", "w środowiskach"? Brzmi jak słaba propaganda.
To nie jest propaganda, więc nie może to być "słaba propaganda".
Nic nikomu nie sprzedaję.
Pytasz o moje doświadczenia, to Ci mówię.
Jeżeli Cię nie interesują albo masz sobie z nich szydzić,
to nie pytaj.
> > Dużo rzeczy opisałem tutaj:
> > https://www.quora.com/What-are-some-examples-of-bad-
code/answer/Panicz-Godek
>
> Nie czytałem całości, bo na początku artykułu okazało się, że znalazłeś gdzieś w
necie źle napisany kod i postanowiłeś go skrytykować. OK, takie artykuły są
potrzebne, ale nie odpowiadają na moje pytanie o *złe nawyki*. Coś, co jest cechą
języka. Czyli coś, co musi być złe, bo język narzuca to zło użytkownikowi. Niczego
takiego pobieżnie nie zauważyłem w tym artykule.
Nawyki nie są "cechą języka", tylko ludzi.
Języki mogą pomagać wykształcać w ludziach takie czy inne nawyki.
Więcej, wokół języków tworzą się kultury.
Artykuł, który podlinkowałem, to nie jest "po prostu randomowy
kod który znalazłem gdzieś w necie": to jest kod, którym ktoś
się podzielił, żeby inni mogli go czytać. I to jest kod pełen
anty-wzorców, których źródłem są właśnie złe nawyki. To jest kod,
który utrwala w ludziach złe nawyki. I, co znamienne, to jest kod,
który nie jest nietypowy dla programistów C++. Powiedziałbym
(na podstawie swoich doświadczeń), że jest bardzo typowy.
W przeciwnym razie nie zadawałbym sobie trudu, żeby o nim pisać.
Mogę też spróbować sformułować tę myśl inaczej:
postaraj się odpowiedzieć na pytanie, dlaczego
taki "zły kod" powstaje.
(Oczywiście, specyfika C++ odgrywa tutaj pewną istotną rolę:
w C++ trudno się programuje generycznie. Nie twierdzę, że się nie da,
ale w C++ łatwiej się operuje na konkretnych reprezentacjach, niż na
abstrakcyjnych generycznych interfejsach. Podczas pisania artykułu
szukałem różnych generycznych implementacji algorytmu A* w C++,
i żadna z nich nie była dobra. Z kolei w Haskellu jest odwrotnie:
tutaj łatwo napisać jedną ogólną interpretację i ukonkretniać ją
dla poszczególnych problemów, zaś pewne antywzorce, które są w C++
powszechne, takie jak przekazywanie informacji przez zmienne globalne,
są bardzo trudne do wyrażenia)
> Czyli na razie ten artykuł wpada u mnie w kategorię "C++ jest zły, bo znalazłem
kiepski kod w necie". To nie jest odpowiedź na moje pytanie.
Interesujące.
Mogę wskazać wiele quorowych odpowiedzi wyjaśniających, dlaczego
C++ jest zły, ale artykuł, który napisałem, w żadnym stopniu tego
nie dotyczy.
Następne wpisy z tego wątku
- 28.12.18 02:06 fir
- 28.12.18 23:07 Maciej Sobczak
- 29.12.18 07:13 s...@g...com
- 29.12.18 12:27 g...@g...com
- 29.12.18 12:51 g...@g...com
- 29.12.18 13:44 Roman Tyczka
- 29.12.18 14:01 Borneq
- 29.12.18 14:24 s...@g...com
- 29.12.18 19:42 g...@g...com
- 29.12.18 20:23 g...@g...com
- 30.12.18 00:21 Maciej Sobczak
- 30.12.18 13:06 g...@g...com
- 30.12.18 16:46 Mateusz Bogusz
- 30.12.18 18:08 s...@g...com
- 30.12.18 19:17 g...@g...com
Najnowsze wątki z tej grupy
- Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- ,,Polski przemysł jest w stanie agonalnym" - podkreślił dobitnie, wskazując na brak zamówień.
- Rewolucja w debugowaniu!!! SI analizuje zrzuty pamięci systemu M$ Windows!!!
- Brednie w wiki - hasło Dehomag
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- U nas propagują modę na SI, a w Chinach naukowcy SI po kolei umierają w wieku 40-50lat
- C++. Podróż Po Języku - komentarz
Najnowsze wątki
- 2025-07-13 Fałszywe alerty
- 2025-07-12 dlaczego gadacie z tym debilem
- 2025-07-13 Unia Europejska przygotowuje nowy podatek
- 2025-07-13 Unia Europejska przygotowuje nowy podatek
- 2025-07-12 Warszawa => PC Hardware Expert / Specjalista PC <=
- 2025-07-12 Warszawa => Account Manager - Usługi rekrutacyjne <=
- 2025-07-12 Warszawa => Administrator IT <=
- 2025-07-12 Warszawa => IT Administrator <=
- 2025-07-12 Warszawa => Asystent/tka ds. Administracji <=
- 2025-07-12 Warszawa => Specjalista/stka ds. Organizacji <=
- 2025-07-12 Warszawa => MENA New Business Manager <=
- 2025-07-12 Gdynia => Controlling systems Consultant <=
- 2025-07-12 Warszawa => Developer Microsoft Dynamics 365 Finance & Operations (D36
- 2025-07-12 Warszawa => Programista Microsoft Dynamics 365 Finance & Operations (D
- 2025-07-12 Warszawa => Dyrektor IT <=