• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    UETOYOC++ (11+) aneb "Shadow of the Beast"
    VESELYSKEPTIK
    VESELYSKEPTIK --- ---
    RAGNAROK: Aby se dalo odpovědět na otázku s čím vystačíš, je potřeba vědět, co chceš dělat.
    C++ má spoustu problémů, určitě to není správný první jazyk na učení, na druhou stranu třída problémů pro které je to asi nejlepší volba je obrovská a ještě 20 let se s ním uživíš.
    UETOYO
    UETOYO --- ---
    _BENNY: Ne, není! C také není neobjektový assembler.
    UETOYO
    UETOYO --- ---
    RAGNAROK: Otázka by mohla také znít proč C++ a ne C? Genericita --> méně kódu a skoro bez dopadu na výkon. Někdo by taktéž řekl, že snad větší typová bezpečnost -- ale tady bych byl hodně opatrný -- jazyky jako Ada nebo Rust jsou na tom o mnoho lépe.
    UETOYO
    UETOYO --- ---
    Můžeš k tomu přistoupit různě. Např:

    Pokud se budeš učit C++, chtě nechtě si dostuduješ C -- (což je lingua franca) všude ti budou psát že C++ není C a že se to řeší jinak lépe (idiomaticky :) takže budeš pořád v kontaktu s tím, jak se to dělá v C a jak se to dělá v C++ a kde je možné (výhodné/nutné) použít jakou verzi.

    Budeš schopen používat knihovny které jsou v C++ napsané kvůli rychlosti a portabilitě (i když tady je na tom opravdu lépe C -- v C++ buď musíš používat stejný kompilátor, nebo použít extern C -- což tě trochu omezí)

    Zjistíš jak je to napytel být bez balíčkovacího systému (ok BiiCode už nějak funguje), jak se kompiluje a linkuje program pod různými OS (a budou ti vstávat vlasy na hlavě :)

    Jestli ti něco říká OOP, pak bych se C++ nebál, minimálně kvůli jedné knihovně a to je Qt.
    Navíc Python (JS) a C ++ (C) je dobrá kombinace pro jakýkoliv další posun -- třeba i k Java nebo C# či Rust
    _BENNY
    _BENNY --- ---
    RAGNAROK: C++ je proste takovy ukecany objektovy "assembler", pokud nemas rad detaily a veci pod kontrolou (za cenu nutnosti vstrebat mnohem vice ne nezbytne dulezitych informaci), pak si radeji hraj s Pythonem. coz taky neni mysleno jako troleni, je to proste tak.
    RAGNAROK
    RAGNAROK --- ---
    UETOYO:
    Ano, opravdu me to zajima. Zacal jsem se torchu ucit. Neni to urcite prvni clanek. Cetl jsem jsem spousty calnku pro a proti. Prave ze C++ vyzaduje k nauceni nemale usili a casu tak zvazuju jestli to za to stoji. Jestli si nevysatcim s R,Python, Lisp a Fortran. Neprisel jsem trolit ale opravdu pro radu.
    UETOYO
    UETOYO --- ---
    RAGNAROK: Že je C a C++ problematické je všeobecně známo -- C++ má navíc máslo na hlavě kvůli zpětné kompatibilitě s C. Zajímá tě to opravdu, nebo si našel první hatovací článek na C/C++?
    RAGNAROK
    RAGNAROK --- ---
    UETOYO
    UETOYO --- ---
    LangNext 2014 (C++, Rust, D, Go)
    https://www.youtube.com/watch?v=BBbv1ej0fFo
    UETOYO
    UETOYO --- ---
    V nedávné době byla vydána stabílní verze jazyka Rust. Přijde mi hodně zajímavý.
    The Rust Programming Language
    http://www.rust-lang.org/
    UETOYO
    UETOYO --- ---
    Dependency manager: https://www.biicode.com/
    UETOYO
    UETOYO --- ---
    CHRAMOSTAK: Já osobně se teď chystám na obhlídku této knihovny: https://www.threadingbuildingblocks.org/
    CHRAMOSTAK
    CHRAMOSTAK --- ---
    UETOYO: V zasade je, ale ROOT byl navrzen jeste nez se ustalila dnesni podoba STL, takze si nejaky veci, co se pozdeji staly standardem pro C++, vylozil po svem. Ja sel prave cestou uceni ROOT -> C++ a pak jsem se dost divil, ze nejakej kod bez problemu bezici v ROOTu nezkompiluju pres gcc (nebo fungoval jinak). Jde hlavne o pouzivani ROOT-specifickych trid jako TVector nebo TString, pomerne liberalni manipulaci s pointerama a nejaky dalsi veci. Kdyz se to nekdo bude ucit obracene (a bude se drzet toho, co uz zna - stl) tak tyhle problemy mit nejspis nebude.
    UETOYO
    UETOYO --- ---
    CHRAMOSTAK: Díky za reakci. Máš s tím nějaké zkušenosti? Já myslel, že ROOT je obecně jen sada C++ tříd/knihoven.
    CHRAMOSTAK
    CHRAMOSTAK --- ---
    UETOYO: Nasleduje nesouvisejici rant :) Pokud by tady nekdo nedejboze pojal napad ucit se ROOT (za ucelem napriklad osvojeni si silneho nastroje pro analyzu dat, ktery zaroven vyuziva C++), tak bych jenom pridal varovani, ze spis nez ROOT jako nadstavba C++ je spravne pohled na ROOT jako samostatnej jazyk, ktery koncepcne vychazi z C++, ale v nekterych vecech se lisi. Napriklad ROOT ma vlastni definici retezcu a vektoru, ktera nebude kompatibilni s vetsinou kodu v C++ nepouzivajici ROOT. Nastesti vyuzivani tehle matoucich definic je dobrovolne a daji se pouzivat C++ ekvivalenty (coz teda vrele doporucuju, pokud to jde).

    Tohle samozrejme nema nic spolecneho s vyuzitim clingu pro dynamickou kompilaci C++ kodu, to bude vsechno fungovat podle ocekavani.
    UETOYO
    UETOYO --- ---
    Interpret C++ využívající Clang kompilátor: https://root.cern.ch/drupal/content/cling
    + demo video https://www.youtube.com/watch?v=eoIuqLNvzFs ;
    UETOYO
    UETOYO --- ---
    Komukoliv koho zajímá funkcionální programování, doporučuji si pročíst tuto sérii článků. http://bartoszmilewski.com/2014/10/28/category-theory-for-programmers-the-preface/.
    UETOYO
    UETOYO --- ---
    _KRYSTOF_: Také doporučím JUCE; http://www.juce.com/ -- má to i zajímavé doplňky pro práci s projekty. Zajímavé je také video, kde autor provádí *real-time* kompilaci, https://www.youtube.com/watch?v=imkVkRg-geI a https://www.youtube.com/watch?v=Uj94TYQ6LN0
    _KRYSTOF_
    _KRYSTOF_ --- ---
    Není to sice čisté C++, spíše pak sada knihoven pro práci na A/V aplikacích, ale můžu rozhodně doporučit minimálně vyzkoušet Open Frameworks. Je to relativně sebevysvětlující multiplatformní vývojářský balík s *beginner friendly* komunitou.. http://www.openframeworks.cc/ , pro mě OF docela funguje jako dobrá motivace učit se samotné Cpp.
    UETOYO
    UETOYO --- ---
    Díky za reakci. To je si obecnější otázka. On Nyx je docela uzavřená komunita. A pokud mám odpovídat na otázky, pak třeba na Stackoverflow jsou odpovědi snadněji přístupné a dohledatelné .) Nečekám zde návaly turistů.
    Kliknutím sem můžete změnit nastavení reklam