-
Data: 2018-12-28 02:06:48
Temat: Re: Jaki język polecić początkującemu? - komentarz do artykułu w Programista 9/2018
Od: fir <p...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]W dniu czwartek, 27 grudnia 2018 23:53:33 UTC+1 użytkownik g...@g...com
napisał:
> 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.
nie wiem czy w postach wyzej to napisalem (jesli nie to mialem wspomniec ale widac
nie napisalem) ale wg pewnych moich przemyslen (wykonanych calkiem w sumie niedawno)
doszedlem do dosyc prostego wniosku ze w programowaniu jezyki sa porzebne co najmniej
dwa: jest potrzebny taki jezyk jak c,. tj jezyk ktory pozwali dobrze oszczednie
zarzadzac bajtami i cyklami oraz jest tez potrzeby inny jezyk ktory pozwala dobrze
(choc tutaj co znaczy dobrze byc moze nie jest dla mnie tak wyraznie jasne) zarzadzac
czyms innym niz bajty i cykle (bo w pewnych zastosowaniech programistycznych, np
jezyk skryptowy w shellu nie potrzebujesz zarzadzania bajtami i cyklami)
o ile te ustalenia sa prawdziwe (a arczej sa choc jak mowie sa dosyc fragmentaryczne
i tak naprawde nie bardzo wiem w czym ten drugi jezyk powinien byc tak naprawde
dobry) to nie mozna krytykowac takich jezykow jak c realizujacych to zarzadzanie
bajtami i cyklami jako ogolnie niedobrych - sa one w swojej dziedzinie (dosyc
szerokiej) najlepsze i nie ma co do tego raczej kwestii (zieaw)
co do tej drugiej dziedziny albo dziedzin to juz inna kwestia, jak powinien wygladac
jezyk lub jak powinny wygladac jezyki w tej dziedzinie gdzie cykle i bajty sie liczą
ale nie az tak to (ciagle) nie wiem
Następne wpisy z tego wątku
- 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
- 31.12.18 08:18 Tomasz Kaczanowski
Najnowsze wątki z tej grupy
- Alg. kompresji LZW
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- 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??
Najnowsze wątki
- 2025-02-10 Mińsk Mazowiecki => Team Lead / Tribe Lead FrontEnd <=
- 2025-02-10 Białystok => System Architect (Java background) <=
- 2025-02-10 Współczesne mierniki zniekształceń nieliniowych THD audio, produkują jakieś?
- 2025-02-10 Szczecin => Senior Field Sales (system ERP) <=
- 2025-02-10 Gliwice => Business Development Manager - Dział Sieci i Bezpieczeńst
- 2025-02-10 Chrzanów => Specjalista ds. public relations <=
- 2025-02-10 Chrzanów => NodeJS Developer <=
- 2025-02-10 Warszawa => JavaScript / Node / Fullstack Developer <=
- 2025-02-10 Gliwice => Ekspert IT (obszar systemów sieciowych) <=
- 2025-02-10 Lublin => Programista Delphi <=
- 2025-02-10 Mińsk Mazowiecki => Area Sales Manager OZE <=
- 2025-02-10 Wrocław => Konsultant wdrożeniowy Comarch XL/Optima (Księgowość i
- 2025-02-10 Dęblin => Node.js / Fullstack Developer <=
- 2025-02-10 Kraków => iOS Developer (Swift experience) <=
- 2025-02-10 Karząca ręka samorządu adwokackiego wygrała w NSA - wieszanie (portretów) ue-posłów ze "współczesnej Targowicy" (2017)