1

Téma: Výuka programovacího jazyku Python nebo jiných "netypových"...

Dobrý den,
měl bych dotaz, zda je pro mě, jakožto studenta ČVUT FEL STM IS, možnost během svého bakalářského studia absolvovat nějaký předmět, který se věnuje programovacímu jazyku Python, nebo jinému, který není "striktně typový" (pokud se tomu tak říká - čili není třeba deklarovat typ proměnných). Mrzí mě, že jsem z dosavadního studia omezen jen na uvažování v rámci možností Javy a domnívám se, že u jazyků jako je Python např. nějaké přetěžování metod nepřipadá v úvahu, čili se mi některé konstrukce naučené v Javě špatně transformují do těchto jazyků.
Existují takové předměty?
Děkuji

"Spěch zdržuje." [latinské přísloví]
"In Python, how do you create a string of random characters?" "Read a Perl file!"

2

Re: Výuka programovacího jazyku Python nebo jiných "netypových"...

no, tak v Y36TW1 se učí javascript a PHP, to jsou oboje krásné prasárn...ehm, jazyky s alternativním řešením typů... jinak myslím, že rozdíly v programování v obou stylech nejsou nějaké zásadní, v tom přetěžování problém nevidím, správné použití přetěžování v javě stejně konverguje v beztypovým jazyce na jedinou metodu.

Já osobně beztypovost nesnáším, přidává akorát nepřehlednost kódu a ztěžuje debugování. Navíc stejně něco jako beztypový jazyk je jen iluze, stejně je vždycky vevnitř nějak narvaný typ... viz jeden geniální příklad v javascriptu: naivně napsaná metoda na inkrementaci nějakého čítače bude místo 1, 2, 3, 4, ... vypisovat 1, 11, 111, 1111, ..., protože i když je to krásně beztypové, tak se operace + chová jinak na stringy (zřetězeni) a jinak na čísla (sčítání).

BTW python je silně typový wink

Tohle všechno se tam dělá? To snad není možný!!!

3

Re: Výuka programovacího jazyku Python nebo jiných "netypových"...

A něco jiného než PHP by nebylo?

K tomu zda se jedná o "prasárny", či ne se radši vyjadřovat nebudu... Asi by to vedlo v ošklivou a zbytečnou hádku.
Jistě, že v beztypovém jazyce by to vedlo v jednu metodu, ovšem by mě zajímal názor někoho, kdo v tom má léta praxi, a který by mě naučil jak v takových jazycích přemýšlet. V tuto chvíli bych ovlivněn Javou tak akorát napsal onu metodu, za níž by následoval obří switch s různou logikou pro různé objekty.
Vypsané nevýhody rozhodně nevýhodami můžou být pro někoho, kdo programuje v typových jazycích. Pokud s tím ale člověk počítá, ví jak to napsat, aby s tím problém nebyl. A divil bych se, kdyby mi někdo tvrdil, že typové jazyky jsou bez nevýhod a netypové bez výhod. Já zase osobně nesnáším konzervativní lidi, kteří ani nedají šanci jiným přístupům.
Popsaný problém, je zcela jistě problém JavaScriptu, který je (obecně známo) velmi nepovedeným (skriptovacím) jazykem. Nikde není psáno, že se takto musí chovat všechny beztypové jazyky.
Navíc jsem se doteď domníval, že PHP i JS jsou jazyky skriptovacími. To ale není podstatné.

Je-li Python silně typový, zajímala by mě v tom případě nějaká (alespoň přibližná) definice "silné typovosti", jelikož mi zatím všechny prameny i moje zkušenosti tvrdily pravý opak.

Důležité ale je: zda je pro mě, jakožto studenta ČVUT FEL STM IS, možnost během svého bakalářského studia absolvovat nějaký předmět, který se věnuje programovacímu jazyku Python, nebo jazyku (kromě PHP), který není "silně typový".

"Spěch zdržuje." [latinské přísloví]
"In Python, how do you create a string of random characters?" "Read a Perl file!"

4

Re: Výuka programovacího jazyku Python nebo jiných "netypových"...

Podle me nemyslis ne "strongly typed" = "weekly typed", protoze to je kazdy jazyk, ktery dela sam nejake konverze, takze i treba C. Spis si asi chtel "dynamicaly typed", coz je opak ke "staticaly typed" a je to jazyk, kde se vetsina rozhodovani o typu dela az za behu. Takovy jazyk se uci treba v predmetu X36JUI ;-)

Naposledy upravil: malatpe1 (16.01.2009 21:36:28)

5

Re: Výuka programovacího jazyku Python nebo jiných "netypových"...

Aha smile Zřejmě máte pravdu smile
Šlo mi o jazyky, u kterých se nedeklaruje typ proměnné nebo parametru metody.

V tomto kontextu je můj poslední příspěvek úplně mimo :-/ Takže uznávám svou chybu a omlouvám se!

Ono už ani o moc více "dynamických" jazyků zřejmě není. Leda tak Perl, Ruby a SmallTalk (ten už jsme dělali)... No, ještě nějaké...
Naštěstí jsem si tento předmět (resp. Y33PUI) již zapsal. Takže děkuji mockrát. A ještě jednou se omlouvám za mou mýlku.

A kdyby ještě někdo věděl o nějakém předmětu, kde se učí "dynamically typed" jazyky, budu rád.

Naposledy upravil: holyrade (16.01.2009 22:21:56)

"Spěch zdržuje." [latinské přísloví]
"In Python, how do you create a string of random characters?" "Read a Perl file!"

6

Re: Výuka programovacího jazyku Python nebo jiných "netypových"...

Radek Holý (holyr3) napsal:

V tuto chvíli bych ovlivněn Javou tak akorát napsal onu metodu, za níž by následoval obří switch s různou logikou pro různé objekty.

nevím, jistě nemáš metodu, kterou když zavoláš s intem, tak ti vypíše hello world, a s floatem ukončí program... pokud to máš dobře napsané, tak bys neměl switch potřebovat (konkrétně v pythonu switch stejně ani není big_smile), a místo toho využít přetěžování operátorů, automatické konverze, polymorfismus, atd. Ale to je už docela OT.

Radek Holý (holyr3) napsal:

Vypsané nevýhody rozhodně nevýhodami můžou být pro někoho, kdo programuje v typových jazycích. Pokud s tím ale člověk počítá, ví jak to napsat, aby s tím problém nebyl.

Tohle není tak úplně pravda... základní problém: neúmyslná hloupá chyba zůstává. A s tou se prostě typové jazyky poperou líp, protože ji odhalí už při překladu, netypové až při běhu, nebo vůbec. Ale nic není černobílé, hádat se o tom nemá smysl.

Radek Holý (holyr3) napsal:

Je-li Python silně typový, zajímala by mě v tom případě nějaká (alespoň přibližná) definice "silné typovosti", jelikož mi zatím všechny prameny i moje zkušenosti tvrdily pravý opak.

http://en.wikipedia.org/wiki/Strong_typing
http://en.wikipedia.org/wiki/Python_(pr … _language)
"Despite not enforcing static typing, Python is strongly typed, forbidding nonsense operations (for example, adding a number to a string) rather than silently attempting to make sense of them."

Tohle všechno se tam dělá? To snad není možný!!!

7

Re: Výuka programovacího jazyku Python nebo jiných "netypových"...

Ano, jistě, díky příspěvku pana Maláta jsem to pochopil a omluvil jsem se:

Radek Holý (holyr3) napsal:

V tomto kontextu je můj poslední příspěvek úplně mimo :-/ Takže uznávám svou chybu a omlouvám se!

A kdyby ještě někdo věděl o nějakém předmětu, kde se učí "dynamically typed" jazyky, budu rád.

"Spěch zdržuje." [latinské přísloví]
"In Python, how do you create a string of random characters?" "Read a Perl file!"

8

Re: Výuka programovacího jazyku Python nebo jiných "netypových"...

jasně, no problem, jen uvádím další info wink.

Tohle všechno se tam dělá? To snad není možný!!!

9

Re: Výuka programovacího jazyku Python nebo jiných "netypových"...

V předmětu X36OBP (http://smalltalk.felk.cvut.cz/seaside/p … es/X36OBP/) věnujeme diskusi statických a dynamických typů, jejich výhodám a nevýhodám, návaznosti na další vlastnosti jazyků apod. poměrně hodně prostoru. Pokud jste ve třetím ročníku, stačí dostat se na magisterské studium, počkat si půl roku a dočkáte se porce vrchovaté.

10

Re: Výuka programovacího jazyku Python nebo jiných "netypových"...

Podle me k tomu muzes pristoupit bud po teoreticke strance, pak se neco dozvis v X36OBP (celkem dost obecne),  nebo po prakticke strance a pak me zadny predmet nenapada (leda tak X36WWW a psat v Djangu smile). Ale i kdyby existoval, tak bych ti osobne spis doporucoval urcit si nejaky projekt a ten v Pythonu realizovat. Prinos pro tebe je podle me uplne stejny jako kdyby si predmet absolvoval.

"Nemůžete nikoho nic naučit. Můžete mu nanejvýš pomoci, aby to sám v sobě nalezl. " Galileo Galilei

11

Re: Výuka programovacího jazyku Python nebo jiných "netypových"...

Imho pokud máš zájem se naučit něco, co na FELu je jen okrajově, tak nejlíp uděláš, když se do toho pustíš sám. Kolikrát to je mnohem přínosnější a nikdo ti neklade žádná omezení a překážky ;-)

Just have a little faith...

12

Re: Výuka programovacího jazyku Python nebo jiných "netypových"...

Taky je tu moznost zkusit si to zapsat nekde kde to ucej. Predmet z jiny fakulty/skoly znamena byrokracii a behani, ale jde to.

Relativne casto se objevuje otazka proc FEL neuci to nebo ono (at uz jde o Python, magistra v manazerske informatice nebo webovy navrh z toho "graficko-umeleckeho" stylu). Protoze nemame lidi co by to umeli a umeli ucit a lepsi to neucit nez ucit blbe.

"When you were born, you cried and the world rejoiced. Live so that when you die, the world cries and you rejoice."

13

Re: Výuka programovacího jazyku Python nebo jiných "netypových"...

Ing. Tomáš Davidovič (davidt2) napsal:

lepsi to neucit nez ucit blbe.

no táááák, kdyby tohle platilo, tak během těch pěti let na škole by člověk neměl většinu času do čeho píchnout wink

Tohle všechno se tam dělá? To snad není možný!!!

14

Re: Výuka programovacího jazyku Python nebo jiných "netypových"...

Tak absolvoval jsem predmet PUI (coz je snad ekvivalent JUI) a stale hladovym po predmetu vyucujicim jazyk Python a jemu podobne smile

Na PUI byly az moc silene jazyky smile Ale jo, taky se to hodi znat smile

OBP jsem si zapomnel zapsat, tak snad za rok smile

Ale sem tam uz o Pythonu slysim nejakou zminku smile Dokonce i na Diskretni matematice... big_smile
Tak budu dal doufat, ze se neco objevi... Treba alespon Groovy, kdyz uz je to tu vsechno tak nasakle Javou...

"Spěch zdržuje." [latinské přísloví]
"In Python, how do you create a string of random characters?" "Read a Perl file!"

15

Re: Výuka programovacího jazyku Python nebo jiných "netypových"...

na FITu jsem loni viděl nějaký programování v pythonu, můžeš si to zkusit zapsat...

Tohle všechno se tam dělá? To snad není možný!!!

16

Re: Výuka programovacího jazyku Python nebo jiných "netypových"...

Jj, taky jsem na to koukal na http://www.fit.cvut.cz/zajemce/bakalar/ … e-predmety
Ale kdyz jsem se ptal lidi na FITu, tak nevedeli a na te strance to taky nevypada jako nejaky konkretni predmet, ale asi to jeste prozkoumam...

"Spěch zdržuje." [latinské přísloví]
"In Python, how do you create a string of random characters?" "Read a Perl file!"