eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingJaki język polecić początkującemu? - komentarz do artykułu w Programista 9/2018 › Re: Jaki język polecić początkującemu? - komentarz do artykułu w Programista 9/2018
  • 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.

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: