-
Data: 2018-12-27 23:53:31
Temat: Re: Jaki język polecić początkującemu? - komentarz do artykułu w Programista 9/2018
Od: g...@g...com szukaj wiadomości tego autora
[ pokaż wszystkie 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
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
- Ada 2022 Language Reference Manual to be Published by Springer
Najnowsze wątki
- 2024-11-08 Warszawa => Head of International Freight Forwarding Department <=
- 2024-11-08 Warszawa => Key Account Manager <=
- 2024-11-08 Szczecin => Key Account Manager (ERP) <=
- 2024-11-08 Białystok => Full Stack web developer (obszar .Net Core, Angular6+) <
- 2024-11-08 Wrocław => Senior PHP Symfony Developer <=
- 2024-11-08 Warszawa => QA Engineer <=
- 2024-11-08 Warszawa => QA Inżynier <=
- 2024-11-08 Warszawa => Key Account Manager <=
- 2024-11-08 Gdańsk => Software .Net Developer <=
- 2024-11-08 Akumulator Hyundai
- 2024-11-08 Warszawa => Manager/Specialist e-commerce (B2C) <=
- 2024-11-08 Gdańsk => Specjalista ds. Sprzedaży <=
- 2024-11-08 Gdańsk => Kierownik Działu Spedycji Międzynarodowej <=
- 2024-11-08 znaj podstawe
- 2024-11-08 Chrzanów => Specjalista ds. public relations <=