Vždycky to jde jednodušeji, otázkou je, co je jednodušší, jak definuješ jednodušší.
Fascinují mě lidé, kteří hned sahají po jiném jazyce, aniž by se vůbec zajímali, jaký výstup z toho jejich jazyka vylejzá. Jasně, pokud mne nezajímá optimalizace, vždycky to nějak zbastlím.
Stejně jako když se v cizině domluvím cizím jazykem, rukama nohama, oni mě pochopí. Ale jazykový znalec ze mě nebude a nebudu schopen v tom jazyce napsat třeba úžasnou báseň
A o tom to je. Mne skutečně záleží, jaký je výstup, jestli překladač pochopí co po něm chci. A také si chci ušetřit budoucí práci. Šmarjá, mám tu jazyk, kterým mohu programovat kompilátor, doslova ho mohu naučit generovat kód který by normálně negeneroval. Tady ho například vynutím, aby připravil všechny varianty určitého kódu, to kdybych měl dělat ručně, tak se z toho asi zblázním - a nebo bych musel používat externí generátory kódu - nikdy jsem nebyl jejich kamarád, dělají v tom bordel. Který jazyk tohle umí.
Můžeme sahat po nějakých JIT jazycích, kde to tedy nějak funguje, ale tam často se lze jen domnívat, jak výsledek dopadne, co jak formulovat, aby překladač na cílovém stroji generoval co nejoptimálnější kód danému algoritmu pro daný případ.
Já odpovídám tedy za sebe: jednodušeji myšleno nějak čitelněji/stručněji. Mne občas na C++ překvapuje, jak se s nějakým novým konstruktem dají věci hodně zjednodušit. Tohle je fakt těžké na udržení pozornosti a teď samozřejmě nemám čas procházet řádek po řádku. Ale tím nějak nezpochybňuji řešení nebo dokonce jazyk.
"Mne skutečně záleží, jaký je výstup, jestli překladač pochopí co po něm chci." Mne právě zajímá, jestli to řešení pochopím i já jako člověk. Několikrát se mi stalo, že jsem postupně kompilátor donutil k tomu, že rozuměl tomu co potřebuji poté, co jsem si zas něco "nového" načetl z C++11/14/17/20, ale pak sem se k tomu vrátil po měsících a tápal jsem viz různé varianty `enable_if` atd atp. C++ opravdu ve mne někdy zanechává pocit, že si vůbec nejsem jistý, jestli to co píšu, je ten nejlepší způsob jak to psát.
Naštěstí enable_if odzvonilo zavedením konceptů.
Jistě i tenhle jazyk se vyvíjí a pracovat vždycky s tou nejčerstvější verzí znamená maličko problémy. Tak jako se vším následující verze může opravovat chyby v předchozí verzi. Já nedávno přešel na C++20 aktuálně je C++23, a čekám na C++26, abych přešel na C++23.
A neboj, kód by měl být vždycky zpětně kompatibilní. Jen je dobré se seznámit s novými nástroji, jako správný kovář, co nezůstal v minulosti.
Osobně se domnívám, že C++20 udělalo významný krok s konceptama a s možnostmi co lze dělat v constexpr. K tomu přidejme korutiny. Hodně věcí jsem přepsal do C++20 a to i koncepčně, tedy kdy přímo využívám nové featury a nejde jen o tweaky, ale často se mění i způsob práce.
Mám v plánu ještě další články
Asi mi uniká, co že mi to vlastně vyčítáš?
Já jsem C++ opustil, protože nesplňuje moje požadavky. Mezi mé požadavky nepatří potřeba vědět co přesně vylejzá. (To, aby pochopil co přesně chci, to ano.) Nemám k C++ srdeční vztah. Nepotřebuju v něm excelovat. Chci excelovat v produktu. Pokud mi jiný jazyk umožní napsat stejně rychlý, paměťově nenáročný, bezpečnější produkt s čitelnějším kódem, nemám problém C++ opustit.
Ale nechce se mi tady bavit o jiných jazycích, když je to příspěvek o C++.
Nic nevyčítam, jen konstatuju. Někdo se holt spokojí s tím, že to "nějak zbastlí" a je to. Super, i s tím se dá žít.
Je asi rozdíl, pokud mám eshop, kam mi chodí pět zákazníku za hodinu a pokud mám herní server, kde mi přijde tisíce požadavků za sekundu.
Jako autor knihoven mě často zajímá, co z toho vyleze, aby moje knihovna nevytvářela zbytečnou brzdu.
Intenzivně se zabývám programováním zejména v jazyce C++. Vyvíjím vlastní knihovny, vzory, techniky, používám šablony, to vše proto, aby se mi usnadnil život při návrhu aplikací. Pracoval jsem jako programátor ve společnosti Seznam.cz. Nyní jsem se usadil v jednom startupu, kde vyvíjím serverové komponenty a informační systémy v C++
Přečteno 51 345×
Přečteno 24 120×
Přečteno 22 941×
Přečteno 21 190×
Přečteno 17 886×