-
X-Received: by 10.31.153.196 with SMTP id b187mr17722vke.14.1503346554321; Mon, 21
Aug 2017 13:15:54 -0700 (PDT)
X-Received: by 10.31.153.196 with SMTP id b187mr17722vke.14.1503346554321; Mon, 21
Aug 2017 13:15:54 -0700 (PDT)
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask
.pl!news.nask.org.pl!news.unit0.net!peer02.am4!peer.am4.highwinds-media.com!pee
r02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!e2no981941qta.1!ne
ws-out.google.com!i9ni41255qte.0!nntp.google.com!v29no2154765qtv.0!postnews.goo
gle.com!glegroupsg2000goo.googlegroups.com!not-for-mail
Newsgroups: pl.comp.programming
Date: Mon, 21 Aug 2017 13:15:53 -0700 (PDT)
In-Reply-To: <on75ke$g4u$1@node2.news.atman.pl>
Complaints-To: g...@g...com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=178.37.227.243;
posting-account=pyti1AoAAAAf66c003TUy10QAAnMWaKw
NNTP-Posting-Host: 178.37.227.243
References: <f...@g...com>
<1...@g...com>
<7...@g...com>
<b...@g...com>
<a...@n...v.pl>
<2...@g...com>
<a...@n...v.pl>
<on23a3$85s$1@node1.news.atman.pl>
<a...@n...v.pl>
<on75ke$g4u$1@node2.news.atman.pl>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <5...@g...com>
Subject: Re: Co jest nie tak z C++ (było: Rust)
From: s...@g...com
Injection-Date: Mon, 21 Aug 2017 20:15:54 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Body-CRC: 2682462515
X-Received-Bytes: 5419
Xref: news-archive.icm.edu.pl pl.comp.programming:211217
[ ukryj nagłówki ]Ja odnoszę wrażenie, że obecnie programiści nie za bardzo wiedzą jaki język jest na
prawdę najlepszy i myślą, że w zasadzie to najbardziej zależy od zastosowania. Bo w
większości wypadków nie ważne jest jak jest szybki - liczy się jak szybko da się coś
zakodować.
Ja natomiast mam inne zdanie na ten temat.
Moim zdaniem (porównując najpopularniejsze języki: Asembler, C, C++, D, Java, PHP,
Python, JavaScript - tyle poznałem i mi to wystarczy) okazuje się, że C++ jest
najlepszy. Oto powody:
1. Bez udziwnień obsługuje standardowe API obecnych systemów operacyjnych (czyli C).
D ma niby wsparcie dla funkcji C ale trzeba je zdeklarować w języku D.
2. Zapewnia wszystko to co język obiektowy powinien mieć - a nawet więcej niż wiele
innych języków, bo ma wielodziedziczenie i szablony. I to wszystko ma bez udziwnień -
są to cechy naturalne tego języka. Tak więc nie jest uczciwe porównywanie tego języka
do Asemblera. Tu bym porównał raczej Asemblera do łopaty, a C++ do koparki, a języki
skryptowe do mini koparek.
3. Kompiluje się do kodu maszynowego i przez to działa w sposób naturalny - jak to
przewiduje producent procesora. Jego pliki wykonywalne są najmniejsze z możliwych, są
prawie tak szybkie jak programy asemblerowe i działają samodzielnie (wymagając
jedynie bibliotek dll - jeśli tak zostały skompilowane - a często wymaga tego
licencja biblioteki). Nie wymaga żadnego interpretera, ani żadnych "maszyn
wirtualnych" które nic nie dają prawdziwemu programiście (bo gdy do C++ przechodzi
się z Asemblera to ręczne zarządzanie pamięcią jest czymś naturalnym i intuicyjnym -
ja w ten sposób się uczyłem, bo to wydawało mi się najsensowniejsze i nadal tak mi
się wydaje). Poza tym obecnie w C++ zarządzanie pamięcią często ogranicza się do
podania "rodzica" jako parametr konstruktora i on usuwa ten nowy obiekt (Qt tak jest
zrobione), lub używa się "sprytnych wskaźników" które usuną obiekt kiedy trzeba (to
implementuje biblioteka standardowa).
4. Umożliwia dobrą separację interfejsu (deklaracji) i implementacji. Są pliki *.h
które dobrze opisują zawartość plików *.cpp. To trzeba docenić, bo tego nie ma w
innych (wymienionych) językach z wyjątkiem C.
5. Jest przenośny. Umiejętnie pisane programy (w Qt ;] ) są bez problemowo przenośne.
A kod nieprzenośny daje się izolować (można wyłączać całe pliki *.cpp i kompilować
warunkowo). Ta przenośność teoretycznie nie jest obarczona jakimś spadkiem wydajności
czy innymi ukrytymi kosztami. Teoretycznie programy C++ są przenośne na każdą
platformę na którą jest odpowiednio aktualny kompilator C++. Jednak ważniejszym
ograniczeniem jest wsparcie danej platformy przez dostawców bibliotek.
6. C++ żyje własnym życiem bez dominacji jednej firmy która by narzucała innym jaki
ten język ma być. Nie kompatybilne zmiany się nie przyjmują, bo ludzie chcą mieć
wybór - np.: pod Windows kompilator VC++, a pod Linuxem g++...
Następne wpisy z tego wątku
- 21.08.17 23:49 g...@g...com
- 22.08.17 01:03 AK
- 22.08.17 08:43 Wojciech Muła
- 22.08.17 09:42 M.M.
- 22.08.17 10:21 g...@g...com
- 22.08.17 13:13 Maciej Sobczak
- 22.08.17 13:49 M.M.
- 22.08.17 14:16 g...@g...com
- 22.08.17 14:24 g...@g...com
- 22.08.17 14:54 Maciej Sobczak
- 22.08.17 15:12 g...@g...com
- 23.08.17 11:01 Maciej Sobczak
- 23.08.17 11:29 g...@g...com
- 23.08.17 12:14 Maciej Sobczak
- 23.08.17 13:42 g...@g...com
Najnowsze wątki z tej grupy
- Brednie w wiki - hasło Dehomag
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- U nas propagują modę na SI, a w Chinach naukowcy SI po kolei umierają w wieku 40-50lat
- C++. Podróż Po Języku - komentarz
- "Wuj dobra rada" z KDAB rozważa: Choosing the Right Programming Language for Your Embedded Linux Device
- Nowa ustawa o ochronie praw autorskich - opis problemu i szkic ustawy
- 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)
Najnowsze wątki
- 2025-05-09 Białystok => Senior Node.js Developer (Nest.js framework) <=
- 2025-05-09 Łódź => Programista Mainframe (z/OS, Assembler) <=
- 2025-05-09 Szczecin => Key Account Manager IT <=
- 2025-05-09 Warszawa => Starszy Programista C <=
- 2025-05-09 Żerniki => Dyspozytor Międzynarodowy <=
- 2025-05-09 zabezpieczenie płatności w biznesie
- 2025-05-09 Kto miał rację ?
- 2025-05-09 Jakie natynkowe podwójne gniazdo z bolcem (2P+PE)
- 2025-05-08 Z jakiego paragrafu podlega ochronie (resortowa) flaga UE w RP3? Bo to nie flaga Obcego PAŃSTWA [KK-137.2]
- 2025-05-08 Usługi, rozliczanie płatności z karty i blika
- 2025-05-08 Lublin => Delphi Programmer <=
- 2025-05-08 Lublin => Programista Delphi <=
- 2025-05-08 Łódź => Mainframe (z/OS, Assembler) Developer <=
- 2025-05-08 Warszawa => Senior Node.js Developer (doświadczenie z framework Nest.
- 2025-05-07 Wielki smog w Watykanie