DAVIDOWITCH: libc má některé historické funkce vedené jako "deprecated" - viz např.
man gets
...
BUGS
Never use gets(). Because it is impossible to tell without knowing the
data in advance how many characters gets() will read, and because
gets() will continue to store characters past the end of the buffer, it
is extremely dangerous to use. It has been used to break computer
security. Use fgets() instead.
Jde o to, že spoustu let staré učebnice Céčka mohou vypadat všelijak. Např. scanf("%s",str) (bez formátovacího znaku) je podobně zlé, sice asi tam lze uvést max. délku, ale logika velí, že scanf je inverzní k printf() a prostě začátečníků by se to nemělo dostat pod ruku.
Je fakt, že třeba přechod programátora uvažujícího v kategoriích událostma řízeného programování (či dokonce "vizuálního" programování) a třeba se znalostí Javascriptu/JQuery do Céčka si nějak vůbec neumím představit. Asi jediná cesta je když se někdo začne učit skriptovat pod unixem, tak pochopí ty základní koncepty (stdin, stdout, proces) - a potom logicky pochopí, že místo skriptu může chtít binárku, atd.... nedovedu si ale představit, že kdo programuje pro Windows, by nějak jednoduše ustoupil z úrovně abstrakcí jako události, objekty, apod. a rovnou přešel k Céčku.
Myslím, že když i tady polovina debaty je o tom, zda používat Céčko místo C++ je obskurní, tak s těmi začátečníky je to složité. Buď prostě někdo objekty má rád a nebo ne.