hledat

Začněte vyhledáváním výše

  1. Domů
  2. Články
  3. Nejmocnější programovací jazyk aneb C++ is NOT dead

Nej­moc­nější pro­gramovací jazyk aneb C++ is NOT dead

smitio

Je C++ mrtvý? Nebo ale­spoň sko­ro mrtvý? (Při jeho stáří by se neby­lo co div­it…) Ani omylem. Ale­spoň to vyplývá z TALK PAN­ELU SMI­TIA. Ti, kdo nejen s ním pracu­jí, si k němu řek­li své. I k tomu, v čem je dobrý a v čem naopak lehce prob­lem­at­ický. Také k jeho kom­pat­i­bil­itě, možnos­tem alter­na­tiv, budouc­nos­ti… Pusťte si diskuzi – a uvidíte sami.

Máme pro vás ty nejdůležitější postře­hy z diskuze.

Vše se točí kolem pro­gramovacího jazy­ka C++, jeho využití a vyh­líd­kách. Jakub Jůza z Roboau­ta, nezávis­lý pro­gramá­tor Pavel Šimer­da, Pavel Beran z Hon­ey­well a Pavel Geiger z Jablotronu se vyjadřu­jí k před­nos­tem a slabinám C++, jeho kompt­abil­itě, výh­ledům apod.

Co z jejich postře­hů plyne? Céčko“ stále považu­jí za rel­e­vant­ní a užitečné. Přestože už tu jsou nové jazyky jako Rust či Python. V herním průmys­lu, robo­t­ice, letectví či v oblasti cloudových služeb je C++ stále nejjistější vol­bou. (To zna­mená v pro­jek­tech, které vyžadu­jí max­imál­ní opti­mal­izaci a kon­trolu nad pamětí. Zkrát­ka tam, kde musíme rych­le a kval­it­ně zpra­co­v­at velké množství dat. Napřík­lad u audia moc jiných možnos­tí není.)

Jaké ben­e­fi­ty přináše­jí další verze C++17 a C++20?

Mod­erní funkce a zlepšení správy paměti. Doporučení disku­tu­jících expertů vybízí k pře­chodu na novější verze, pro­tože jejich přínosy pře­važu­jí nad pří­pad­ný­mi hnida­mi“. Upo­zorňu­jí ale, že to nejde tam, kde je daná verze spo­jená s nějak­ou cer­ti­fikací či nor­mou, které garan­tu­jí per­fek­t­ní funkčnost (např. v letectví). V oborech a sys­témech, kde není 100% funkčnost otázk­ou živ­ota a smr­ti apod., však mohou nové verze výz­nam­ně posílit konkurenceschopnost.

Jeví se jako per­spek­tivní kom­bi­nování C++ s jiný­mi jazyky?

Napřík­lad s Pythonem, který je častým kom­ple­mentem díky své flex­i­bil­itě a jednodu­chosti, určitě ano. Rust je zase mno­hý­mi vnímán jako možný nás­tupce C++ v určitých oblastech, a to zejmé­na pro své bezpečnos­t­ní prvky. Úplné nahrazení C++ Rustem nebo jiným jazykem je ovšem v součas­nos­ti nereál­né. C++ má totiž rozsáh­lé lega­cy pro­jek­ty a posky­tu­je kon­trolu a výkon, které jiné jazyky nenabízejí.

Kom­bi­nace Rus­tu a C++ výz­nam­ně posilu­je momen­tál­ní tlak na růst bezpečnos­ti jazyků. Je tak sil­ný, že se mu globál­ní komu­ni­ta pro­gramá­torů snaží vycházet vstříc a vyví­jet co nejbezpečnější řešení. I kvůli tomu je přes urči­tou krkolom­nost kom­bi­nování jazyků stále běžnější. C++ je obec­ně vnímán jako jazyk, k němuž se dá leda­cos při­fařit“. Para­doxně však jeho vývoj zpo­ma­lu­je právě jeho kom­plexnost. (Jakákoli změ­na se musí promít­nout takř­ka do všeho…)

Jak si C++ sto­jí z pohle­du vzdělávání a sdílení know-how?

I o tom se deba­to­va­lo. A jako obvyk­le zazně­lo, že za mod­erní­mi stan­dardy poněkud pokul­há­va­jí. Takže se není co div­it, že absol­ven­ti větši­nou neod­poví­da­jí potře­bám trhu. Naštěstí působení škol suplu­jí různé meet­up akce a komu­ni­ty (např. C++ Brno koope­ru­jící s Roboautem). Čili: Chceš-li se něco naučit, nauč se to sám, tam nebo s námi.

Proč je kom­bi­nace C++ s Pythonem dobrá?

Je efek­tivní z hlediska work­flow a soft­warové architek­tu­ry. Python pomůže k rych­le­jší iteraci a prá­ci, C++ si poradí s výkonově náročnější­mi úkoly.

Ros­toucí role Rus­tu jako spolupra­cov­ní­ka C++

Rust je užitečný nástroj ke zvýšení bezpečnos­ti paměti. Je stále běžnější kom­bi­no­vat C++ a Rust v jed­nom pro­jek­tu. Migrace starších kódů nap­saných v C++ do Rus­tu je ovšem zatím jis­tou výzvou. I tak ale tato ces­ta potvrzu­je součas­ný trend hledání bezpečnějších a zároveň co nejvýkon­nějších jazyků pro sys­témy náročné na paměť.

Mod­erní stan­dardy C++

Zkušenos­ti potvrzu­jí, že C++ je díky mod­erním funkcím, jako jsou chytré point­ery nebo move séman­tiky, výkon­nější a bezpečnější.
Což je argu­ment pro vývo­jáře, kteří se rozho­du­jí, zda investo­vat do aktu­al­izace nástro­jů a codebase.

Kom­plexi­ta a náročnost správy C++ projektů

Využíve­jte depen­den­cy man­age­ment, nástro­je pro con­tin­u­ous inte­gra­tion a stat­ické analýzy. Pomůžou vám udržo­vat a škálo­vat pro­jek­ty v jazyce, který může být někdy na údržbu složitý.

Závěr

C++ zůstává i přes konkuren­ci ve hře. Je to díky jeho výkon­nos­ti, bezpečnos­ti a možnos­tem. Jako všech­no na světě ale vyžadu­je ino­vace, které ho budou průběžně slaďo­vat s dobou a její­mi potře­ba­mi. Což se – jak je patrné z pan­elu – děje.

Mohlo by vás také zajímat

Nejmocnější programovací jazyk aneb C++ is NOT dead