-
Data: 2017-08-21 22:15:53
Temat: Re: Co jest nie tak z C++ (było: Rust)
Od: s...@g...com szukaj wiadomości tego autora
[ pokaż wszystkie 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
- Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- ,,Polski przemysł jest w stanie agonalnym" - podkreślił dobitnie, wskazując na brak zamówień.
- Rewolucja w debugowaniu!!! SI analizuje zrzuty pamięci systemu M$ Windows!!!
- 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
Najnowsze wątki
- 2025-07-07 Re: Ząbki się spaliły jak wiejskie, drewniane stodoły sprzed 50 lat
- 2025-07-06 Kup szybko nową ładowarkę do smartfona
- 2025-07-07 TV z Play (dawniej UPC) -- potrzebny dekoder?
- 2025-07-06 Kup szybko nową ładowarkę do smartfona
- 2025-07-07 mija rok jeżdzenia po lewej
- 2025-07-06 Elektryki jednak są NIEBEZPIECZNE
- 2025-07-08 Fajny film widziałem...
- 2025-07-07 Re: Ząbki się spaliły jak wiejskie, drewniane stodoły sprzed 50 lat
- 2025-07-06 Kup szybko nową ładowarkę do smartfona
- 2025-07-07 Gdańsk => Programista Kotlin <=
- 2025-07-07 Białystok => Mainframe (z/OS, Assembler) Developer <=
- 2025-07-07 Warszawa => Asystent ds. Sprzedaży i Rozwoju Klienta <=
- 2025-07-07 Warszawa => International Freight Forwarder <=
- 2025-07-07 Warszawa => Java Developer <=
- 2025-07-07 Białystok => Software Engineer .Net <=