že je něco nejrozšířenější (v nějaké oblasti) neznamená, že je to nejlepší (pro jakýkoliv účel)
Obecná pravda. Ale jak to souvisí s naší diskuzí? OOP je v současném světě hlavní proud programování. Programátoři to potřebují umět a není žádný důvod, proč se bránit OOP jazyku jako vstupnímu jazyku pro začátečníka.
Já píši proti pascalu pro začátečníka hlavně proto, že ten jazyk je mrtvý. Ne proto, že není objektový.
a) Pascal je objektový, a to už od doby Turbo Pascalu. Myslet objektově jsem se učil na průmce na Turbo Vision, jestli ti to něco říká...
b) Pascal je ukecaný. Naučí jej, co je to typ proměnné a jaký je význam, jak strukturovat program,... Třeba u JavaScriptu, kde napíše x = 0 a neví, jestli je v X string nebo číslo, bude zmatený jako Goro před Tokyem.
c) Třída v Pascalu si s sebou nese plno informací, jako jméno, published properties, ... Pomůže mu to uvědomit si, že instance třídy není zadarmo a jakou to má cenu.
d) properties ho naučí, jak se vyhnout globálním proměnným a jak zapouzdřit data. Stejně tak set ho naučí, jak se vyhnout booleovskýmu poli, žeroucímu paměť i bez maskování bitů.
e) Tazatel neuvedl doménu, takže těžko doporučovat konkrétní jazyk. Obecně, nejhorší není zvládnout syntaxi jazyka, tu máš zvládnutou za těch 21 dní, jak slibují příručky. Knihovny taky nejsou problém, ty jsou v nápovědě, stačí matně vědět, co hledáš. Ale jde o to, naučit se myslet a naučit se algoritmy. S Pascalem dosáhne na hodně literatury, původně určené pro Turbo Pascal a Delphi (mj. hodně používaný ve školství před Javou).
umět víc jazyků se IMHO obecně považuje za dobrou věc
A zase - obecná pravda, ale co s tím jako? Když jste se začal učit první cizí jazyk, tak to předpokládám byla latina, protože umět více jazyků je dobré, takže směle do toho. Anebo ne? Anebo vaši rodiče a učitelé nechtěli, abyste tříštil síly a první cizí jazyk jste se naučil takový, co má použití v reálném světě (např. angličtina, němčina)? Asi to druhé co?
Necháte své dítě prvně naučit latině, protože se to tak dříve dělalo a ti lidi fakt byli vzdělanci, nebo ho dáte prvně na angličtinu?
První jazyk je mateřský. Takže by se měl naučit prvně "mateřský jazyk uživatele" - skriptovat v shellu. Ušetří mu to hodně práce a nenásilně to tlačí do algoritmickýho myšlení. A naučí se používat příkazovou řádku, kompilovat ze shellu, napsat makefile,... To se vždycky hodí, pokud nechce být na úrovni Javamana.
jsou lidi, co se k programování dostanou od elektroniky, ti můžou mít docela dobrou představu jak funguje počítač a C tak není úplně špatná volba
Mezi běžnými klopnými obvody, které může ovládat 16letý kluk a hardwarem se kterým pracuje C je OBROVSKÝ rozdíl.
I kdyby ten kluk měl dobrou představu, jak funguje pokročilá elektronika používaná v počítačích, tak pořád se bude mnohem snadněji učit programování v jazyku jako je python, nebo java, nebo pascal. Takový velmi pokročilý elektronik by v C pouze nebyl tolik ztracen - ale v programování jako takovém, by mu to nic neusnadnilo.
C je dobrý jazyk pro učitele. C je dobrý jazyk pro programátory, kteří něco umí a chtějí jít více do hloubky. Ale proboha, dejte si mokrý ručník na hlavu, pokud máte pocit, že komplikovanost a nízkoúrovňovost céčka někomu pomůže snáze začít programovat!
C je na embedded aplikace nejrozšířenější. C je nutnost. Ale neznamená to, že je nejlepší. Kdybych si jako embeďák mohl vybrat, tak bych na něm hodně věcí změnil... A pár věcí bych obšlehl i z "mrtvýho" Pascalu... Čím víc jazyků poznávám, tím víc toho na Cčku postrádám.
Ale tak, jak to popisuje K&R (
http://knihy.cpress.cz/programovaci-jazyk-c.html) je to celkem stravitelný.
A nepodceňoval bych -náctiletý, s Basicem jsem začínal v 10 letech na Spectru v kroužku (pak odbočka k ASM Z80, tak v těch 14), potom ten Turbo Pascal (v 16), Delphi, potom C na embedded věci a pak už to šlo samo. Spíš jde o to, jaký k tomu má vztah, protože pokud si zvolí tuhle cestu, tak to budou tisíce hodin dřiny, než bude použitelný.