C je z klasických jazyků asi nejjednodušší, naučí ho programátorsky myslet, tvořit algoritmy atd.
S C som zacinal nie je to najhorsie.
C je jednoduchy jazyk so zaujimavymi a pritom uplne jednoduchymi featurami (pointery na funkcie), ale pre vyuku ma svoje nevyhody. Napriklad si moze clovek prepisat cast svojej pamate (pole[-1]) a program potom nahodne pada, niekedy iba bez debuggeru, co je pre zaciatocnika menej prinosne ako ArrayOutOfBoundsException alebo iny okamzity pad.
Alebo sa neda spravit vseobecne volanie callbacku s typovo bezpecnym parametrom (fuj void *).
Vlakna su problematicke, pthreads sa tvaria ako kniznica, ale kompilator o nich musi vediet a musi sa im prisposobovat, to dotvara nedefinovany memory model. Iny paralelizmus je problematicky.
C nevedie k objektovemu a ani funkcionalnemu programovaniu.
Umoznuje robit chyby ako tato, co sa chvilu tvari, ze to funguje:
int * ptr_one() {
int a = 1;
...
int *b = &a;
...
return b;
}
C++, C# i Javu už pak zvládne v pohodě, když bude chtít. Nicméně C mu dá celkem nenásilně pocítit i funkci HW, což není do začátku úplně špatný.
Pre mna zvyknuteho z pekneho C bolo a stale je C++ a vacsina programov v nom splacany chaos. Podobne pekna ako C bola az na mensie vynimky aj Java, od verzie 8 sa zacala C#-ovatiet. Co nie je explicitne zle, akurat nie je vidiet jasna koncepcia.
C# je podla mna dost odlisny na to, aby sa nedal zvladnut tak v pohode.