Dne Sun, 06 Feb 2011 15:58:15 +0100 Pecinovský Rudolf <rudolf.pecinov...@i.cz> napsal/-a:
dotyčný naučil jako první, je v jeho programech (v libovolném jazyce) k vysledování ještě dlouhou dobu.
Souhlasim, ale... kdyz by napr. nekdo cetl muj kod, mohl by si myslet, ze jsem se ani po 20+ letech nezbavil assemblerovskych navyku, kdyz vyhodnocuju podminky stylem, odpovidajicim v podstate vetvi posit v Jacksonove backtrackingu misto abych je hnizdil do sebe. Ale ja to delam umyslne, ac se to quitovani jiste strukturovanym puristum nelibi, protoze to povazuji za citelnejsi a udrzovatelnejsi kod s mensi nachylnosti k chybam.
A v tom je právě problém. Přecházíš-li na jazyk postavený na jiném paradigmatu, může ten přechod docela dlouho trvat.
Souhlasim, ale ja v tomto pripade nemluvim o zasadni zmene paradigmatu jako napr. pri prechodu z proceduralniho jazyka na deklarativni. Pro tuto diskuzi jsem predpokladal, ze zustavame v OO svete.
zkušeného programátora 12 až 18 měsíců, přičemž čím zkušenější, tím déle mu trvá, než se zbaví starých zvyků a začne programovat opravdu podle nového paradigmatu.
To se udava, ale osobne s tim mam problem: - Kdo je to ten programator? Co predstavuji ty jeho zkusenosti? Umel napr. nejakou (strukturovanou) metodiku? Jestli ano, mohou se mu ukazat rozdily s novou ev. se da ukazat, co ze stavajicich znalosti muze zuzitkovat a treba vlozit jako uvod Jacksonovo JSD s JSP... Umel psat reusable kod? Bude to umet i v Jave a kdekoli jinde. Zna svet XML+XSD+XSL? Urcite to zuzitkuje. Umel pouzivat spravne exceptions napr. v ADA? Bude je umet pouzivat s minimalnim usilim i v Jave, Pythonu a kdekoli jinde, totez regexy, DB connectivita, persistence, marhshalling/unmarshalling, multithreading/multitasking a ja nevim co jeste. - Co v tech 12-18 mesicich ma zvladnout? Napr. pri prechodu do OO sveta nejakou metodiku? Jacobsonovu OOSE, Coad/Yourdanovu OOAD, Rumbaughtovu OMT, Jacksonovu JSD, nejakou jinou? Nebo vsechny dohromady vcetne jejich pros&cons? UML nebo neco jineho pro modelovani, nejaky konkretni OO jazyk a nejake fasady, nebo nekolik OO jazyku soucasne? Kde a jak si to tech 12-18 mesicu bude osvojovat? atd. atd. Program zpravidla navrhuje nekdo, kdo zna odpovidajici metodiku pro dane paradigma a kdyz ji nezna, tak tezko bude v roli nekoho, kdo ma zasadni vliv na to, jak bude reseni vypadat. A kdyz nastoupi do teamu, kde takoveho analytika maji, tak v pripade OOD v podstate dostane tridy s metodami navrzene, dostane radu hotovych knihoven, nekdo tam bude nejspis dohlizet na kvalitu kodu atd., takze neni ponechan s novym paradigmatem svemu osudu a nema prilis velky prostor pro matlani nejakym neslucitelnym stylem... Naopak ma docela dobrou sanci rychle vstrebat, jak to ma spravne vypadat, zejmena kdyz si k tomu studoval odpovidajici metodiku.
Řekl bych, že přechod ze staticky typovaného a dynamicky typovaný jazyk bude někde uprostřed. Asi jej dostaneš pod kůži dříve než za uvedených 12 měsíců, ale za týden to nebude.
Viz vyse: pokud ten clovek mel odpovidajici znalosti z OO sveta v prostredich se silnou typovou kontrolou, vlastni dynamicky OO jazyk by mu IMHO nemel delat problemy (a proto jsem psal ten puvodni prispevek). Jestli si to pamatuju, tak kdyz jsme vybirali Python, precetli jsme 2 prirucky a kodovaci standard, abychom psali stejne jako Pythomci - dohromady 500+ stranek - cili par hodin. Trochu jsme jako proceduralni hlavy plavali ve funkcionalnim programovani a krev nam hodne pilo, kdyz se clovek pri prirazovani hodnoty spletl v nazvu atributu, tak misto chyby obohatil tridu o novy atribut :-(((( (tuhle vlastnost bych z jazyka vykopal a zavedl pro to explicitni prikaz - to se strasne spatne hledalo). Jinak s kontrolou datovych typu az za behu to nebylo tak zle. Co nam zabralo dost casu bylo zvladnout framework Django, abychom v nem dokazali udelat, co jsme potrebovali - to byly tydny. Taky prohrabat se knihovnama byl obcas problem (tam by se docela hodila nejaka kucharka programatora jako napsal Darwin javistum). No to jsem toho naslintal... Uz radsi skoncim a jdu delat neco uzitecneho ;) pf