-
X-Received: by 2002:a37:9547:: with SMTP id x68mr456564qkd.2.1546084283792; Sat, 29
Dec 2018 03:51:23 -0800 (PST)
X-Received: by 2002:a37:9547:: with SMTP id x68mr456564qkd.2.1546084283792; Sat, 29
Dec 2018 03:51:23 -0800 (PST)
Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit
0.net!weretis.net!feeder6.news.weretis.net!feeder.usenetexpress.com!feeder-in1.
iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!v55no32
55986qtk.0!news-out.google.com!h3ni7637qtk.1!nntp.google.com!v55no3255979qtk.0!
postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
Newsgroups: pl.comp.programming
Date: Sat, 29 Dec 2018 03:51:23 -0800 (PST)
In-Reply-To: <5...@g...com>
Complaints-To: g...@g...com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=31.0.80.166;
posting-account=f7iIKQoAAAAkDKpUafc-4IXhmRAzdB5r
NNTP-Posting-Host: 31.0.80.166
References: <c...@g...com>
<f...@g...com>
<a...@g...com>
<7...@g...com>
<a...@g...com>
<6...@g...com>
<0...@g...com>
<a...@g...com>
<5...@g...com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <d...@g...com>
Subject: Re: Jaki język polecić początkującemu? - komentarz do artykułu w
Programista 9/2018
From: g...@g...com
Injection-Date: Sat, 29 Dec 2018 11:51:23 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Lines: 148
Xref: news-archive.icm.edu.pl pl.comp.programming:213087
[ ukryj nagłówki ]W dniu sobota, 29 grudnia 2018 07:13:22 UTC+1 użytkownik s...@g...com napisał:
> > > 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?
>
> Wzorce i antywzorce nie zależą od języka programowania! Podobnie jak wspomniane
nawyki.
Pewne języki stawiają barierę na wyrażanie pewnych rzeczy, i coś,
co w jednych językach może być wyrażone (nazwane) bezpośrednio, w innych
musi pozostać "wzorcem".
> > 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.
>
> Jest dobry:
> + jest prawdziwy (w nim się pisze wszelkie poważne systemy - nawet oprogramowanie
do F-35 napisano w C++ rzucając wcześniej stosowaną Adę np. w F-22 i Euro Fighter
2000)
Nawet jeśli tak jest, niekoniecznie czyni to go dobrym do nauki.
> + jest kompatybilny (z najważniejszymi językami: Asemblerem i C, a do pozostałych
języków można w nim tworzyć rozszerzenia)
Prawie każdy używany współcześnie język umożliwia wywoływanie natywnych
funkcji
> + produkuje bardzo szybki, natywny kod (nie wymaga żadnej wirtualnej maszyny czy
interpretera)
> + jest dobrze rozwinięty i nadal rozwijany
> + jest dobrze zrozumiany i jest sprawdzony
Oto przykład na to, jak dobrze jest zrozumiany:
http://flyingfrogblog.blogspot.com/2013/10/herb-sutt
ers-favorite-c-10-liner.html
> + jest wieloplatformowy (jeśli się użyje odpowiednich bibliotek: Stl, Boost, Sdl,
OpenGl czy Qt i jeśli się umiejętnie wydziela wywołania nieprzenośnych funkcji)
Tzn. jest wieloplatformowy, jeśli na każdą platformę pisze się osobny kod?
> + jest obiektowy
A dlaczego to jest dobre?
> + wspiera wielodziedziczenie
A dlaczego to jest dobre?
I czy jesteś w stanie podać przykład jakiegoś problemu,
dla którego wielodziedziczenie byłoby dobrym (albo jedynym sensownym)
rozwiązaniem?
Robiłem ostatnio rozeznanie w temacie, i trafiłem na książkę
"Object Oriented Programming. An evolutionary approach", gdzie
jako przykład podano, że języki z wielodziedziczeniem pozwalają
reprezentować "zabawkową ciężarówkę" jednocześnie jako rodzaj
zabawki, jak i rodzaj ciężarówki.
Firmy logistyczne będą zachwycone.
> + ma możliwość przeładowania operatorów
A dlaczego to jest dobre?
> + ma wsparcie dla metaprogramowania (szablony)
C również ma "wsparcie dla metaprogramowania" (preprocesor).
Są języki, które mają naprawdę o wiele lepsze wsparcie dla
metaprogramowania (Lisp, OCaml, Haskell)
> + wspiera wyjątki (jako sposób obsługi błędów)
A dlaczego to jest dobre?
> + wspiera wiele stylów programowania i wiele paradygmatów programowania
Podobnie jak wiele innych języków.
> + darmowy
Podobnie jak wiele innych języków.
> + ma bardzo dobre BIBLIOTEKI DO WSZYSTKIEGO na liberalnych licencjach
Podobnie jak wiele innych języków.
> + jest przyjazny dla ucznia (można go poznawać stopniowo - w miarę potrzeb)
A znasz jakiś język, którego nie można poznawać stopniowo?
> + jest wiele podręczników (z Opus Magnum Jerzego Grębosza na czele)
Nie czytałem, to się nie wypowiem.
Ale "Język C++" Stroustrupa to w moim odczuciu naprawdę kiepska książka.
Zresztą nawet Scott Meyers, autor książek z serii "Effective C++",
już sobie odpuścił.
https://www.youtube.com/watch?v=KAWA1DuvCnQ&feature=
youtu.be
> + jest standardem w konkursach dla programistów
W jakich konkursach?
Wszystkie, z którymi ja miałem styczność, dawały uczestnikom dużą swobodę
w wyborze języka.
> Wady:
> - koszmarne komunikaty linkera (Gnu g++)
> - koszmarne komunikaty kompilatora gdy coś nie gra w użytych szablonach (Gnu g++)
> - słaby debuger Gnu gdb lub jego interfejs w Qt Creator (w porównaniu do debugera
Borlanda w C++ Builder).
To akurat nie brzmi jak wada C++, tylko jakiegoś tam narzędzia.
> - ręczne zarządzanie pamięcią
Jak to? A unique_ptr i shared_ptr? A BDW GC?
> - brak konsekwencji w stosowaniu nazewnictwa między bibliotekami (np. w Stl i Qt)
(do przeżycia)
Również brak konsekwencji w stosowaniu nazewnictwa w obrębie biblioteki
(STL, zob. prezentację Meyersa).
Następne wpisy z tego wątku
- 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
- 02.01.19 10:17 Maciej Sobczak
Najnowsze wątki z tej grupy
- 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??
- 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
Najnowsze wątki
- 2024-12-11 SEP 1 kV E
- 2024-12-11 DNS restrictions are on
- 2024-12-11 wielkie bu
- 2024-12-11 Białystok => Inżynier bezpieczeństwa aplikacji <=
- 2024-12-11 Aku LiPo źródło dostaw - ktoś poleci ?
- 2024-12-11 Warszawa => Specjalista Bezpieczeństwa Informacji <=
- 2024-12-11 Wrocław => Application Security Engineer <=
- 2024-12-11 Warszawa => Analyst in the Trade Development department (experience wi
- 2024-12-11 Lublin => Programista Delphi <=
- 2024-12-11 Motodziennik #305 Nowy ELEKTRYK za 350 złotych miesięcznie? Kreatywne kredytowanie problemów
- 2024-12-11 Warszawa => Spedytor Międzynarodowy <=
- 2024-12-11 Katowice => Key Account Manager (ERP) <=
- 2024-12-11 Katowice => Regionalny Kierownik Sprzedaży (OZE) <=
- 2024-12-11 Idzie zima...czyli zaczynamy TETRIS :)
- 2024-12-11 Warszawa => Analityk w dziale Trade Development (doświadczenie z Powe