C++ old school vs. nové normy C++11 a vyšší rubrika: Programování: C/C++
Před nedávnem jsem tu položil otázku na přechod od C++ k Javě nebo C# a děkuji všem za dobré názory. Zaujala mě tam jedna věc, která mi nasadila jiného brouka do hlavy.
diverman : @uetoyo: Ono je jedna věc podívat se, co je nového a druhá věc se na to přeorientovat a získat nové návyky. Osobně bych zaměstnal raději juniora, který dělá v C++11, než zamrzlého seniora, co nikdy neviděl smart pointer a RAII
Jsem patrně ten zamrzlý senior, co v praxi nedělal nic se smart pointery a RAII. Podíval jsem se tedy aspoň co to je...
V C++ jsem pracoval vždy ve firmách na starších projektech, které vznikly daleko před rokem 2011. Nebyla vůle a často ani překladač neumožňoval používat C++11 a vyšší. Prostě historické důvody.
Mám nyní dvě otázky.
-
Pokud se vyvíjí nějaký projekt od roku cca 2000 a v roce 2011 vznikne nová norma na C++, jste pro to, začít používat nový kompilátor a nové vlastnosti toho jazyka a začít to celé přepisovat nebo aspoň nové věci psát v C++11? Nebude vám vadit, že se budou míchat staré a nové přístupy v kódu / projektu? Nebo je lepší nechat projekt konzistentní a pokračovat old school C++ stylem.
- Kolik procent pracovních nabídek na trhu (na C++) v současné době je podle vás na old school C++ a kolik na C++11 a vyšší?
Jak jsem pochopil, tak někdo by raději zaměstnal juniora se znalostí 11-ky, na druhé straně je plno starších projektů, kde je nutnost znalostí starého dobrého C++ a kde je nutné psát např. Object* obj = new Object(); Jsou to i projekty 20 let staré (Honeywell), plno projektů na linuxu nebo projekty, kde se používá knihovna wxWidgets, která není kompatibilní s C++11. Pak je otázka, jaký C++ vývojář je lepší. Ten, který umí staré C++ a neumí nové nebo obráceně? Samozřejmě ideální je umět oboje natolik, aby se to člověku vůbec nepletlo a mohl přecházet z jednoho projektu na druhý. Ale kolik takových programátorů C++ existuje. Já nevím o žádném.
-
ak to projekt dovoluje, tak vzdy pouzivame najnovsi kompilator. Stary legacy kod sa pomaly refaktoringom prepisuje do novsieho standardu (C++11/14). Nie naraz, ale postupne. Nova funkcionalita sa samozrejme pise s features pre C++11/14/17. Uz len pouzitim napr. novej verzie STL a prekompilovanim stareho kodu sa ziska lepsi performance (move semantika, perferct forwarding...), lepsia optimalizacia kodu..., lepsia podpora pre template-y.
Takze ano, refactoring robime. - dostavam relativne dost pracovnych ponuka na C++ programatora. V tom problem nevidim. Programator je ako lekar, stale sa treba vzdelavat. Ja osobne sledujem trendy v C++, sledujem comitee a ich drafty, obcas nejaka konferencia.
Podla mna, tiez by som zamestnal juniora, ktory vie co je to smart pointer, move semantika. ma prehlad v novych standardoch. V praci mame ludi, ktory zakapali na "starom" C++ a teraz maju problemy, nevedia ako pouzit unique_ptr, co mi lezie na nervy ak niekto pride a spyta sa na to.
to sa tyka len C++ ako jazyka. Okrem jazyka treba mat aj nejake vedomosti aj ohladom design patterns, nejake tie kniznice (za zaklad povazujem aspon orientaciu v boost).
Pro zobrazení všech 5 odpovědí se prosím přihlaste:
Nebo se přihlaste jménem a heslem:
Komentáře