Jsem asi už starej na to, abych Python ocenil. Z těch nemnoha setkání si pamatuju v jeho historii jakési kotrmelce "doprovodné infrastruktury" (package management), na které se mi trochu těžko zapomíná. Když vidím nějaký zajímavý open-source nástroj, který je distribuován ve formě pythonových zdrojáků, mám chuť
zde udeřit hlavou. Je to takový můj subjektivní podmíněný reflex, na základě předchozích zkušeností (bloatware, verzování, dependency hell, bugy v obskurních externích závislostech). Ale on si v dnešní době člověk moc nevybere. Dependency hell a jeho přenechávání uživatelům je spíš otázka vkusu autorů aplikace, než volby programovacího prostředí.
Ze vrozených charakterových vad bych zmínil "vymezení bloku v kódu hloubkou odsazení". Mám radši závorkovaté jazyky, kde si mohu odsazovat relativně podle svého, pokud mi "coding style" projektu dovolí.
Python je jazyk o něco vyšší úrovně než C/C++. Pro nativní systémové knihovny a syscally potřebuje mít kompletní "bindings". A pravda je, že jich má asi požehnaně.
Python se dneska běžně učí ve školách jako "jednoduchý" jazyk pro začátečníky - tam, kde se dřív učil Pascal.
Jsou lidi, kteří se ze zásady odmítají zajímat o to, jak věci fungují "pod kapotou" - těm musí Python vyhovovat lépe než C/C++.
C++ je potomkem starého dobrého C, což je takový "platformově nezávislý assembler". Pokud nechcete, v C++ už se nemusíte starat o detaily pointerů a alokací - moderní revize C++ se všemožně snaží, od těchto starých zvyků se navenek oprostit, programátora těchto starostí ušetřit. Osobně považuji za přínosné, že je přesto C++ k těmto "kořenům" dodnes relativně pevně přirostlé. Máte k dispzici plnou paletu nativních datových typů holého Céčka, operačního systému a v zásadě i hardwaru.
V jazyce C jsou napsané dnešní operační systémy. Takže různé novoty a okrajové vlastnosti kernelu, systémové standardní knihovny a dalších "nativních" knihoven můžete používat přímo, stačí includnout hlavičkový soubor. (Ve vyšších jazycích musíte čekat, až někdo napíše binding/wrapper/importní modul, nebo si ho napsat sám.)
C++ má oproti C spoustu výhod, snaží se odpoutat od nectností starého dobrého C, taky díky tomu lze narazit na "třecí plochy" v rovině kompatibility ABI mezi různými verzemi či značkami kompilátorů C++. Některé pekelné "vlastnosti" C++ (třeba přehlednost chybových hlášek kompilátoru ve složitých šablonách apod.) se postupem času zlepšují - blahodárným se ukázal vliv konkurence (po příchodu CLANGu zavál svěží vítr i ve vodách GCC/G++).
S čím Vám neporadím je "praktická použitelnost ekosystému" C++ vs. Python pro Machine Learning. Jestli třeba C++ představuje nějakou námahu navíc ve chvíli, kdy člověk potřebuje "odněkud rychle začít".
C++ není třeba studovat hned od začátku encyklopedicky. Pokročilejším vlastnostem budete přicházet na chuť postupně, jak budete potkávat složitější problémy. Budete narážet na přízraky minulosti - třeba doutnající válka "printf() vs. cout" není dodnes rozhodnuta. Pokud v C/C++ nějak začnete, nikdy se Vám to neztratí.
Dobře se bavte :-)