-
Data: 2018-12-29 12:27:25
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 piątek, 28 grudnia 2018 23:07:15 UTC+1 użytkownik Maciej Sobczak napisał:
> > Przykłady podałem w linku (i szczerze wątpię, żeby potomność
> > zechciała kiedykolwiek grzebać na tym śmietnisku).
>
> W linku był artykuł o kiepskim kodzie, który znalazłeś w necie. Krytyka języka z
tego żadna. Zwłaszcza w przypadku języka, który jest popularny a przez to używany
również przez tych, którzy uniwersalnie piszą kiepski kod.
Nic dziwnego, że "krytyka języka z tego żadna", bo to nie była
krytyka języka. Twoje pytanie, na ile je zrozumiałem, dotyczyło
złych nawyków.
> [operator przypisania]
>
> > 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
>
> Nie, nie zwiększa.
Owszem, zwiększa.
> Albo, jeśli faktycznie zwiększa, to jest to problem autorów takich narzędzi a nie
użytkowników języka. Jako użytkownik języka akceptuję ten układ. Ba - ja go nawet
akceptuję jako autor takiego narzędzia.
Otóż to właśnie jest problem użytkowników języka.
Proponuję, żebyś - zamiast zgadywać w ciemno o czym mówię
- spróbował przeczytać tę książkę, i dopiero wtedy się
wypowiedzieć.
To dobra książka, naprawdę. Może na początku wydawać się
"zbyt banalna", zwłaszcza dla kogoś, kto ma już doświadczenie
z programowaniem. Ale owo wrażenie szybko ustępuje.
> > Dokładniej jest to wyjaśnione tutaj:
> [link do sicp]
>
> Rozumiem - czyli w Scheme zwiększa. Trudno, jest to problem języka Scheme. I
autorów narzędzi analizy tego języka.
Jest to w takim samym stopniu "problem języka Scheme",
jak "problem języków" takich jak Erlang, Haskell, Java, C++,
Mathematica, Pascal i wielu innych.
> Ale dlaczego to ma być zły nawyk w C++ (czy w jakimkolwiek języku imperatywnym, bo
problem jest ogólny), to nadal nie rozumiem.
To przeczytaj książkę.
> > Pytasz o moje doświadczenia, to Ci mówię.
>
> Ale jeśli Twoje doświadczenia to kiepski kod znaleziony w necie, to można mieć też
dobre doświadczenia.
Moje doświadczenia są różne.
Swoją wiedzę o C++ czerpałem głównie z ksiązki Stroustrupa "Język C++"
oraz z książki Kernighana i Pike'a "Lekcja programowania".
Jeżeli idzie o inne źródła, z których się uczyłem, to opisałem to
kiedyś tutaj:
https://www.quora.com/What-is-something-you-wish-you
-knew-when-you-first-started-functional-programming/
answer/Panicz-Godek
> > Jeżeli Cię nie interesują albo masz sobie z nich szydzić,
> > to nie pytaj.
>
> Pytam, bo zostawiasz swoje posty w stanie niedopowiedzenia ("C++ tworzy złe nawyki,
bo tak"). Potem ktoś to przeczyta i pomyśli, że tak faktycznie jest. Tymczasem, w
przypadku niedopowiedzeń, jest pole do dyskusji i chcę je pokazać.
Nie napisałem że "C++ tworzy złe nawyki, bo tak". Napisałem
coś takiego:
"ja sam musiałem oduczać się różnych złych nawyków, których
nabrałem, ucząc się programowania poprzez takie języki
jak C czy C++"
Rzeczywiście, nie jest to super szczegółowo dopowiedziane,
ale jest tam wyraźnie powiedziane, że to JA nabrałem złych
nawyków, a nie że "C++ stworzył jakieś nawyki".
> > Nawyki nie są "cechą języka", tylko ludzi.
>
> Tak. Np. większosć ludzi ma złe nawyki żywieniowe.
> Ale to nie jest problem żywności.
Otyłość jest problemem w tzw. krajach rozwiniętych,
w których jest łatwy dostęp do słodyczy i śmieciowego
jedzenia. Jest to problem środowiskowy.
> > Języki mogą pomagać wykształcać w ludziach takie czy inne nawyki.
>
> Tak. Przykładowo, Ada jest lepsza od C++ pod względem wykształcania nawyków. Nie
zmienia to faktu, że widziałem bardzo dobry kod w C++ i bardzo zły w Adzie.
W porządku. W każdym języku można pisać kiepski kod.
> > Więcej, wokół języków tworzą się kultury.
>
> Tak. A w przypadku jezyków bardzo rozbudowanych i popularnych również subkultury.
Coś jak z żywieniem.
> Pytanie teraz, czy trzeba zmienić język, czy wystarczy znaleźć lepszą subkulturę,
żeby podnieść poziom. Na to pytanie nie odpowiemy pisząc po prostu, że C++ wyrabia
złe nawyki.
Zgoda.
> > 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ć.
>
> Czyli randomowy. Przecież w necie nie ma innych kodów, niż te, którymi ktoś się
podzielił, żeby inni mogli je czytać. Podobnie jest z filmami na YouTube.
Są też kody, którymi ktoś się podzielił, bo tego wymagała od niego
licencja. Albo kody, którymi ktoś się "podzielił", bo nie zabezpieczył
repozytorium. Albo kody, którymi ktoś się podzielił, bo serwis hostujący
jego backupy tego wymaga.
> > I to jest kod pełen
> > anty-wzorców, których źródłem są właśnie złe nawyki.
>
> Dobrze. To może lepiej pokazać dobre wzorce na dobrym kodzie?
Te również podałem.
> > 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.
>
> Nadal nie wiem, czy trzeba zmienić język, żeby pisać lepiej.
Też nie wiem. Ale jeżeli idzie o mnie, to nie umiem pisać
w C++ kodu tak, żeby być z niego zadowolonym.
> > Mogę też spróbować sformułować tę myśl inaczej:
> > postaraj się odpowiedzieć na pytanie, dlaczego
> > taki "zły kod" powstaje.
>
> To jest bardzo cenne pytanie. Nie wiem, czy znam odpowiedź.
> Może dlatego, że ludzie uczą się z przypadkowego kodu znalezionego w necie?
> I akurat kodu w C++ jest na tyle dużo, że łatwo znaleźć ten kiepski?
> Coś jak z filmami na YT.
> Myślę, że pewnym czynnikiem jest też fakt, że nasz gatunek traci powoli zdolność
czytania książek, zadowalając się przypadkowym "contentem z netu". To zjawisko akurat
dotyczy nie tylko programowania.
>
> Nadal nie wiemy, czy należy zmienić język, żeby pisać dobrze.
> Albo, wracając do pierwszego pytania, czy C++ jest (nie)dobry do nauki.
Wydaje mi się, że pytanie "czy C++ jest dobry do nauki"
to trochę mało. Raczej należałoby zapytać, czy dane materiały
dydaktyczne są dobre, albo czy określona metodologia nauczania
jest skuteczna.
Następne wpisy z tego wątku
- 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
- 31.12.18 08:18 Tomasz Kaczanowski
- 31.12.18 10:14 g...@g...com
- 02.01.19 09:41 Maciej Sobczak
- 02.01.19 09:48 Maciej Sobczak
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 <=