Hlavní navigace

Názor ke článku Jaký jazyk jako první? od Kiwi - [109] Nedají. V C bez ukazatelů ani nepředáte...

  • 23. 2. 2014 20:26

    Kiwi (neregistrovaný) 194.228.13.---

    [109] Nedají. V C bez ukazatelů ani nepředáte parametr referencí. Pastmi pro začátečníka jsou taky chybějící kontroly všeho možného - limitů polí, implicitní přetypování atd. Ten jazyk je zkrátka příliš nízkoúrovňový, předpokládá, že víte, co se děje pod ním, že když něco děláte, tak víte co a proč. Nejde o to, že by se v něm nedalo poměrně čistě programovat, jde o to, jak rychle bude začátečník otráven z toho, že mu něco nefunguje a on za boha nemůže přijít na to, proč. V Pascalu je člověk nucen k disciplině - ten jazyk ho tak nějak vede a hlídá před ním samotným. Zkušeného hackera to samozřejmě spíš otravuje, ale začátečníka to učí "správně myslet" - správně strukturovat, rozmyslet si povahu dat, s nimiž bude algoritmus pracovat, a podle něj správně navrhnout datové struktury, správně faktorizovat, protože některé hacky obvyklé v jiných jazycích mu jsou zatrhnuty. Dají se v něm velmi krásně a čistě implementovat všechny ty klasické algoritmické problémy, dá se v něm solidně louskat i matematika - prostě z tohoto hlediska je to pro studenta SŠ nebo VŠ velmi přímočaré a přístupné. Tohle nejsou jen nějaké mé osobní dojmy, to jsem odkoukal z reakcí studentů. Naposledy když se mnou konsultovala jedna kamarádka, co jí právě lili na VŠ do hlavy Javu, jsem si všímal, co jí vlastně dělá problémy, jak vymýšlí program a bylo jasně vidět, že bojuje s problémy, jež si pascalisti odbudou hned ze začátku, do toho navíc má hlavu zamotanou třídami a tím vším kolem...

    Zkrátka pokud jde o mě, tak začátečníka bych asi seznamoval s Pascalem nebo Lispem, u něhož si taky dovedu představit, že by to mohlo být velmi stravitelné díky absenci všech těch různých obfuskujících syntaktických konstrukcí objektových jazyků. Mimochodem - to nebylo samoúčelné, že se tomu snažili i v ryze objektovém Smalltalku vyhnout, jak to jen šlo. Výhodou Lispu navíc je, že v rámci jednoho jazyka tam můžete ukázat i různá paradigmata - od procedurálního přes funkcionální a objektové klidně i logické, přístupy založené na datových proudech, atd.

    Ovšem na C, C++ a Javu mám názor celkem jasný - to může v hlavách začátečníků napáchat více škody než užitku, ať se vyučující snaží sebe víc. Jak jsem řekl výše - podstatné není, jak čistě a rychle dokážete program napsat a odladit vy, ale student.

    [110] My ho učili na starém Turbo Pascalu. Ale souhlasím, že něco současnějšího by bodlo víc.