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-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.

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: