A co kdyz vam selze sprava pameti - i to se stava, a neni to nic zas tak vyjmecneho, z duvodu, ktere zna jen on?
Co to znamená selže správa paměti? Tobě se jako v javě stalo, že ti něco alokátor odalokoval, když neměl???
Ano, v C#, a zel bohu, nebyla to pouze ma zkusennost - uz se o tom tu nekolikrat diskutovalo. Mimochodem, malo z tech co tak chvali GC a podobne ficurky uz zapomina dodat, ze jejich pritomnost v applikaci take neco stoji - Java je (byla a asi i bude) proste pomala, aplikace v C# jsou na tom sice rychlostne lepe, ale jsou to nenazrane molochy. A kdyz k tomu prictete des ve forme Mono, nebo .NET Freamworku... pak Vam z toho vyjde nadherny otesanek, zerouci pamet a diskovy prostor a co to vlastne vsechno dela, muzem jen hadat. No a nakonec muj oblibenec

Python, ma docela sklony k absolutne zahadnym chybam a nestabilitam...
V C/C++ pokud to nesprasi programator k nicemu takovemu by dojit nemelo. Jeste jednou - pokud to neprasi programator.
Jenže to je právě to o čem mluvíme. Pokud se člověk učí programovat, tak dělá chyby. Takže na učení je vhodnej jazyk, kterej mu jasně a srozumitelně řekne kde je chyba. To C není - např. chyba v mezích pole se projeví jen tím, že se přepíše hodnota nějaké jiné proměnné a program běží dál....
Ano takto zakerne se opravdu muze projevit pre/pod-teceni indexu pole. Ale nastesti existuji nastroje jako je valgrid, nebo Eletric Fence, ktere dokazou odchytavat problemy s dinamicky alokovanou pameti. A debuger je dneska snad standard (no a potom je potreba umet pocitat po parech a od 0 do n-1 )
Jinak myslim, ze prave C/C++ by melo programatory vest k tomu, aby to neprasili. Myslim, ze je ucit lepsi psat korektni programy (tedy hlidat si zdroje => kazde malloc() ma sve free( ), new - delete, open( ) - close( ), atd ..., kontrolovat navratove hodnoty, nebo indexy poli. Neni to zas tak tezke. Jen to chce trochu trpelivosti, pozornosti a asi i discipliny), a podobne veci jako je garbage Collector a pod pouzivat, az uz opravdu ma clovek tohle v "krvi" a opravdu dobre vi co dela. A toho lze docilit jen na zacatku. Pozdeji to jde hodne, hodne tezko...
Další nevýhoda C je v tom, že je to velmi výrazově bohatý jazyk. Což ale vede k těžko odhalitelným chybám, púamatuju si, jak jsem kdysi asi den ladil to, že místo
(*c)++ jsem napsal *c++. Skončilo to přepsáním CMOSKY a nefunkčním tátovým počítačem :-).
Me se odpalit kompl vlastnim dilkem nepostestilo (co vsak nebylo, muze byt

), ale i tak kdyz se clovek uci - dela chyby a chybama se zase zpetne uci - Dam krk na to, ze dneska jste o dost pozornejsi a opatrnejsi... me se zase povedlo prepsat si kompilator. Muj prvni program v C jsem pojmenoval bc.exe. Stary dosovsky Borland C++ se spoustel programem ... bc.exe
Jinak já netvrdím, že ty všechny výhody, které C má (že dělá jen to, co člověk chce) nejsou pro učení podstatné. IMHO každej programátor by měl někdy v takovém jazyku psát. Akorát nejsem přesvědčen, že (obzvlášť pro samostudium, kde Ti tu chybu nikdo nenajde) je vhodné s ním začínat.
Nicméně po nějaké průpravě s Delphi a Visual basicem to asi už jde....
Ja jsem na Basicu (na osmibitech a pozdeji v DOSU na MS QBasicu) kdysi zacinal. Mohu vam rici, ze prejit z nej na C a potom C++ bylo docela peklicko. Zrovna pochopit pointry, tridy a zvyknout si na typy, byla opravdu fuska a peknou chvili mi trvalo, nez jsem se naucil s tim zachazet. vytrval jsem - a vyplatilo se. Nelituji toho, ale asi bych si usetril docela dost trapeni, kdybych tehdy zacal rovnou s C...