Tri semestre javy ..?

<<

dabrck

Príspevky: 2

Registrovaný: Uto Dec 07, 2010 11:54 pm

Poslať Štv Dec 09, 2010 7:10 pm

Odporúčam každému diskutujúcemu, aby si prečítal nasledujúce 3 strany, obsahujú veľmi vecne vyargumentovaný názor na to v čom učiť programovanie:

http://view.samurajdata.se/psview.php?id=b598df08&page=1
<<

alef0

Site Admin

Príspevky: 621

Registrovaný: Štv Nov 16, 2006 8:57 am

Poslať Štv Dec 09, 2010 10:54 pm

Ked uz tak experimentovat, neviem ako ostatnym, ale mne by sa aspon na zaver pacilo vyskusat surove agilne programovanie. Alebo spravit taky workshop, kde sa clovek naplno vyblazni.

Premyslim.

Ale snad mozem povedat, ze a by som za to nebol.

Ak to nevyargumentujes, je to tvoj typicky negativisticky vykrik do tmy :-)

Toto ma uz vazne dostalo. Prosim, nauc sa citat. Znova opakujem, ze ja nepoznam (nie na paz1a, paz1b, paz1c ani nikde inde, ale uplne) ziadnu featuru Javy, ktora nema ekvivalent v nejakom inom jazyku. To znamena, ze ja osobne, vsetko, co som som spravil v Jave, viem spravit aj v inych jazykoch.

S tymto suhlasim, ale co z toho vyplyva?

Ale najviac ma na tvojej vyuke prekvapilo, ze ucis Systemove programovanie. Aspon ja Ta poznam s nazorom, ze radsej kupit jeden server naviac a programovat v Jave ako platit C++ programatora. Toto sa az bojim napisat, lebo mozno zas prides s reakciu, kde sa bude snazit najst zmysel ale nenajdem.

Ja ten nazor mam stale :-) C/C++ ma svoje miesto presne tam, kde ide o primarne o vykon a maximalnu efektivitu pri zeleze, inde si pokojne vystacime s manazovanymi jazykmi.

Pozitivne na tom je to, ze konecne som pochopil, ako to ciste C funguje.

To, ze ucim Systemove programovanie, je fakt, sice to nie je oblast, ktoru by som chcel prioritne riesit, ale na druhej strane vsetci ostatni C majstri, ktori su v stave to oducit este lepsie, su bud prilis mladi, alebo prilis zaneprazdneni inymi predmetmi.
Lorem ipsum dolor sit amet.
<<

guest126

Príspevky: 272

Registrovaný: Štv Jan 10, 2008 1:18 pm

Bydlisko: beyond the rim

Poslať Pia Dec 10, 2010 4:26 am

dabrck píše:Odporúčam každému diskutujúcemu, aby si prečítal nasledujúce 3 strany, obsahujú veľmi vecne vyargumentovaný názor na to v čom učiť programovanie:
http://view.samurajdata.se/psview.php?id=b598df08&page=1


Kvôli ďalším článkom aj čitateľnejšiemu fontu prikladám originálny odkaz http://mj.ucw.cz/papers/proglang.html

alef0 píše:
Ale snad mozem povedat, ze a by som za to nebol.

Ak to nevyargumentujes, je to tvoj typicky negativisticky vykrik do tmy :-)
Povedal som bokom, pomimo, dokonca je to aj v zátvorkach, môj osobný názor. Znova, Tvoja obľúbená činnosť (na ktorú som sa nespočet krát chytil), vytiahnúť pre daný prípad úplne nepodstatnú vetu a tú nepodstatnú vetu riešiť. Asi máš tie veci veľmi rád. Tuším si aj založil tému UNIF vs. FEI. Toto mi dosť vadilo na UPJŠ. Stále sa spomínala technika, vyťahovalo sa, porovnávalo sa atď. Tuna nikto nič také nerieši, ide sa svojou cestou... (za 3 roky som počul asi 3 krát niekoho spomenúť ČVUT, 2 x VŠE, 1 x právo a nespošet veľa krát elitársky chápaný pojem "matfýzak". Preto ho nemám rád). Na ďalšie Tvoje podobné chuťky nemienim reagovať. Keby si predsa len túžil po nejakých argumentoch, viď link vyššie.

alef0 píše:
Toto ma uz vazne dostalo. Prosim, nauc sa citat. Znova opakujem, ze ja nepoznam (nie na paz1a, paz1b, paz1c ani nikde inde, ale uplne) ziadnu featuru Javy, ktora nema ekvivalent v nejakom inom jazyku. To znamena, ze ja osobne, vsetko, co som som spravil v Jave, viem spravit aj v inych jazykoch.

S tymto suhlasim, ale co z toho vyplyva?
Že nevieš alebo necheš cítať slová s pochopením?

Robo, očividne sa tu rieši niečo mimo pôvodnej témy, nevieš presunúť, tak som radšej upravil názov a svojou neomyľnosťou, chybami, za ktoré si sa ani raz neospravedlnil, mám pocit, že ty sa skôr hráš na elitárstvo... Ďalej, neviem, či si postrehovol, disktujem tu ja, ty. ja, ty. ja ty. Myslím, že z dôvodu spomenutého vyššie. Mám rád diskusiu, ale takto nie. Lebo diskusia sa už stratila a iba každý chce objahovať samáho seba. Rád podiskutujem, ale už nie iba s Tebou. Aries, FeroG, gursky, bwpow, alef0... fajn. Ale dialógy alef0 vs guest126 skončili.

PS. Myslím, že k vyčitanému elitárstvu si ma dohnal prave Ty, vecami vyššie. Čo si všímam pocity ľudí, tak majú so mňa skôr pocit, že som skromný človek... Elitárstvo sa prejavilo aj Tvojím nespočet zhadzovaním jazyka C++ (ešte na škole za mojích čias). Sorry, že takto, nemám v umysle Ťa uraziť ale je na tom veľký kus pravdy. Odporúčam prečítať viackrát.
<<

gursky

Site Admin

Príspevky: 353

Registrovaný: Pon Nov 13, 2006 3:32 pm

Poslať Pia Dec 10, 2010 10:40 am

dabrck píše:Odporúčam každému diskutujúcemu, aby si prečítal nasledujúce 3 strany, obsahujú veľmi vecne vyargumentovaný názor na to v čom učiť programovanie:

http://view.samurajdata.se/psview.php?id=b598df08&page=1


Ja si myslim, ze zacinat proceduralne a potom prechadzat na OOP ma niekolko negativ.

1, V proceduralnych programoch studenti maju tendencie pisat 100 riadkove programy bez jedinej metody a straca sa tak prehlad a dobre navyky pri tvorbe programu. Koncept OOP v style "rozpravam sa s objektom, ktory drzi data" je prirodzeny ludom a podnecuje tak strukturovat kod do metod (ktore vykonavaju prikazy alebo odpovedaju na otazky vzhladom na data objektu) a robit ho prehladnejsim. Myslim si, ze je to lahsie uchopitelny koncept ako "uz mame vela riadkov, podme si ich rozbit na metody". Vdaka tomu, ze na PAZ1a nevytvarame vlastne triedy od nuly zhruba 8 tyzdnov, mame dost casu dostat pod kozu koncept pouzivania cudzich objektov a tak lahsie neskor pristupit k tvorbe vlastnych tried od nuly.

2, Zazil som to vela rokov. Studenti ktori sa raz naucili programovat proceduralne, zistiac, ze proceduralne ide urobit vsetko, maju psychycky blok pisat po roku proceduralneho programovania triedy a vytvarat instancie. Snazia sa umelo znasilnovat jazyk a principy OOP, aby programovali tak, ako boli zvyknuti (same static metody a premenne, vsetky premenne verejne,...).

3, Ak zaciname s OOP vznika priestor na viac veci. Styl proceduralne programovanie > OOP sposobuje, ze sa pol roka preklapame na OOP a bojujeme s psychikou zacinajucich programatorov. Najma prvych 6 tyzdnov je to o tom ze sa na nich neda nahadzat vsetko od zapuzdrenosti, dedicnosti a polymorfizmu az po abstraktne triedy, inferfejsy a MVC, lebo jednoducho sa ucime "od znova" dobre programovat. A az ked sa to ako tak podari, da sa ist dalej.
"Microsoft is not the answer. Microsoft is the question. NO is the answer." - Erik Naggum
<<

gursky

Site Admin

Príspevky: 353

Registrovaný: Pon Nov 13, 2006 3:32 pm

Poslať Pia Dec 10, 2010 10:54 am

guest126 píše:Čo si všímam pocity ľudí, tak majú so mňa skôr pocit, že som skromný človek...


Tento pocit som u teba nikdy nemal. Ba prave naopak. NIKTO na tomto fore nevyplodil tolko samochvaly ako ty. Poj pocit: si nadpriemerne chvalenkarsky. Nepoznam nikoho (myslim osobne, neratam ludi z telky (Fico,..)), kto sa chvali viac, snad okrem jedneho nasho kolegu, ktoreho nebudem menovat.
"Microsoft is not the answer. Microsoft is the question. NO is the answer." - Erik Naggum
<<

alef0

Site Admin

Príspevky: 621

Registrovaný: Štv Nov 16, 2006 8:57 am

Poslať Pia Dec 10, 2010 11:42 am

Tvoja obľúbená činnosť (na ktorú som sa nespočet krát chytil), vytiahnúť pre daný prípad úplne nepodstatnú vetu a tú nepodstatnú vetu riešiť. Asi máš tie veci veľmi rád. Tuším si aj založil tému UNIF vs. FEI. Toto mi dosť vadilo na UPJŠ. Stále sa spomínala technika, vyťahovalo sa, porovnávalo sa atď. Tuna nikto nič také nerieši, ide sa svojou cestou... (za 3 roky som počul asi 3 krát niekoho spomenúť ČVUT, 2 x VŠE, 1 x právo a nespošet veľa krát elitársky chápaný pojem "matfýzak". Preto ho nemám rád). Na ďalšie Tvoje podobné chuťky nemienim reagovať. Keby si predsa len túžil po nejakých argumentoch, viď link vyššie.

No ano, lebo tvoje nepodstatne vety su vykriky do tmy bez argumentov. Ked sa snazim vytiahnut z teba argumenty, zacnes sa metat, zametat pod koberec, odvadzat pozornost (vid napr. teraz nepochopitelna WTF zmienka k UINF vs FEI) a tvarit sa ako dieta (,,s Jozkom budem kamarat, s tebou nie.")

Napr. argument clankom je vyborny a dava zmysel.

Pointa je ta, ze ked si na fore priaznivcov trabantu a povies im, ze si cenis ich snahu, ale trabanty nemas rad, tak je to skolsky priklad trollenia. Nahrad si miesto trabantu Javu a uvidis, co si spravil.

Myslím, že k vyčitanému elitárstvu si ma dohnal prave Ty, vecami vyššie. Čo si všímam pocity ľudí, tak majú so mňa skôr pocit, že som skromný človek...


Som rad, ze si explicitne poukazal na svoju skromnost, lebo by som v zapale debaty som na to zabudol.

A som rad, ze si mi vysvetlil, ze oznacovanie za elitara je vlastne moja vina.

Elitárstvo sa prejavilo aj Tvojím nespočet zhadzovaním jazyka C++


Namiesto kydania cituj.

Je rozdiel medzi ,,C++ je zloba a dava braindamage" (co si zrejme o mne myslis ty) a medzi ,,C++ ma svoj zmysel pre konkretne dane a jasne ulohy."
-------

Podme ale diskutovat o clanku, ked uz je ten PAZ1c dokonaly :-)

Ten clanok je vyborny, a doslova odraza moj dojem, ze neexistuje jediny dokonaly jazyk pre zaciatocnikov a doslova reflektuje moje nazory. Famozne tiez nahodil kriteria.

Dlhorocny Pascal (myslim klasicky, modry) je ako uvodny programovaci jazyk pre proceduralne programovanie vyborny, osvedceny, bezproblemovy.

Negativa:
* po nauceni proceduralneho programovania je ho nutne zahodit, OOP je pre zaciatocnika komplikovane, a da sa ovela jednoduchsie demonstrovat na inom jazyku (C# / Java napr.)
* Jeho fatalnou chybou je to, ze do praxe/zivotopisu je uz absolutne nepouzitelny.
* treba najst rozumne IDE (nie TurboPascal).

Delphi / Lazarus
Velkou vyhodou je to, ze sa da programovat grafika uz od zaciatku, ktora dost motivuje ludi. Korytnacky behajuce po platne mozu kreslit obrazce a na nich sa daju demonstrovat zakladne algoritmy bez znalosti OOP.
Nevyhody:
* objektovy model je pre zaciatocnika v porovnani s Javou / C# zlozity, vyzaduje manualne uvolnovanie pamate, syntax je komplikovana
* Delphi je komercny nastroj, ktory sa realne neda uz kupit
* Lazarus ako opensource verzia ma svoje muchy, ktore sposobuju extremne frustracie a to nie len pouzivatelom, ale i skolitelom (zazivame na DVUI :-))

C#
* pri tvorbe okienkovych aplikacii je imho uplne ekvivalentne Delphi, akurat s vyhodou moderneho jazyka s garbage collectorom.

Java
* na rozdiel od C# nema az tak prepracovany GUI editor. (U nas sa to vyvazilo korytnacou grafikou v prvom semestri, ktora je vybornym riesenim).
* moderny jazyk, prakticky, vseobecny, na urovni C#, dilema ,,Java vs C#" je na subjektivnych preferenciach.

Python
* Python je veselica, naozaj sa v tom daju rychlo rubat proceduralne programy. Trufam si odhadnut (ale skusenosti nemam), ze Python je jednoduchsi na pochopenie ako Pascal a typicke aplikacie su rovnake (grafiku nam netreba).
* vyhoda je objektovost, rovno sa da prejst k OOP bez hyperkomplikovanej syntaxe.
* netreba vysvetlovat manualne uvolnovanie pamate.
Nevyhody:
* chyba graficke IDE, okienka sa robia o ineco narocnejsie.

Funkcionalne:
* neviem sa vyjadrit. Zrejme sa vyborne vysvetluju matematicke koncepty, akurat potom migracia do proceduralneho programovania je potom nutna.

C/C++
* rydze C ma problem v tom, ze zaciatocnik musi zapasit nielen s algoritmami (v zmysle postupu), ale mat na pamati mnozstvo veci, ktore suvisia s technickym prevedenim (pointre, alokacia pamate). Cim viac rozlicnych problemov musi zaciatocnik riesit, tym vacsia sanca, ze sa zamota. (C je podla mna vyborny treti jazyk).

Vyhodou je, ze clovek potom je dostatocne kovany na to, aby s tym v inych jazykoch nemal problem.

Cela debata je potom redukovana na to, ci zacat s OOP hned alebo ci zacat proceduralnym programovanim.

Proceduralne programovanie ma vyhodu, ze mozno zrecyklovat znalosti cviciacich a mozno priamociaro demostrovat klasicke informaticke algoritmy (mam na mysli triedenia, grafove veci a podobne.) Tie totiz v OOP velky odraz a ich elegantna realizacia v OOP vyzaduje nejake znalosti o navrhu v OOP.

Na druhej strane OOP od zaciatku umoznuje pochopit nahlad na svet, ze vsetko je objekt (teda vec, ktora poskytuje viacero schopnosti) a system pozostava z objektov, ktore si vymienaju spravy. Tato filozofia je pouzitelna vo vsetkych modernych jazykoch a je prirodzena ludskemu chapaniu, kde zo skatul vyskladame vacsiu skatulu, a z vacsich skatul este vacsiu. Navyse, pomocou zdravo vysvetleneho OOP mozno velmi rychlo a prehladne vyskladat okienkove aplikacie.

Debata procedury vs OOP inak velmi casto trpi syndromom ,,za nasich cias." Programatori zaziti v jednej paradigme sa nevedia zbavit predsudkov. Nevedia si predstavit novu paradigmu (OOP), nevedia na nu nastelovat mozog a ak ju pouzivaju, tak sa cim skor snazia prejst k trikom, ktore poznaju :-)

Priklad: 20 rokov som ucil Pascal stylom readln, writeln na algoritmickych, ale od praxe odtrhnutych prikladov typu ,,nacitajme pole a vyberme z neho parny pocet neparnych prvkov." Zrazu mam ucit OOP, tak spravim to, ze v objekte nadefinujem metody, ktore zodpovedaju klasickym proceduram a rubem svoje readln, writeln dalej, akurat su v kvaziobjektovom ruchu, kde globalne premenne zamaskujem za instancne a inak fungujem dalej

Priklad 2: 40 rokov som ucil C a neviem sa zbavit dojmu, ze kto nevie pointery, je lama a nehodny clovek a nikdy z neho nebude poriadny informatik, lebo za nasich cias sme programovali nulami a jednotkami a kazdy musi robit tak, ako sme robili my.

Toto je mylny dojem, lebo v sucasnosti existuje tendencia robit v abstraktnych jazykoch, kde ide o prehladnost a udrzovatelnost a nie o efektivitu, kvoli ktorej sa pointery vymysleli.
Lorem ipsum dolor sit amet.
<<

Azteq

Príspevky: 147

Registrovaný: Ned Feb 24, 2008 11:02 am

Bydlisko: Prešov

Poslať Pia Dec 10, 2010 12:43 pm

gursky píše:
guest126 píše:Čo si všímam pocity ľudí, tak majú so mňa skôr pocit, že som skromný človek...


Tento pocit som u teba nikdy nemal. Ba prave naopak. NIKTO na tomto fore nevyplodil tolko samochvaly ako ty. Poj pocit: si nadpriemerne chvalenkarsky. Nepoznam nikoho (myslim osobne, neratam ludi z telky (Fico,..)), kto sa chvali viac, snad okrem jedneho nasho kolegu, ktoreho nebudem menovat.


Like it!
<<

Azteq

Príspevky: 147

Registrovaný: Ned Feb 24, 2008 11:02 am

Bydlisko: Prešov

Poslať Pia Dec 10, 2010 12:56 pm

len dodam k pzthon....mal som moznost k nemu nahliadnut

je to pre programatora velmi volny jazyk a ma vela moznosti.... a hlavne ma vela kniznic ktore sa daju vyuzivat...co sa tyka grafiky tak je python uz dost daleko a zdaleka ten jazyk nieje len o skriptovany a proceduralnom programovani
jeho oop je tiez do silne, ale musim zdoraznit ze pre zaciatok je aj dost nebezpecne, napr zabehu dodat do objektu celu methodu atd... plus na vela veci tam musi programator mysliet vo vyzname davat si pozor

ja osobne vidim ze Python este do popredia dojde


inak som fanusik Javy :) ta je momentalne dost rozsirena, ked to nieje pravda tak mi to vyvrate, ale ked sa pozriem napr aj na www.profesia.sk tak firmy hladaju prevazne ludi co vedia Javu (J2EE asi najviac)

som zedavy aky bude trend v buducnosti :)

a co sa tyka ako ucit programovat....ja som jednoznacny zastanca OOP, na strednej skole som mal Pascalu a algoritmizacie dost, ale az na vyske som zistil ze az ne tie pointre (^^) tam nebolo nic zaujimave...takze OOP a Java my choice :)
<<

alef0

Site Admin

Príspevky: 621

Registrovaný: Štv Nov 16, 2006 8:57 am

Poslať Pia Dec 10, 2010 1:17 pm

Ked som myslel grafiku, chcel som povedat okienka. Python nema (pokial viem) ziadne GUI na tvorbu okien, ktore by bolo v pohodlnosti na urovni Delphi / Lazarus / Visual Studia / NetBeansov.

Co sa tyka sily, zalezi od toho, co sa ukaze. I v Jave sa daju robit zveriny, ale to neznamena, ze medzi uvodnymi vecami hned ukazem reflection a dynamicke proxies :-) Takisto v Pythone netreba hned ukazovat metaclassy alebo v Pascale pointre.

Python myslim velmi do popredia nepojde, ale to nie je tragedia. On ma svoje miesto, jasne definovane a pevne drziace, v spolocnosti ostatnych dynamickych jazykov ako Ruby, ci okrajova Groovy.

Trend v buducnosti tazko odhadnut. Java je COBOLom dneska, z hladiska vyvoja syntaxe mrtva, ale to nevadi. (Dobra tendencia je v jazykoch, ktore su cielene pre Java Virtual Machine, napr. funkcionalny Closure, alebo multiparadigmova Scala.) Dynamicke jazyky budu pouzivane kvoli vysokourovnosti a rychlemu vyvoju.

C# bude fungovat vzdy, lebo Windows. C/C++ maju svoje pevne miesto pri pri zeleze, v Linuxe a ovladacoch.

Zabudol som na nieco?

Aha, funkcionalne jazyky (alebo funkcionalne elementy v jazykoch) pojdu dopredu, lebo tam sa paralelizacia da riesit a realizovat skoro automaticky. (Na rozdiel od proceduralneho programovania.)
Lorem ipsum dolor sit amet.
<<

guest126

Príspevky: 272

Registrovaný: Štv Jan 10, 2008 1:18 pm

Bydlisko: beyond the rim

Poslať Pia Dec 10, 2010 2:19 pm

gursky píše:Ja si myslim, ze zacinat proceduralne a potom prechadzat na OOP ma niekolko negativ.

1, V proceduralnych programoch studenti maju tendencie pisat 100 riadkove programy bez jedinej metody a straca sa tak prehlad a dobre navyky pri tvorbe programu. Koncept OOP v style "rozpravam sa s objektom, ktory drzi data" je prirodzeny ludom a podnecuje tak strukturovat kod do metod (ktore vykonavaju prikazy alebo odpovedaju na otazky vzhladom na data objektu) a robit ho prehladnejsim. Myslim si, ze je to lahsie uchopitelny koncept ako "uz mame vela riadkov, podme si ich rozbit na metody". Vdaka tomu, ze na PAZ1a nevytvarame vlastne triedy od nuly zhruba 8 tyzdnov, mame dost casu dostat pod kozu koncept pouzivania cudzich objektov a tak lahsie neskor pristupit k tvorbe vlastnych tried od nuly.
Neviem, nezazil som. S tym prirodzenym myslenim sa to mozno nebude uplne pravda. Napriklad, mne pride velmi prirodzeny OOP navrh programu, kde si napisem metody atd... a potom uz v tych metodach uvazujem procedularne, co mi pride velmi prirodzene. O tom som precital aj par nazorov a celkom ma zaujal nazor, ze deti by sa nemali podcenovat. Este maju slobodne myslenie a aj ked zacnu s C, zacnu uvazovat technicky a pride im to prirodzene. Porovnava to s 18 rocnymi studentami, ktori uz nemaju tak slobodne myslenie a veci, co sa dieta uci pekne rychlo a pre to prirodzene, tak s 18 rocnymi studentami travi 4 krat viac casu. Ono neviem ako to vyznie, ale ak sa pozriem v programovani detskymi ocami, tak mi to pride celkom jednoduche. Procedularne dava aj zmysel na zaciatku. Lebo v OOP na zaciatku nespravis program, ktory bude mat viac ako jednu vlastnu triedu...

gursky píše:2, Zazil som to vela rokov. Studenti ktori sa raz naucili programovat proceduralne, zistiac, ze proceduralne ide urobit vsetko, maju psychycky blok pisat po roku proceduralneho programovania triedy a vytvarat instancie. Snazia sa umelo znasilnovat jazyk a principy OOP, aby programovali tak, ako boli zvyknuti (same static metody a premenne, vsetky premenne verejne,...).
Na toto by som si odporucal precitat uvod knihy Thinking in C++ od Bruce Eckel a potom ju prelistovat. Zacina vysvetlenim OOP konceptu, zacne procedularne a casom uplne prirodzene, ani si toho clovek nevsimne, prechadza na OOP. Citatnel nepozoruje ziaden skok, teda nema ziaden psychicky blok.

gursky píše:3, Ak zaciname s OOP vznika priestor na viac veci. Styl proceduralne programovanie > OOP sposobuje, ze sa pol roka preklapame na OOP a bojujeme s psychikou zacinajucich programatorov. Najma prvych 6 tyzdnov je to o tom ze sa na nich neda nahadzat vsetko od zapuzdrenosti, dedicnosti a polymorfizmu az po abstraktne triedy, inferfejsy a MVC, lebo jednoducho sa ucime "od znova" dobre programovat. A az ked sa to ako tak podari, da sa ist dalej.
Ano, to je nepochybne vyhoda. Ale tak ci tak, zacinas premenne,ify, fory...

alef0 píše:...

Tie vykriky do tmy je moj osobny nazor, ktory v danom case a priestore nepovazujem za uzitocne riesit a poukazuje na to, ze mozu nimi byt jemne ovlyvnene nasledujuce vety. Pre jednoduchost, co je v zatvorke, na to vazne netreba reagovat...

Znova nepocuvas a vkladas mi do ust, co som nikdy nepovedal. Javu mam rad. Nie je mi sympaticky C# a Pascal uz povazujem 40 rokov od jeho vzniku na prekovany s, fakt, strasnou syntaxou.

Mozno, ze nie som taky, akeho ma vnimate (napadlo to niekoho z Vas?).

C++ si zhadzoval cele paz1c, co som mal s Tebou a nepovedal si jeden priklad, kedy je uzitocne.

Inac, budem rad, ak mi napise, mailom --> tu to nepatri, kde som posobil najviac chvalenkarsky. Rad sa poucim a asi sa na to divam trochu inac.
-------
alef0 píše:Dlhorocny Pascal (myslim klasicky, modry) je ako uvodny programovaci jazyk pre proceduralne programovanie vyborny, osvedceny, bezproblemovy.

Negativa:
* po nauceni proceduralneho programovania je ho nutne zahodit, OOP je pre zaciatocnika komplikovane, a da sa ovela jednoduchsie demonstrovat na inom jazyku (C# / Java napr.)
* Jeho fatalnou chybou je to, ze do praxe/zivotopisu je uz absolutne nepouzitelny.
* treba najst rozumne IDE (nie TurboPascal).
Negativa su dost silne. Preto by som ho uz nezvolil. Este doplnim, ze nie iba pre mna ma strasnu syntax (ako cviciaci by som trpel)

alef0 píše:Delphi / Lazarus
Velkou vyhodou je to, ze sa da programovat grafika uz od zaciatku, ktora dost motivuje ludi. Korytnacky behajuce po platne mozu kreslit obrazce a na nich sa daju demonstrovat zakladne algoritmy bez znalosti OOP.
Nevyhody:
* objektovy model je pre zaciatocnika v porovnani s Javou / C# zlozity, vyzaduje manualne uvolnovanie pamate, syntax je komplikovana
* Delphi je komercny nastroj, ktory sa realne neda uz kupit
* Lazarus ako opensource verzia ma svoje muchy, ktore sposobuju extremne frustracie a to nie len pouzivatelom, ale i skolitelom (zazivame na DVUI :-))
V tom som trochu zvlastny, grafika, korytnacky by boli v mojom pripade skor na obtiaz. Delphi sa da kupit tu. Neviem ako teraz, ale nie tak davno boli pre Delphi do praxe dost nekvalitne kniznice. Objektovy model mi pride zlozity aj oproti C++ a strasna syntax pretrvava.

alef0 píše:C#
* pri tvorbe okienkovych aplikacii je imho uplne ekvivalentne Delphi, akurat s vyhodou moderneho jazyka s garbage collectorom.

Java
* na rozdiel od C# nema az tak prepracovany GUI editor. (U nas sa to vyvazilo korytnacou grafikou v prvom semestri, ktora je vybornym riesenim).
* moderny jazyk, prakticky, vseobecny, na urovni C#, dilema ,,Java vs C#" je na subjektivnych preferenciach.
alef0, na GUI sa divas velmi blbo. Tie "super" GUI editory su specificke pre platformu Windows. Java je multiplatformova, preto je jej stav pochopitelny.

alef0 píše:Python
* Python je veselica, naozaj sa v tom daju rychlo rubat proceduralne programy. Trufam si odhadnut (ale skusenosti nemam), ze Python je jednoduchsi na pochopenie ako Pascal a typicke aplikacie su rovnake (grafiku nam netreba).
* vyhoda je objektovost, rovno sa da prejst k OOP bez hyperkomplikovanej syntaxe.
* netreba vysvetlovat manualne uvolnovanie pamate.
Nevyhody:
* chyba graficke IDE, okienka sa robia o ineco narocnejsie.
Plugin do Eclipse funguje bez problemov. Nepoznam vela jazykov, ale s tych, co poznam, vseobecne by som na zaciatok, bez vedomosti toho, co zaciatocnik ocakava, ako rozmysla, Python. Pri konktretnych pripadoch zaciatocnikov, sa moze ukazat, ze pre neho je na zaciatok najlepsie napr. C. Vyhody na zaciatok ma Python krasne. Jednoduche veci aj trochu viac sa v nom da spravit jednoducho. Nespomenul este jednu jeho silnu vyhodu. V praxi je velmi pouzitelny + ma velmi vela balickov....

alef0 píše: Funkcionalne:
* neviem sa vyjadrit. Zrejme sa vyborne vysvetluju matematicke koncepty, akurat potom migracia do proceduralneho programovania je potom nutna.
Su vyborne na pochopene rekuzie a su bez side-efektov, vyuzitelne aj vo firmach, nie iba vo vede.

alef0 píše:C/C++
* rydze C ma problem v tom, ze zaciatocnik musi zapasit nielen s algoritmami (v zmysle postupu), ale mat na pamati mnozstvo veci, ktore suvisia s technickym prevedenim (pointre, alokacia pamate). Cim viac rozlicnych problemov musi zaciatocnik riesit, tym vacsia sanca, ze sa zamota. (C je podla mna vyborny treti jazyk).

Vyhodou je, ze clovek potom je dostatocne kovany na to, aby s tym v inych jazykoch nemal problem.
Vyhoda je pomerne silna a nie je nutne sa na zaciatku hrat s pointrami.


alef0 píše:Cela debata je potom redukovana na to, ci zacat s OOP hned alebo ci zacat proceduralnym programovanim. ...
Vid Myslime v C++ od Bruce Eckel (komentar vyssie) a aj prirodzene to podla mna prelina Python. Problem je s tym "skokom". Pricom v Myslime v C++ a mam pocit, ze aj v Pythone sa prejde prirodzene (bez skoku) (Co je podla mna aj najspravnejsie. Myslim si, ze v skutocnosti tam ziaden skok nie je. Skok je podla mna iba sa umelo vytvoreny cisto procedularnymi alebo cisto OOP jazykmi. Konceptualne to podla mna plynie celkom prirodzene, samo.)

alef0 píše:Debata procedury vs OOP inak velmi casto trpi syndromom ,,za nasich cias."
Zabednenost sa najde vsade. Ludia su levini ohnut myslenie (preto napr. tolko ludi odsudzuje funkcionalne jazyky, i ked sa vyuzivaju aj vo firmach)

Ale mam podobny nazor, ze pointrami --> spojaky, stromy, hashovacie tabulky by si mal prejst kazdy programator. Speciality C++ ala funktor, pointer na funkciu atd nepovazujem za nutne mat realne osahane ale je fajn o tom vediet. Co by sa mohlo spomenut na principe pocitacov napr. Mozno by mohli mat principy pocitacov 2/2, kde by sa na cviku bralo C, pointre, spojaky, make atd... Tam to aj celkom dava zmysel, lebo C vyzaduje samo o sebe znalosti pricipov pocitaca.

EDIT: Jazykov je kopec a okusil som malo. Velmi casto pri zaciatoch spomina napriklad SmallTalk alebo Erlang.
Naposledy upravil guest126 dňa Pia Dec 10, 2010 3:35 pm, celkovo upravené 4
<<

guest126

Príspevky: 272

Registrovaný: Štv Jan 10, 2008 1:18 pm

Bydlisko: beyond the rim

Poslať Pia Dec 10, 2010 2:31 pm

Azteq píše:inak som fanusik Javy :) ta je momentalne dost rozsirena, ked to nieje pravda tak mi to vyvrate, ale ked sa pozriem napr aj na www.profesia.sk tak firmy hladaju prevazne ludi co vedia Javu (J2EE asi najviac)


Len tu poukazem na bezny omyl :-) Ano, Java je dnes mainstream a niektori ludia si maju tendenciu si mysliet, ze C/C++ su uz odpisane. Pocet programatorov a pocet IT firiem rapidne stupol a Java je realtivne lahky jazyk, ked clovek pochopi OOP. Ale odporucam si pozriet, ze po C/C++ programatoroch je stale dopyt (uz roky) a platove podmienky su uplne niekde inde. Ale dovolenky tiez, ak sa clovek kvalitne zamestna. Z programatorov Assembler/C/C++ sa v poslednom case stavaju strazeni ludia, lebo vobec nie je jednoduche najst nahradu a aktualna nedostupnost sa z Murphyho zakona prejavi prave v situacii, kedy nedostupost takeho cloveka je strata uplne inych penazi (typicky v bankach)

Este osobna poznamka k zamestatnosti. Myslim si, ze sikovky clovek sa presadi vzdy :)
<<

alef0

Site Admin

Príspevky: 621

Registrovaný: Štv Nov 16, 2006 8:57 am

Poslať Pia Dec 10, 2010 4:09 pm

Este k flame-baitu: najlepsie je nerobit vykriky do tmy, alebo dat poznamku, ze ,,to je na margo a na dlhsiu diskusiu", lebo inak su to flame-baity.

Inak sme sa zhodli takmer vo vsetkom!
Este maju slobodne myslenie a aj ked zacnu s C, zacnu uvazovat technicky a pride im to prirodzene. Porovnava to s 18 rocnymi studentami, ktori uz nemaju tak slobodne myslenie a veci, co sa dieta uci pekne rychlo a pre to prirodzene, tak s 18 rocnymi studentami travi 4 krat viac casu.

Toto je pozoruhodny postoj na zamyslenie. Paradoxne, mnozstvo starsich ludi zacinalo na najnemoznejsom jazyku, v ktorom sa snubia vsetky nevyhody vsetkych jazykov. Ziadne pointre (sic!). Netypovane premenne. Ziadne procedury (GOTO considered a necessity.). Jediny cyklus: FOR. Napodiv po zvladnuti zakladov sa mnoho ludi migrovalo na Pascal, pripadne Turbo Basic.

Ale otazka je, preco zacat s C? Nie je nahodou snaha dokazat sebe a ostatnym, ze ti ludia zvladnu pointre, ha ha ha!? Pytam sa zvedavostne, ake su naozajstne vyhody oproti vsetkym ostatnym jazykom (v zmysle ,,C ako prvy jazyk") ? Okrem ,,ludia musia vediet, co je na pozadi." To by som rad vedel.



C++ si zhadzoval cele paz1c, co som mal s Tebou a nepovedal si jeden priklad, kedy je uzitocne.

Cituj. Parafrazuj.

C/C++ ma zmysel. Ovladace. Hry. Grafika Aplikacie, kde ide primarne o vykon. Veci linuxoveho sveta.

-----------

S Pythonom uplne suhlasim.

Este k C#/Java. Hej, C# je uzko zviazane s Windowsom. Java ma vyborny multiplatformny GUI editor, ale spaty s NetBeans. (NetBeans sa pouzivaju na PAZ1c by default.)

Delphi: aha, ok, nevedel som, ze opat funguju. Problem s Delphi je ten, ze musis si kupit IDE za peniaze a tento nastroj nepouzijes takmer nikde mimo skolstva a to vsetko len preto, aby sa dalo nadviazat v OOP na Pascal. Preco radsej nie v C#?

Ale mam podobny nazor, ze pointrami --> spojaky, stromy, hashovacie tabulky by si mal prejst kazdy programator.

Urcite suhlasim. Je viac nez vhodne sa stretnut s C, ale nesuhlasim s tym, ze hned na uvod programovania.

Mozno by mohli mat principy pocitacov 2/2, kde by sa na cviku bralo C, pointre, spojaky, make atd...

Toto robim na prvom systemku. (ANSI C, pointre, spojaky, arraylisty. Make zatial nie.)

K C++: moja otazka znie: preco C++ a nie C# (alebo Java) ako prvy jazyk? (Inak len ako perlicka: Eckelovo nadsenie pre jazyky islo v poradi: C++ (TiCpp), Java (TiJ), Python (TiP)).
Lorem ipsum dolor sit amet.
<<

guest126

Príspevky: 272

Registrovaný: Štv Jan 10, 2008 1:18 pm

Bydlisko: beyond the rim

Poslať Pia Dec 10, 2010 4:38 pm

alef0 píše:
Este maju slobodne myslenie a aj ked zacnu s C, zacnu uvazovat technicky a pride im to prirodzene. Porovnava to s 18 rocnymi studentami, ktori uz nemaju tak slobodne myslenie a veci, co sa dieta uci pekne rychlo a pre to prirodzene, tak s 18 rocnymi studentami travi 4 krat viac casu.

Toto je pozoruhodny postoj na zamyslenie.
Tiez si myslim. Ono to nejako zvlastne dava aj zmysel...

alef0 píše:Ale otazka je, preco zacat s C?
C beriem skor ako analogiu na Pascal. Lebo C nie je tazky jazyk a aspon trochu rozumnym pristupom sa s nim da zacat ako v Pascale. Skor by som povedal, ze ak zacat s Pascalom, tak radsej s C. Da sa v nom programovat skoro tak isto, pre zaciatocnika moze byt problem #include <stdio.h> ale to sa pekne vysvetlit (jeden z mnonych sposob ako implementovat I/O a C dava programatorovi volnost vo vsetkom, co moze, ale vacsina ludi pouziva stdio.h, lebo je to standard) a na prvy pohlad, nie prave privetive scanf a printf. To je vsetko. Hm, mozno este string (ale casom). Staci zvladnut tieto veci a moze byt C ala Pascal. Vseobecne si myslim, ze radsej zacat s C ako s Pascalom (osobne nepoznam nikoho, kto zacinal s C a chybal by mu Pascal. Opacnych pripadov poznam dost). C je dalej vhodne, podla mna, pre zaciatocnikov, ktorych zaujimaju principy pocitaca.

EDIT: Z toho hladiska (namiesto Pascalu) ma vyznam pre prvy semester C (i ked mimo nadsensov poznania principu neodporucam, kvoli skoku OOP. I ked moze mat vyznam ten, ze sa da v prvom semestri a v druhom bude nejaky jazyk cisto OOP (Dephi je velmi cudne OOP). Hoci by sa prve 2-3 prednasky prechadzalo na OOP myslienkovo s realnymi peknymi prikadmi, to by asi nevadilo, kedze by sa potom mohlo veselo programovat stylom OOP na prikladoch, kde je OOP vhodne pouzit). Kombinacia Pascal/Delphi nefunguje najlepsie, kombinacia C/nieco cisto OOP sa mi vidi vhodnejsia aj podstatne prinosnejsia. Pre zaujemcov o C sa moze n-tom semestri ukazat napr. nejaka analogia nasho predmetu Programovanie v Unixe. Predsa len, tam sa C vyuziva asi najviac.

Zacinat s C++ mimo knih Myslime v C++ a Rozumime C++ mi pride znacne kontraproduktivne. Ostatne knihy, co som mal moznost vidiet, nie su fajn na zaciatok. C++ si vyzaduje spravne vedenie + narozdiel od C je to najzlozitejsi jazyk, aky poznam.

Ak je k dispozicii dobre vedenie, ma vyznam zacat s C++ preto, ze umoznuje plynuly prechod k OOP (bez psychickeho skoku). Ale bez kvalitneho vedenia alebo kvalitnej knihy moze z takeho zaciatocnika vzniknut naozaj hocico. Java/C# je cisto OOP co skoro implikuje ten obavany skok. Moje skusenosti s ludmi, ktori zacinali s tymi jazykmi je taka, ze OOP pchaju uplne vsade, aj tam, kde sa to maximalne nehodi. Nevedia zvolit spravny pristup, lebo poznaju iba OOP (ako som pisal inde, podla mna ma taky mozog pri procedularnom programovani pocit, akokeby sa vracal spat, co z principu nerobi rad)

Nepoznam vela jazykov, mozno by stalo za to sa pozriet na SmallTalk (casto ospevovany). Z tych jazykov, co som vyskusal ja, tak plynuly prechod od procedularneho k OOP umoznuje, podla mna, C++ (ale treba kvalitne vedenie alebo knihu) a Python (staci stranka http://www.py.cz)
<<

alef0

Site Admin

Príspevky: 621

Registrovaný: Štv Nov 16, 2006 8:57 am

Poslať Sob Dec 11, 2010 4:08 pm

Occamova britva je zdrava. Od jednoduchsieho k zlozitejsiemu. Opat zdoraznujem, ze hovorime o zaciatocnikoch. Zaciatocnici v autoskole nechcu vediet o valcoch a stvortakte, oni chcu jazdit. Zaciatocnikov, ktori to chcu vediet, nemusime riesit, oni su v stave naucit sa to aj sami :-)

V C oproti Pascalu je fatalny problem to, ze na zakladnej urovni musis velmi skoro vysvetlovat koncepty, ktore nijak nesuvisia s algoritmickym myslenim.
a) velmi skoro treba retazce. Pokial nechceme do nemoty robit matematicke ulohy typu sedlovy bod matice :-) Da sa ficat na staticky alokovanych retazcoch. Ale treba vysvetlit, ze retazce sa nedaju priradovat (len cez strcpy), nedaju lepit (len cez strcat) a nedaju nacitat kulturne zo suboru riadok po riadku (len cez pevnu dlzku)
b) scanf a jeho ampersandy

Pointery sa daju drzat na uzde, ak uplne odignorujes dynamicku stranku C. Cize polia pevnej dlzky (toto sa robilo aj v Pascale), retazce ako polia charov pevnej dlzky.

Problem je vsak v tom, ze polia sa nedaju vracat z funkcii inak ako cez pointre.

Dilema C vs Pascal ako prvy jazyk sa redukuje na ,,ucme sa nizkourovnovy jazyk, ktory je rozsireny a zapasme s kopou technickych obmedzeni" vs ,,ucme jazyk, ktory je bezpecny a osvedceny pre zaciatocnikov, ale okrem toho v praxi nepouzitelny."

osobne nepoznam nikoho, kto zacinal s C a chybal by mu Pascal. Opacnych pripadov poznam dost

Toto je riadny logicky kotrmelec. Ako si kladol otazku? Ak ste zacinali s Pascalom, chybalo vam C? :-)

Ono je to o tom, ze akonahle uz vies programovat v lubovolnom inom proceduralnom / OOP jazyku, Pascal ti je uz na nic. Nema ziadne vyhody, syntax ta obmedzuje, do praxe je ti na nic.

Java/C# je cisto OOP co skoro implikuje ten obavany skok.

Ani nie. Tak ako nevysvetlujes co znamena char ** argv, nebudes vysvetlovat, co znamena public static void main. Namespace nevysvetlujes rovnako ako public class, include nevysvetlujes rovnako ako import. (Importy su aj v Pythone, mimochodom).

Budes rubat staticke metody ako procedury a ides.

Problem je v tom, ze treba vcas opustit proceduralne myslenie, lebo potom to stazuje vnimanie (to je to, co Gursky naznacil, ze ludia rubu staticy vsade).

Moje skusenosti s ludmi, ktori zacinali s tymi jazykmi je taka, ze OOP pchaju uplne vsade, aj tam, kde sa to maximalne nehodi, teda nevedia zvolit spravny pristup, lebo poznaju iba OOP (

Toto si krical uz inde, ale som z teba nevydobyl konkretne priklady.

Cvicenie: napis si algoritmus minimalnej kostry v C a v Jave. V OOP jazykoch to napis tak, aby to bolo naozaj OOP, prehladne a pouzitelne a uvidis tie rozdiely :-) (Lebo kopu krat to vyzera tak ako z toho storocneho vtipu, ze ,,ludia programuju FORTRAN v lubovolnom jazyku")
Lorem ipsum dolor sit amet.
<<

bwpow

Príspevky: 634

Registrovaný: Str Nov 22, 2006 11:19 am

Bydlisko: Košice

Poslať Sob Dec 11, 2010 5:57 pm

Moj nazor je ten, ze by sa malo zacat programovat v ANSI C a dovod je nasledovny:
Su ludia, ktori pokladaju programovanie alebo informatiku ako taku za vedu, ini zasa za umenie. Moj pohlad je ovela jednoduchsi. Informatika a specialne programovanie nie je nic ine, ako hladanie sposobov na prekonanie problemov, ktore clovek potrebuje riesit. Ci uz ide o hladanie optimalnej cesty alebo o travenie volneho casu pri nejakej dobrej hre. A aj z tohto dovodu je pre mna programovanie vzdy spojene s nejakym fyzickym hardverom. Bez neho totiz velmi uzitocne nie je. Na tento dolezity fakt sa nesmie nikdy zabudat.

Moderne elektronicke pocitace tu mame uz zopar desiatok rokov, ale ich princip sa velmi nezmenil. Stale pouzivame logicke hradla, ktore len postupne menia formu. A ani vyhliadky do buducnosti nevyzeraju tak, ze by sa to malo zmenit. Vsetky digitalne zariadenia, ku ktorym sa clovek dostane, pracuju na rovnakych principoch. Este aj pri kvantovych pocitacoch stale uvazujeme s hradlami, aj ked s trochu inymi ako pri dnesnych pocitacoch. Preto by kazdy student, skor ako sadne k pocitacu, mal tieto veci poznat. Hradla, klopne obvody, ALU atd. My sme to brali na fyzike, neviem, ako je to teraz.

Pre studenta, buduceho informatika, je preto podla mna velmi dolezite, aby si pri svojej praci vzdy uvedomal aj to, ze jeho dielo bude musiet bezat na skutocnom hardveri a aby pamatal na jeho obmedzenia a moznosti. Na tuto temu by mozno vedel nieco porozpravat Marian Dvorsky.

A preco vlastne C, preco nie ASM alebo nieco ine? C je podla mna velmi dobre prave pre jeho blizkost k hardveru a slobodu, ktora sa da skoro zrovnavat s ASM. Pritom ale ide o pomerne jednoduchy jazyk, v ktorom sa da vyvijat rychlo a prehladne (oproti ASM). Niekde som cital, ze C bol dokonca na nejakom type pocitaca pouzivany ako strojovy kod, ale googlit sa mi to nechce. Preto ho pokladam za idealneho adepta, ktory dokaze programatorovi poskytnut funkcie, premenne a cely komfort vysokourovnoveho programovania ale zaroven umoznuje v pripade potreby dotknut sa az tych najintimnejsich casti samotneho zeleza. Ziadny iny jazyk nedokazal sklbit tieto dva pristupy tak dokonale. To je aj dovod, preco je stale po tych dlhych rokoch pouzivany a nevyzera to, ze by mal byt niecim inym v buducnosti nahradeny.

Netvrdim, ze len C a nic viac netreba. Dobre je vediet aj nejake to OOP a sam ako velky odporca musim priznat, ze uz som narazil na pripady, kedy sa mi to naozaj hodilo a aj som ho vyuzil. Preto hovorim, ze jeden jazyk a jeden pristup nikdy nestaci.

V zahranici sa teraz zacina presadzovat svata trojica C + Python + Java. Dovody na C som napisal, Java je dnes industry standard a asi nim aj zostane, napriek snahe Oracle ju pochovat a Python je, ako bolo spominane, COBOLom dneska. Navyse C a Python sa daju skvele kombinovat vdaka libpython. Preto, tak ako jeden nemenovany pan "mysli nahodne a jazdi zavodne", tak aj programator by mal "navrhovat prehladne, implementovat optimalne".

Uz len taky maly mozno vtip, mozno povzdych na zaver: Pri dnesnom komixe na roote sa jeden diskuter stazoval (tu o 9:56) na to, ze nejaky program Solidworks, urceny na navrh strojarenskych vyrobkov pocita carbon footprint pre kazdy navrhnuty diel. Dnes sa nad tym mozno len pousmejeme, ale mozno coskoro zacnu kompilatory pisat carbon footprint pre kazdy skompilovany program. Alebo to mozno bude rovno sucast operacneho systemu a za kazdy stusteny program bude treba platit nejaku carbon footprint dan za kazdu instrukciu. Pri dnesnom trende hadzat vsetko do cloudov to nie je ani take nerealne. Takze, buduci programatori, pamatajte na to, ze nie je az take nerealne, ze niekedy v buducnosti bude cas behu programu drahsi ako cas programatora. Hlavne pri stale sa rozmahajucom ekoterorizme.

A to su dovody, preco povazujem za podstatne, naucit studentov vyuzivat dostupny hardver co najlepsie a nie s nim bojovat a snazit sa ho pretvorit na nieco, cim nie je. Za najlepsiu ukazku tejto zvratenej snahy povazujem priam az patologicku hrozu z neprenositelneho kodu a uctievanie design patternov.
Strach dát najevo své pocity a zjednat si u druhých respekt je jedním z problémů civilizovaného člověka, který se naučil zpochybňovat svou vlastní pravdu pro zdání objektivity
PredchádzajúciĎalší

Späť na Pripomienky k predmetom

Kto je on-line

Užívatelia prezerajúci fórum: Žiadny registrovaný užívateľ nie je prítomný a 1 hosť

cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software.
Slovenský preklad.