Kniha o C či C++

Kniha o C či C++
« kdy: 21. 11. 2024, 14:53:13 »
Pročítám si Linux Programming Interfaces a chtěl bych se naučit víc C či C++ pro potřeby programování v Linuxu a rozumění open source nástrojům uvnitř, doporučíte nějakou literaturu? Ideálně dostupnou i jako PDF, něco komplexního. Umím skriptovat Python, Typescript, i nějaká Java, ale s C jsem dělal už před nějakým časem a chtěl bych to pochopit.


Re:Kniha o C či C++
« Odpověď #1 kdy: 21. 11. 2024, 17:07:46 »
https://www.bugs.frozent.pl/Effective%20Modern%20C++%20(%20PDFDrive.com%20).pdf

ale knizek je tuna.

pokud jsi videl c/c++ uz davno, tak je mozne, ze jsi jeste nevidel nove c++11 a vyssi, tam pribylo docela dost
novych neci jako jsou leve a prave reference, operace move, chytre pointery.

takze jednodussi bude se spis podivat na c, kde se clovek sice musi taky naucit pointery a veci okolo, ale je v tom
mensi hokej nez v c++.

pripadne je jesta zajimavy jazyk golang.

Re:Kniha o C či C++
« Odpověď #2 kdy: Dnes v 00:29:43 »
Knihy mého mládí jsou dnes do jisté míry zastaralé. Mám na ně ale hezké vzpomínky :-)

Třeba Beginning Linux Programming. Nakousne spoustu témat, ale tak akorát, aby se člověk zakousl a dál už študoval po svém / jinde. Třeba kapitola o libpthread (vláknové synchronizaci) je ve skutečnosti velice "nekompletní" - tehdy mi dost pomohl článek na Linuxových novinách (linux.cz) který dnes už nenajdu ani skrz wayback machine... škoda. Ta kniha má kapitoly o všem možném, doporučuji.

Další byla Thinking in C++ od Bruce Eckela. Bejvala zadarmo na mindview.com, dneska se válí kopie různě po webu. Volume 1 základy, Volume 2 "pokročilá" témata. Volume 2 jsem nedočetl - přišlo mi, že jsem u konce s dechem buď já, nebo možná autor :-) Hlavně to co byla před 25 lety pokročilá témata, to je dnes buď dětská hra, nebo bizardní slepá vývojová větev. Navíc mi ve zpětném ohledu připadá, že ta kniha byla sice čtivá, ale ne úplně systematická... A některá tehdejší dogmata se rozplynula jak pára nad hrncem apod. Některé věci se změnily, hlavně do standardní knihovny přibývají užitečné objekty, které si dřív člověk musel obstarat po svém. V dnešní době dost užitečný zdroj aktuálních informací je cppreference.com (online referenční příručka standardního C++, prakticky každé heslo končí examplem).

Ohledně posixových vláken a synchronizačních primitiv mám pocit, že se nedávno dostala prakticky nastojato do standardu C++, akorát už se jim neříká libpthread :-) Je to maličko komické ve světě Windows, kde komunikace mezi vlákny vypadá v rámci WinAPI nativně dost jinak.

A nakonec, čtivé bylo už evangelium podle Briana a Dennise: The C Programming Language (Kernighan and Ritchie). I tady se za těch cca 40 let tu a tam něco změnilo, ale ne natolik, aby starému textu nebylo rozumět :-)

Re:Kniha o C či C++
« Odpověď #3 kdy: Dnes v 07:06:44 »
Z kníh by som začal asi priamo u zdroja: https://www.stroustrup.com/tour3.html, je to taký prehľad, toto vydanie som nečítal, ale to prvé bolo predstavením toho, čo sa volá moderné C++ a ukazovalo písanie kódu jednoduchším spôsobom. Myslím, že táto bude mať ešte viac zjednodušení.

Vývoj C++ ako jazyka a knižníc ide v smere hľadania lepších abstrakcií, ktoré nahradzujú tie, ktoré sú považované za nebezpečné alebo náročné na pochopenie, dokonca tie pôvodné techniky už nie sú odporúčané na bežné písanie, skôr sa od nich systematicky odradzuje.

Ďalší smer vo vývoji jazykov všeobecne je, že k sebe konvergujú, takže aj do C++ preniká funkcionálne programovanie, aj keď to je tam v rôznych úrovniach a do istej miery už odvtedy, čo Stepanov uviedol STL a odvtedy, čo, už neviem kto, šokoval ostatných, keď zistil, že šablóny sú vlastne samostatný funkcionálny jazyk.

Potom ešte existujú oficiálne odporúčania ako písať kód, sú spravované kľúčovými členmi normalizačnej komisie (C++ má normu v rámci ISO), to je na https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines. Je to skvelý zdroj Informácií organizovaný podľa jednotlivých tém.

A potom ešte stojí za to sledovať konferencie, najznámejšia je tu: https://m.youtube.com/@CppCon.

Tu je napríklad sumarizácia toho kam C++ smeruje a aké rozšírenia možností a zjednodušenia práce to prinesie: https://m.youtube.com/watch?v=FNi1-x4pojs