( aludanyi | 2012. 01. 14., szo – 13:51 )

A kérdés, nem az volt, hogy melyik nyelv, hanem az, hogy mit kellene megismerni ahhoz, hogy a gyerek programozni kezdjen. Maga a nyelv NEM kimondottan fontos, és még véletlenül sem jelenti, hogy egy nyelv mennyire alkalmazható a jelenben vagy a jövőben (hogy jelenleg népszerű-e vagy "történelem")
A programozás sokkal több, mint egy nyelv ismerete. Először is az előbbi hozzászólásomban egy picit vicceltem is, de azért a lényeg ott is megvan, a programozás alapja a gép, és ez nélkül akármelyik nyelvet is tanulja meg az ember csak rossz “programozó” lehet.

A Python egy szép, hatékony és sok mindenre használható nyelv, és semmi kifogásom, hogy az első napoktól kezdve használja és tanulja a gyerek (vagy akárki, aki kezdő – mert nem feltétlenül gyerekek kezdenek csak), de nem szabad elfelejteni, hogy maga a Python nem ad választ a legfontosabb kérdésekre, éppen úgy, mint pl. annak idején a BASIC sem adott választ mindenre.

Mindenki, aki a 8-biteseken kezdett (mint jómagam is), tudja, hogy a BASIC nagyon gyorsan nem volt elég, és általában az assembly volt az ahová fordultunk és ez volt az, ami megtanította velünk, hogy mi a gép, és hogyan működik. Ma már nagyon ritkán (majdnem soha) nem használok assembly-t, de az, hogy tudom egy akkora előny azokhoz képest, akik nem tudják, hogy nincs értelme elkezdeni vitatkozni sem róla. Ugyanakkor nem tartom igazán jó programozónak azt, aki csak egy nyelvet tud, és azt sem aki legalább elméleti szinten nem tudja elképzelni, hogyan működik a fordító, hogyan lesz a magas szintű nyelvben irt sorokból gépi kód.

Egy dolgot viszont nem szabad elfelejteni, a mai gépek és programozási környezet NEM olyan, mint a 8-bites időben, túl nagy a komplexitás ahhoz képest, ezért talán jobb lenne első fázisban elkerülni pl. az OOP-t. Elsőre vagy a funkcionális oldalról kell megközelíteni a dolgokat (pl. Lisp (Scheme, Clojure), Haskell, ...) ami ugye a lambda calculus körül épül fel, vagy a strukturális (procedurális) oldalról (Turing gép) és itt meg a Python is a Pascal is és számtalan másik nyelv is megfelel még a BASIC és a Fortran is ;)

Ugyanakkor fontos dolog ismerni legalább néhány (történelmi) nyelvet, mint pl. a Fortran, Pascal, Modula-2, Smalltalk stb. nem azért mert ebben akarunk programozni, vagy mert valami közvetlen kereskedelmi érték lenne, hanem azért mert egy olyan programozó aki ezekben a nyelvekben is tud kódot olvasni az megérti a nyelvek közötti különbséget, és azt, hogy miért is van szükség több nyelvre. C meg persze előbb vagy utóbb elengedhetetlen egy professzionális programozó számára, de nem feltétlenül muszáj elsajátítani mindjárt az elején.

...most, hogy volt időm gondolkodni... talán Perl? ;)))

Még egyszer, ne azért tanuljunk egy nyelvet, mert használható vagy mert éppen azt keresi a piac (ezért tanuljunk könyvtárakat, frameworkokat stb.), hanem azért, hogy a problémákat és azok megoldását több oldalról tudjuk megközelíteni. Egyik nyelv tanulása sem vesz túlságosan sok időt igénybe (legalább alapfokon), de minden nyelv amit tudunk igenis hozzájárul ahhoz, hogy a problémákat könnyebben, egyszerűbben és hatékonyabban meg tudjuk oldani. Végül is éppen ez a cél.