-
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
- 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
- Press Release - AEiC 2023, Ada-Europe Reliable Softw. Technol.
- Ada-Europe - AEiC 2023 early registration deadline approaching
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2023
- Ile cykli zajmuje mnożenie liczb 64-bitowych?
Najnowsze wątki
- 2024-05-18 Warszawa => Software .Net Developer <=
- 2024-05-18 Warszawa => Mid/Senior QA Engineer <=
- 2024-05-18 Ulm => Solution Architect (sichere Kommunikation und IoT-Loesungen <=
- 2024-05-18 Katowice => Head of Virtualization Platform Management and Operating S
- 2024-05-18 Warszawa => SAP WM Consultant / Execution <=
- 2024-05-18 Wrocław => Consultant/Implementer Comarch ERP XL <=
- 2024-05-18 Gdańsk => Head of International Freight Forwarding Department <=
- 2024-05-18 Warszawa => Account Manager (Recruitment Services) <=
- 2024-05-18 Łódź => Salesperson - CRM Systems <=
- 2024-05-18 Łódź => Handlowiec - Systemy CRM <=
- 2024-05-17 ZŁOMNIK o pracy w TVN TURBO, nowych przepisach i współczesnej motoryzacji. Turbo Taryfa!
- 2024-05-17 Białystok => DevOps Engineer Conexa First (Contractor) <=
- 2024-05-17 Warszawa => Starszy inżynier oprogramowania (Rust) <=
- 2024-05-17 Zabrze => Junior HelpDesk <=
- 2024-05-17 Bieruń => Administrator i wdrożeniowiec Lotus Notes/Domino <=