Proč pokaždé zrovna moje
otázky vyvolají takový rozruch?:-)
To uz je taky folklor, ze ked hocikomu pridete vysvetlovat, ze jeho oblubena
vec je na prd/mrtva, tak sa strhne flamewar. Situaciu, ked diskuter pride,
vyprovokuje vsetkych a potom potichu zmizne, radsej nazyvat nebudem :-)
Zosumarizujete mi aspon Vasu prednasku, o co som Vas prosil vyssie? Dost by mi
to pomohlo, lebo ma to zaujima.
-----------------
Inak, venoval som teraz pol semestra experimentalnej vyucbe Groovy a
zacinam mat pocit, ze zaciatocnik, ktory nema s cim porovnavat,
prakticky nie je az taky ohureny syntaktickymi vymozenostami a
dynamickymi vlastnostami ako napr. clovek, ktory prejde z Javy do
Pythonu/Groovy.
Samozrejme, priamociara syntax dost pomaha: ide o to, aby sa neupisal k
smrti, nemusel nahanat kazdu bodkociarku a nebol zavaleny zbytocnostami
(napr. Lazarus a jeho predgenerovany kod formulara, z ktoreho su
zaciatocnici pomerne mimo, alebo uz len povestne zaklinadlo public
static void main). Ziskal som dojem, ze omnoho dolezitejsie je, aby bol
na chyby upozorneny co najskor a co najjasnejsie.
V Groovy sme sice radostne buchali programy (v NetBeanse je podpora out
of box), ktore boli kratucke, strucne, ale stacilo sa preklepnut v nazve
instancnej premennej a uz lietali po konzole stack tracky, ktore bolo
treba luskat a hladat v nich pricinu chyby... co je horsie v porovnani s
lazarusovskym error logom, kde zaciatocnik namemoruje typicke chybove
hlasky a vie z nich ako-tak vydedukovat pricinu chyby a opravit ju.
Tie dynamicke vlastnosti pre zaciatocnika nie su az take terno.
Zaciatocnik nechce pisat ultrakratke programy, on je rad, ze mu to nieco
kresli/hra/tancuje a ze ho jazyk nefrustruje niecim, comu nerozumie.
Rovnako ho az tak nefascinuju reklamne tendencie ,,to co v Jave napisete
na tri metody, mate v Pythone/Groovy na jednu closure ci jeden list
comprehension". A dost kontraproduktivna je ,,cierna magia", ktora je
fascinujuca dovtedy, kym funguje, ale depresivna, ked zacne padat na
mylnych hlaskach a chybach.
RN
On 16. 6. 2011 14:28, Vladimir Balko wrote:
> Na některých školách prosazují pro úvodní kurzy Python, ale já se
domnívám, že to, že v jazyku napíšete jednodušší Hello World a
> snadněji v něm inicializujete seznam, z něj ještě nedělá vhodnější
jazyk pro výuku.
No podla mna je python vhodnejsi na vyuku uz len kvoli tomu, ze nuti
pisat "pekne programy" (odsadzovanie...) a nie je taky ukecany ako
java - tzn. algoritmy su v nom v prirodzenejsej podobe - skoro
matematicky zapis. A este sa k tomu omnoho lahsie nauci.
Suhlasim vsak, ze asi je vhodnejsie najprv nabrat nejake skusenosti s
typovanymi jazykmi a az potom prejst na netypove. Mam vsak tusenie, ze
typovane jazyky sa tak o cca 10 rokov budu pouzivat uz iba na
specialne oblasti, kde to bude vyhodnejsie. Vyvoj speje k stale vyssie
urovnovym jazykom a netypova syntax je podla mna rozhodne tymto smerom.
VBalko
2011/6/16 Pecinovský Rudolf <rudolf.pecinov...@i.cz
<mailto:rudolf.pecinov...@i.cz>>
> jak dlouho vam trva, nez z lamy udelate Java programatora,
> ktery muze psat produkcni systemy?
> ...
> A je sakra rozdil psat hada jakozto semestralku pro softwarove
inzenyrstvi vs
> produkcni system. Na jak dlouho to tedy vidite a co ucici krivka?
Java je podle mne v současné době nejlepší jazyk pro vstup do
světa programování. Nabízí prakticky vše, co je potřeba, a na
druhou stranu toho neumí zbytečně moc, takže ji můžete do studentů
nalít za semestr. O druhém takovém jazyku nevím.
Na některých školách prosazují pro úvodní kurzy Python, ale já se
domnívám, že to, že v jazyku napíšete jednodušší Hello World a
snadněji v něm inicializujete seznam, z něj ještě nedělá vhodnější
jazyk pro výuku.
Dynamické jazyky by se podle mne měly učit až poté, co už má
student-programátor něco za sebou a umí se dobrovolně ukáznit,
protože jinak mu mohou připravit šeredná překvapení.
My učíme v prvním semestru programování a v druhém mix technologií
+ sw inženýrství. Pak se studenti rozdělí na ty, kteří dají
přednost managementu (těch je většina) a ty, kteří dají přednost
programování. Ti pak mají předmět Moderní programovací techniky, v
němž jim předvádím Groovy. Ne proto, že by bylo nejlepší (i když
je ;-), že), ale proto, že nabízí většinu toho, co najdete v
ostatních jazycích typu Python, Ruby, Smalltalk atd., a přitom se
studenti nemusí učit novou syntaxi. Neustále se jim snažím
vtloukat, ať se učí především principy, protože jazyky přicházejí
a odcházejí, ale principy přežívají neporovnatelně déle.
Vývoj produkčních systémů ale není jenom o programování. Je to
bohužel o těch všech frameworcích, o spolupráci mezi různými
aplikacemi, o kontinuální integraci, průběžném testování atd. atd.
Vstřebat vše musí trvat dlouho. Pokud ale student přijde někam,
kde dostane konkrétní úkol na konkrétním projektu, stačí mu toho k
donastudování výrazně méně a může být velmi rychle platným členem
týmu.
Důležité je, aby to byl student, který se ve škole nenaučil jen
jazyk, ale nasál opravdu používané paradigma, protože jinak se v
tom plácá a neví, která bije.