Puvodne jsem byl rozhodnuty do tohodle fora uz nepsat, protoze toho o VB mnoho nevim a nechce se mi ze sebe delat vola, na druhou stranu je tu jedna vec na kterou reagovat musim (netyka se primo clanku, ale diskuse pod nim) a tyka se lastne pana Petrika i Macha:Jde o to, ze podle me je blbost, ze by zacatecnici nemeli prijit do styku s typy promennych - podle me meli a to hned na zacatku, kdy se o promennych zacne mluvit.Duvod je prosty - hodnoty tech promennych stejne nejaky typ maji - bez ohledu na jazyk je prece rozdil, pokud napisu A= 50; a A = "Ahoj!!!";, prinejmensim proto, ze v prvnim pripade vim, co znamena B= A/10;, zatimco v druhem pripade to netusim. Ve vetsine jazyku pujde o chybu, v tech, ktere nekontrolujui typy se ale odhali az za behu programu, coz je dost pozde. Nemoznost deklarovat promennym typ, je spise matouci a v dusledku omezujici. Co se tyka obtiznosti pro zacatecniky, ja myslim, ze tady se da uplatnit co rika jeden nas prednasejici (shodou okolnosti prednasi programovani) - "Tahle veta "To by nepochopili" vypovida spis o tom cloveku samotnem" - Tedy - neni to ve skutecnosti tak, ze ty nejsi schopen praci s typy vysvetlit, spis nez, ze se v nich skryva pro zacatecniky nejaky problem, ja si totiz myslim, ze na typeh nic problematickeho neni a nevim, proc by melo byt.
Jsem téhož názoru, nicméně pokud jazyk může být použit i bez deklarace typů, využil bych této možnosti právě k demonstraci toho, jak a čím mohou být statické typové deklarace užitečné. Jsou to v zásadě dvě věci - jednak silná typová kontrola a ochrana proti překlepům a jednak integrace Intellisense a doplňování kódu. Myslím, že jazyk který toto neumožňuje se pro výuku programování nehodí, i kdyby měl řadu dalších užitečných vlastností - chybí mu prostě jeden ze základních aspektů moderních profesionálních vývojových prostředí. Je to jako kdybyste chtěli učit ježdění na rolbě, která nemá kola - naučite se to jistě také, ale ten specifický styl práce v silně typovém prostředí si neosvojíte. Myslím, že sám autor jazyka Python, Guido van Rossum - který nyní prosazuje pro Python statické typové deklarace - tento nedostatek vnímá podobně. Podobně lze chápat absenci explicitní deklarace bloků a oddělovačů příkazů v Pythonu. Až tyto záležitosti Python bude (alespoň volitelně, jako VB.NET) mít, nic mu nebude bránit v cestě mezí mainstream jazyků. Co se jednoduchosti VB.NET ve srovnání s Pythonem týče, VB.NET evidentně patří k jazykům, určeným pro vývoj v IDE. To doplňuje redundatní informace, kterými VB.NET kód disponuje samo a využívá je k takovým věcem, jako je autoformátování a Intellisense - je to jakýsi stroj na kontextově senzitivní doplňování kódu. Python je naproti tomu zcela zjevně optimalizován pro úsporné skriptování bez podpory IDE, což v prostředí Linuxu, kterému dobré IDE na úrovni Visual Studia chybí může být výhoda - ale v profesionální praxi, která IDE k dispozici má a v převážné většině projektů využívá se tato skutečnost obrací v jeho neprospěch. Díky nástrojům jako je Visual Studio Express nebo SharpDevelop má dnes každý možnost si vyzkoušet základy práce v profesionálním vývojovém prostředí zdarma a vyzkoušet si, jaký je rozdíl oproti práci v (třebas vyspělém) textovém editoru. Ty rozdíly jsou natolik specifické, že pokud IDE dobře neovládáte, může být vaše produktivita řádově nižší - takže stejně jako je dnes součást kvalifikace práce s kancelářskými aplikacemi, měla by být součástí praxe vývojáře znalost funkce vývojového prostředí - měl by znát principy ladění, watche, práci s intellisense, objekt a code browserem, práci s šablonami a designery a nástroje pro deployment.
To je porad jedna a ta sama pisnicka .-).Treba: stejně jako je dnes součást kvalifikace práce s kancelářskými aplikacemi, měla by být součástí praxe vývojáře znalost funkce vývojového prostředí - měl by znát principy ladění, watche, práci s intellisense, objekt a code browserem, práci s šablonami a designery a nástroje pro deployment.Vyuka programovani na zakladni a stredni skole neniodborna priprava vyvojaru, stejne jako vyuka matematikyneni priprava matematiku a fyziky fyzyku a hudebnivychovy hudebniku . Vyuka programovani na zakladnima strednim stupni ma jiny cil.Ucit na zakladni skole watche, práci s intellisense, objekt a code browserem, práci s šablonami a designery a nástroje pro deployment a to navic pri vyuce zakladuprogramovani je nesmysl. )Python je naproti tomu zcela zjevně optimalizován pro úsporné skriptování bez podpory IDE, což v prostředí Linuxu, kterému dobré IDE na úrovni Visual Studia chybí může být výhoda - ale v profesionální praxi, která IDE k dispozici má a v převážné většině projektů využívá se tato skutečnost obrací v jeho neprospěch.Python se nepouziva jen na Linuxu, dokonce ani nevzniknul primarne pro Linux a zcela urcite ma vice win vyvojaru.Krome toho, Python je zjevne optimalizovan pro to, aby melpochopitelnou, srozumitelnou a prehlednou syntaxi. Kdybybyl optimalizovna na uspornou syntaxi, vypadal by jako Perl.Co se tyce intellisense, nema Python problem a to ani nalinuxu.čím mohou být statické typové deklarace užitečné. Jsou to v zásadě dvě věci - jednak silná typová kontrola a ochrana proti překlepům a jednak integrace Intellisense a doplňování kódu.To je pekna blbost. Intellisense viz obrazek u dynamickeho Pythonu.Neni tedy vazano na staticke typy. A silna typovou kontrolu maPython rovnez, narozdil od jazyka C, ktery ma slabou typovoukontrolu, prestoze ma staticke typy. Pletes si pojmy a dojmy .
Navrhuji presunout se s touto diskuzi jinam - a to konkretne na tohle specielne urcene forum: http://www.zive.cz/forum/SubChild.asp?Qst=202191&Main=62
... nebo odříznout p.Macha od netu. No fakt na ten Python nepřejdu a nepřejdu...
To je v poradku Python neni pro kazdeho a ani se nehodi na vsechno. Prechazet na Python nebo jakykoli jiny jazykje ze sve podstaty nerozum, zadny jazyk nepokryva vsechny potreby a moznosti. Vhodny jazyk se vybira na zakladepotreb pro any projekt. Tudiz tuhle flame nevedu pro to, abych nekoho presvedcilna Python. Mne staci ocistit jej od Petrikovych pomluv ,popr. na nej i upozornit ty, kteri o nem jeste neslyselia nevi co to je zac a k cemu by jim mohl byt eventualne uzitecny. Ja sam ovladam a pouzivam nekolik ruznych jazyku, Python je jen jeden z nich. V kategorii dynamickych ainterpretovanych jazyku ma ale Python jedinecne postaveni.Ac interprtovany a dynamicky, je hodne podobny systemovyma je v rade pripadu velmi dobre pouzitelny i na aplikacni programovani. Protoze mnoho lidi ma vuci interpretovanym jazykum predsudky a neco takoveho by je ani ve snu nenapadlo,myslim si, ze jde o uzitecnou osvetu.Chtit nekoho odrezavat, to nesvedci o moc demokrtickempristupu . Jestlipak ty nahodou neumis jeden jedinyjazyk? To by pak mnohe vysvetlo .
Ano, ano, protože kolik jazyků znáš, tolikrát si člověkem.
Pan Mach si už svých pět minut slávy odřízl - stačí zagooglovat, co tvrdil o Pythonu ještě před rokem na několika diskusích současně.... Paradoxně ale měl tehdy na Python mnohem objektivnější názory, než teď - pod jeho tehdejší výroky bych se klidně podepsal i já. Ale kdo chce vlka bít.... V každém případě si cením toho, že svůj úděl nese odhodlaně a statečně - přiznám na rovinu, že na jeho místě bych napodruhé zdaleka tak kategorický určitě nebyl. Nekdo prohlasil ze Python je snadny jazyk pro zacatecniky,jak se v nem lehko a krasne programuje a jak je srozumitelny a vsichni ostatni to po nem papouskuji, ale skutecnost je jina. Osobne bych tuto roli spis priradil PHP, ktere si na nic nehraje a je opravdu snadne a k zacatecnikum privetive. Knihovny se tu nazyvaji moduly a vubec mi prijde, ze cela zakladni terminologie je zbytecne prekopana. Imho je tohle vsechno hloupy a zbytecny a znesnadnuje to vniknuti do Pythonu. A i ten uplny zacatecnik, ktery zacne s Pythonem, pak bude mit problemy s pouzivanim neceho jineho. I z tohoto duvodu si myslim, ze Python neni vhodny pro zacatecniky v programovani Python ma byt udajne velmi jasny a prehledny, doslovne se o nem tvrdi, ze ho jsou schopni cist i neprogramatori a pak takovehle lapsy Casto take slysim hlasku, ze Python byl navrzen jako OOP jazyk. Jestli to je pravda, tak byl navrzen desne mizerne. Protoze veci jako len(pole) do cisteho OOP jazyka jednoduse nepatri. Python je sice od zacatku koncipován objektově ale čistota objektového navrhu v něm těžce skřipe. Všechno je v Pythonu sice "objekt", ale stejně se to pouziva spis jako proceduralni jazyk - např. místo přiřazení x=pole.lenght používá x=lenght(pole)) Python neni ani objektovy ani proceduralni, je to takova splacanina, objekty jsou doplnovane pozdeji Python ma sve nejslabsi stranky ve vecech, ktere maji moderni jazyky ciste vyreseny. Iteratory jsou bezva, akorat si nejsem jist, nakolik je kod s iteratory pristupny a srozumitelny zacatecnikum. Bloky se rozlisuji odsazovanim, otresne... Pro prehlednost nekdy odsazuji i logicke casti bloku v pythonu nemuzu a je to pro me dost neprehledne Jsem zvykly na jine odsazovani/formatovani zdrojaku a Python me nuti do toho, ktere me nevyhovuje V Pythonu vznikaji problemy pri kopirovani a automatickem formatovani ruznymi editory Problemy mi v pythonu delaji zaprve dlouhe radky, za druhe bloky odsazuju Dale tu jsou problemy mezera vs tabulator a tabulator s ruznou velikosti. Michat format a syntaxi kodu dohromady a delat jedno na druhem zavisle je imho hloupost a jeden za zavaznych nedostatku pythonu. Me proste v mnoha ohledech prijde Python desne tezkopadnej (treba i tim rozlisovanim slozenych prikazu odsazenim kodu) a zastaralej. Nemam problem se vyznat treba v 20 KB zdrojaku PHP, ale v 5 KB zdrojaku Pythonu ano. Prave kvuli vynucenemu formatovani. Jeste jsem zapoml uvest, ze dochazi ke konfliktum s komentari Python ma problemy s GTK a GTK2 Chtel jsem udelat program, ktery by fungoval v textovem rezimu a byl prenositelny mezi windows a linuxem. Byl jsem velmi prekvapen, ze Python pod windows neumi curses a ani jej tomu nelze naucit. Nenasel jsem ani zadnou jinou univerzalni "TUI" knihovnu.
Musim priznat, ze me prekvapuje, ze stale nedokazes vyrovnat s tim, ze nekdo nevidi veci jen cerne nebo bile, a ze si dokoncemyslis, ze to je ostuda nebo co .Tohle je uz jsem ti nekolikrat vysvetloval, naposledy treba veve 20. dilu, nebo treba zde, na vysvetleni nereagujes, fungujesjako zaseknuty robot, asi jsi se nejak zacyklil. Nejlepe je torozebrano zde:http://new.ceskaskola.cz/ICTveskole/F.asp?ARI=101919&HID=1&CAI=2129Ano, kritizoval jsem Python a kritizuji ho dodnes, kdyz budes poctive Googlit, najdes urcite i aktualni vyhrady, ne jen tyto stare a z vetsi casti neplatne, na ktere jsem te sam upozornil, abych ti ukazal, ze Python nevnimam cernobile a nekriticky . Z toho me nikdo nemuze obvinit.Koho to bude zajimat, ten se dozvi, ze to je vsechno ponekud jinak,at proto, ze to je vytrhano z kontextu a v celistve forme to zniponekud jinak, nebo ze to nikdy nebyla pravda a vysvetlilo se to jiz v tech diskuzich, z kterych jsi to vytrhal a jsi si vedom toho,ze to neni pravda, ze to jsou diskuze z roku 2002 a od te doby Pythonpokrocil, takze to jiz dnes neplati a toho jsi si taky vedom, presnesis nechal vysvetlit co se zmenil o a proc to nebo ono neplati, takzese to da kvalifikovat jako podvod na tve vlastni ctenare, verim, ze tvuj pristup nakladani s informacemi oceni . No a samozrejme necoz toho plati i dodnes, a bud jsem na to na zaklade zkusenosti zmenilnazor, nebo ani nezmenil a stale to vnimam jako vyhradu vuci Pythonu,protoze Python, ac ho vnimam jako nejlepsi, tak ho nevnimam jako bezchybny.V každém případě si cením toho, že svůj úděl nese odhodlaně a statečně - přiznám na rovinu, že na jeho místě bych napodruhé zdaleka tak kategorický určitě nebyl. Ano, vsiml jsem si, ze se bojis mit nazor a zaujmout nejake stanovisko u veci ktere vidis bile . Narozdil od tebe ja s nebojim kritizovat i veci ktere se mi libi a obdivuji je. Vim ze jsou kvalitni a neublizi jim to, naopak jim to prospeje. Tobe je vsak takova otevrenost cizi . Na misto toho radsi hlasas a obhajujes bludy.Jeden blud jako ukazka. Proc tvrdis, ze je dvojtecka jako oddelovac prikazu ve VB.NET lepsi, nez strednik, ktery pouziva Python a ostatni bezne jazyky? Jinymi slovy, proc nedokazes poctive rict, ze to je nedostatek VB.NET, stejne jako ja sem za nedostatek Pythonu prohlasil, ze neumoznuje prikazy ukoncovat stredniky a vlozit tak nekolik prikazu za sebe na jeden radek? Myslis, ze tim ze budes skryvat nedostatky VB.NET nebo je dokonce bezduvodne vydavat za vyhody z nej udelas lepsi jazyk, ze ti za to nejaky ctenar podekuje? Ja myslim ze ne, a proto nedostatky Pythonu neskryvam. Jen povazuji za hloupe, ze tu predestiras o Pythonu veci, ktere nejsou pravda a pritom vis ze nejsou pravda. Copak te vede k tomuto chovani? .-))
Jinymi slovy, proc nedokazes poctive rict, ze to je nedostatek VB.NET, stejne jako ja sem za nedostatek Pythonu prohlasil, ze neumoznuje prikazy ukoncovat stredniky a vlozit tak nekolik prikazu za sebe na jeden radek? versus Radši bude tvrdit, že VB.NET je lepší než python, protože používá volitelné dvojtečky, když Python používá volitelné středníky, stejně jako ostatní jazyky. To je zajímavé, tímhle způsobem by jste mohl polemizovat sám se sebou ještě dosti dlouho... A kde jste prosím sebral to svoje Proc tvrdis, ze je dvojtecka jako oddelovac prikazu ve VB.NET lepsi, nez strednik, ktery pouziva Python a ostatni bezne jazyky? Prosím ocitujte, kde to tvrdím? Víte, já myslím, že nejste schopen rozeznat výmysly od reality, dokonce ani od toho, co jste napsal sám - ale nejsem psychiatr, takže o tom s nikým nehodlám polemizovat.
To je zajímavé, tímhle způsobem by jste mohl polemizovat sám se sebou ještě dosti dlouho... Na tom neni nic zajimaveho,to jsem prohlasil, protoze to Python neumel, Python neni mrtvy jazyk,vyviji se a ted uz to umi, jak jsem napsal, rada mych kritickychpripominek jiz davno ztratila platnost, jak je videt, stale ti nejdena rozum, jak se muze neco vylepsovat .Prosím ocitujte, kde to tvrdím?Promin, ale tyhle diskuze s tebou vedu radu masicu a to i na mistech,kde se prispevky nezachovavaji, takze to dohledavat nebudu. Udelam necolepsiho, ja se te na to zeptam a muzes ucinit nove prohlaseni.Je vyhodou Pythonu vuci VB.NET ze prikazy umoznuje ukoncovat strednikyoproti dvojteckam ve VB.NET? ANO nebo NETesim se na odpoved . Mam pripraveny dalsi, az odpovis na tuhle.
...takze to dohledavat nebudu... ...mam pripraveny dalsi, az odpovis na tuhle..... To, že otáčíte svoje vlastní výroky je Vaše věc, ale to co tvrdíte o mých výrocích byste měl dokázat, pokud se mnou vůbec chcete diskutovat dále. Podotýkám, že jde o podmínku nutnou, nikoliv postačující.
Presne podle ocekavani, vyhybava odpoved a snaha zabranit dalsi diskuzi,protoze vis, ze tve tvrzeni je nedohledatelne . Zkusim to jeste jednou:Je vyhodou Pythonu vuci VB.NET ze prikazy umoznuje ukoncovat strednikyoproti dvojteckam ve VB.NET? ANO nebo NE
Moje řeč. Neznám ani Python ani VB.NET (znám ale .NET), ale z toho, co je zde psáno je Python i VB.NET(.NET) silně typovaný a nemají si co vyčítat. Jiná věc je okamžik, kdy je dané proměnné přiřazen typ a zda ten typ jde za běhu programu měnit. Tohle je patrně ta vlastnost, dle které dělíte jazyk na statický a dynamický (směrováno k diskuzi výše). Pokud smím uvést svůj názor, tak právě dynamické chování má jednu zásadní nevýhodu: Pouhým pohledem na zdroják programu nemohu zjistit, jaký typ v daném místě daná proměnná bude mít. Šikovný programátor si to jistě ošetří, ale co chudák začátečník, který se třeba po několika měsících podívá na ne příliš dobře napsaný program? Prostě díky typovosti toho jazyka si ty typy tak jako tak hlídat musíte. Co se týče flexibility, tak tu řeší docela obstojně objektově orientovaný základ typů jazyka. V .NET (a tím i VB.NET) je každý typ potomkem třídy System.Object (tedy alespoň virtuálně - zde svou roli hraje ještě boxing), takže flexibilita je zajištěna maximální i přes staticky definované typy.
Ovšem. V zásadě musíte nechat kód proběhnout až do daného místa, aby jste to mohl vědět s jistotou. Další problém je, že když se v Pythonu uklepnete při přiřazení do této proměnné, zavedete místo toho do programu novou a hodnota za Vašeho přiřazení zde skončí. Něco takového se obtížně hledá, dokud si překlepu nevšimnete. Taková typová kontrola je typovou kontrolou jen napůl a začátečníka nevede k dobrým programovacím návykům. Krom toho je svého druhu stejně unikátní, jako jako deklarace polí ve VB.NET od nuly.V Pythonu figuruje řada procedur, které nepatří do rozhraní žádné funkce, ba dokonce nejsou ani funkcemi, ale příkazy, které jsou součástí generické syntaxe jazyka (např. "print"). V nekonformnosti a nekonzistentnosti si nemá Python s VB.NET skutečně mnoho co vyčítat - na rozdíl od Pythonu je VB na platformě Windows dávno etablován a patří zde k nejoblíbenějším programovacím jazykům, pro svoji explicitnost a neformálnost zde slouží jako jakési programátorské Esperanto.
...které nepatří do rozhraní žádné funkce... Chtěl jsem samozřejmě napsat "...které nepatří do rozhraní žádné třídy..."
Ano, stejne musis nechat kod probehnout az do daneho mista, abys vedel s jistotou, jakou ma vubec hodnotu .Další problém je, že když se v Pythonu uklepnete při přiřazení do této proměnné, zavedete místo toho do programu novou a hodnota za Vašeho přiřazení zde skončí. Něco takového se obtížně hledá, dokud si překlepu nevšimnete.Je pravda, ze je mozno si takto omylem zavest do programunovou promennou, ale plati to jen a prave pri prirazeni. Ve statickem jazyku stejnym omylem muzes pouzit jinou promennou.Neni pravda, ze se to obtizne hleda. Pouzivam intenzivne tridynamicke jazyky, Python, PHP a JavaScript a nikdy mi to nezpusobilo nejake vazne problemy. To uz jsem se vickrat spalilna = v podmince misto ==. I to se da snadno dohledat, aletreba zrovna tato chyba je v Pythonu vyloucena, resp. na ni Python upozorni, takze neni nutno ji hledat. Ve skutecnosti diky jednodussi syntaxi nenabizi Python tolik prilezitosti udelat tolik ruznych chyb jako staticke jazyky. Plati to obecne a jeto jeden z duvodu, proc je vyvoj programu v dynamickem jazyku rychlejsi a efektivnejsi, coz je mimochodem zas jeden z duvodu, proc se Python puziva i jako prototypovy jazyk.V nekonformnosti a nekonzistentnosti si nemá Python s VB.NET skutečně mnoho co vyčítatMas-li nekonzistentnosti na mysli, ze neni ciste OOP, tak to je pravda, je to hybridni jazyk stejne jako Java nebo C#. Prelozim-lisi slovo konformni jako shodujici se s necim, tak to neni zadny jazyk, protoze kazdy jazyk je necim originalni. Prelozim-li si tojako podobny necemu, tak je podstatne podobnejsi Clike jazykum nez VB.NET.na rozdíl od Pythonu je VB na platformě Windows dávno etablovánNo aby ne, kdyz VB i Windows jsou od MS . Na oplatku je Pythonmultiplatformni a krome vlastniho prostredi jej lze pouzivat i v prostredi .NET a Java.Krom toho je svého druhu stejně unikátní, jako jako deklarace polí ve VB.NET od nuly.Ty v tom mas teda hokej. Dynamicky silne typovy jazyk neni nijak unikatni, narozdil od deklarace poli od nuly, coz bych neoznacil jako unikatni, ale jako stupidni .V Pythonu figuruje řada procedur, které nepatří do rozhraní žádné funkce, ba dokonce nejsou ani funkcemi, ale příkazy, které jsou součástí generické syntaxe jazyka (např. "print").Ano, Python podporuje jak OOP tak proceduralni tak funkcionalniprvky programovani. Kazdy z techto stylu ma sve vyhody a hodi sepro ruzne situace a jejich podpora cini Python praktickym jazykem. Protoze proc delat neco tezkopadne v OOP, kdyz to jde snadno jinak?
Jiná věc je okamžik, kdy je dané proměnné přiřazen typTo je spatny pohled na vec, pohled cloveka, ktery zna staticky jazyk, ale nezna a nerozumi dynamickemu jazyku. V dynamickem jazyku promenna nema zadny typ, nikdy. V dynamickem jazyku nese datovy typ hodnota.dynamické chování má jednu zásadní nevýhodu: Pouhým pohledem na zdroják programu nemohu zjistit, jaký typ v daném místě daná proměnná bude mítTo je pravda, ale neni to nevyhoda, to je opet jen pohled cloveka,ktery zna jedine paradigma. Nebudu tvrdit ze je to naopak vyhoda, takto na to nahlizet je chyba, neni mozno to takto hodnotit.Neni to chyba, je to vlastnost. V dynamickem jazyce promenna muze obsahovat ruzne hodnoty ruznych datovych typu. Tvrdit ze je to nevyhoda je nerozumne stejne, jako tvrdit, ze nevyhodou promenne je, ze nelzepouhym pohledem rict, jakou ma hodnotu, protoze muze mit ruzne hodnoty.V dynamickem jazyce muze mit ruzne hodnoty ruznych typu, ve statickemruzne hodnoty jednoho typu. To je zakladni vlastnost jazyka, na zakladektere se tyto jazyky deli na staticke a dynamicke. Oznacit tuto vlasnostza chybu znamena za chybu oznacit dynamicke jazyky, a to je nesmysl.Ja chapu, ze jsi zbehly v imperativnim a statickem programovani a zenerozumis prvkum jazyku, ktere pouzivaji odlisny nahled na vec. Takovychnahledu je vic, muzes se setkat s programovanim a jazyky logickymi, funkcionalnimi a podobne. To ze s nimi nemas zkusenosti a neumis je pouzivat jeste neznamena, ze jejich vlastnosti jsou spatne a chyba.Šikovný programátor si to jistě ošetří, ale co chudák začátečník, který se třeba po několika měsících podívá na ne příliš dobře napsaný program?Ale ne, to neni potreba si osetrovat, to je proste vlastnost, promenna muze mit hodnoty ruznych datovych typu, a prc by take nemohla, vzdyt jeto uzitecne, tecka. Zacatecnici s tim mit problem nebudou, naopak, dynamicke jazyky jsou jednodussi a pro zacatecniky pristupnejsi a jsouu nich oblibenejsi. Mezi dynamicke jazyky patri treba JavaScript nebo PHP.Jsou to prave staticke jazyky, ktere jsou ze sve podstaty slozitejsi.Co se týče flexibility, tak tu řeší docela obstojně objektově orientovaný základ typů jazyka. V .NET (a tím i VB.NET) je každý typ potomkem třídy System.Object (tedy alespoň virtuálně - zde svouroli hraje ještě boxing), takže flexibilita je zajištěna maximálníi přes staticky definované typy.To jsem tedy nepochopil. Rozumime pod pojmem flexibilita to same, tedy pruznost? OOP nijak pruznost dynamickych jazyku neresi. Toze datove typy jsou potomkem jedne tridy nic neresi. OOP ostatneumoznuji jak staticke tak dynamicke jazyky.
To je spatny pohled na vec, pohled cloveka, ktery zna statickyjazyk, ale nezna a nerozumi dynamickemu jazyku. V dynamickemjazyku promenna nema zadny typ, nikdy. V dynamickem jazykunese datovy typ hodnota.Celou dobu svůj špatný pohled na věc připouštím. Navíc vyloženě toužím se od Tebe něco dozvědět. Navíc nemám problém s chápáním složitějších věci. Mám představu i o ostatních stylech (jak logickém, tak funkcionálním) a nemám problém s jejich chápáním.To, že se na proměnnou díváš jako na symbol ukazující na hodnotu (nesoucí typ) je zhlediska nevýhod, které jsem uvedl irelevantní. Vysvětli mi prosím ten špatný pohled na věc. Jestli sis tím také prošel, jak jsi někde psal, tak bys to měl zvládnout levou zadní. Dej nějaký příklad, který jasně ty odlišné principy demonstruje.Zacatecnici s tim mit problem nebudou, naopak,dynamicke jazyky jsou jednodussi a pro zacatecniky pristupnejsi a jsouu nich oblibenejsiNemám ten pocit, těch run-time chyb, co jim to pak hází a které by jim překladač statického jazyka včas oznámil. Zkušený programátor ten problém nemá, to je pravda. nevím, nad kolika začátečníky si bděl. Já už u třech lidí docela zjevně pozoroval, to co říkám.Flexibilitou rozumím minimální potřebu pomocných nebo redundantních konstrukcí pro řešení nějakého problému. Jazyk (resp. prostředí) je tím pružnější, čím více druhů problémů dokážou přímočaře řešit. Já také nedávám OOP do souvislosti s dynamickými/statickými jazyky, jen říkám, že mám pocit, že dobrý OO návrh je schopen poskytnout dobrou pružnost.
Pane Mach, můžeme se celkem smysluplně bavit o rozdílech a výhodách C# versus VB.NET - ale stran srovnání VB.NET a Pythonu týče se obávám, že to velký smysl nemá - zvlášť pod tímto článkem ne - protože Python je prostě jiná liga a je určen jiné cílové skupině pro řešení jiných problémů. Slovu JINÉ bych zde preventivně nepříkládal jakékoliv hodnotící stanovisko, ale určitě se shodneme na tom, že Python třeba není ideální pro realtime grafiku, grabování videa, vývoj a práci s COM objekty, složité GUI aplikace s MDI formuláři apod. záležitosti, se kterými se zde budeme postupně seznamovat. Lidé kteří se zajímají o VB.NET obvykle poměrně dobře vědí, proč se neinvestují čas do studia Pythonu. Ten, kdo se rozhodl učit VB.NET tak učinil proto, že jde o snadný způsob seznámení s prostředím .NET, s platformou dobře optimalizující výkon a nároky na osvojení, s výbornou a konzistentní základnou rozsáhlých knihoven a prostředí pro tvorbu webových aplikací, širokou vývojářskou a studijní základnou , atd.. Python je určen k něčemu dosti jinému a v tom směru může plnit svou úlohu velmi dobře, ale je to stále "ten" dosti svérázný pomalý skriptovací jazyk s nevalnou podporou GUI Windows, což je vůči VB.NET výrazný handicap. Zatím byl Python implementován v Javě i .NETu (Jython, IronPython) a může na nich být jako jazyk i seriózně používán - ale na to, aby s těmito platformami mohl vážně soupeřit bych počkal do doby, až budou tato prostředí pro změnu implementovány v Pythonu. Domnívám se, že to v dohledné době nehrozí. Co se týče změny Vašich názorů na Python, tam neřeším, zda jej považujete za jazyk "ve své kategorii" nejlepší (to jste tvrdil už před rokem, jen jste tu kategorii nespecifikoval) - to nad čím se pozastavuji je posun Vašeho tvrzení, že Python není vhodný jazyk pro začátečníky, kde jste otočil o 180o, jakmile jste tím začátečníkem přestal být (...nemam problem se vyznat treba v 20 KB zdrojaku PHP, ale v 5 KB zdrojaku Pythonu ano. Prave kvuli vynucenemu formatovani...) Nyní jste si na Python konečně zvykl, to co jste Pythonu nejvíce vyčítal dnes považujete za jeho největší přednost a zdá se, že jste pevně odhodlán své unáhlené soudy zopakovat s VB.NET. Říká se, že moudrý člověk se ze svých chyb poučí....
Pan Mach je něco jako fanatik a dogmatik .o)) Nedá si říci a furt dává své příspěvky pod článek, který nemá s pythonem nic společného :o) Pane Petřík, to máte těžké co? Nejdříve na Vás nadávají, pak Vás linčují a nakonec Vás dostanou tímto ;) Žádný konstruktivní příspěvek, jen samé dohadování ;) Jestli to takhle půjde dál, tak už nemá vůbec smysl tady diskuze....
Zas s tím tak velký problém nemám - nikdo zde přece nemusí odpovídat a ostatní čtenáři se zkrátka musí naučit, že příspěvky podepsané určitými jmény nemusí nutně korespondovat s aktuálním tématem. Když se ostatní čtenáři mezi sebou navzájem včas neumravní, je to víceméně jejich problém. Diskuse pod články přece slouží primárně jim, já jsem tu jen jeden z debatérů a na diskusích tento seriál nestojí. Současně bych chtěl tímto požádat čtenáře, aby mi neposílali odborné dotazy do pošty, protože prioritou je pro mě zdopovídat na ně zde - jednak schránku nevyřizuji pravidelně, jednak je zde mnohem větší pravděpodobnost, že někdo na problém odpoví dříve, a konečně případná odpověď může být užitečná i pro ostatní a neskončí v nějakém soukromém mailu.
Linčovat se píše lynčovat
Na svou obranu musim uvest, ze tohle me naucil pan Petrik, ktery se presne taktochova v diskuzi pod clankem o Pythonu . Jinak byt offtopic nepatri mezi mestandardni chovani .
Tenhle graf vykonu je od tebe pekny podvod na ctenare, urcite te za to budou mit radi.Ze jde o vedomy podvod je jasne z toho, ze jsi neuvedl zdroj a i ten obrazek jsizkopiroval na vlastni web, aby to nebylo dohledatelne. Jenze ja jsem si to stejnedohledal. http://www.flat222.org/mac/bench/Nepochybne sis precetl, ze autor byl zadan o jejich aktualizaci, ale ze odpovedel:This page will not be updated again. Tudíž se tu vědomě oháníš starými neaktuálními věcmi. Vzhledem k tomu, ze jsem te opakovane upozornoval na to, ze Python prosel v poslednich letech vyraznymi optimalizacemi na vykon, každá nováverze je rychlejší než předchozí, je to graf, ktery nema žádnou vypovídací hodnotu,protože testy byly provedeny na Pythonu 2.1.3, což je několik generací starý interpret.Krom toho pro Python existuje optimizer vykonu Psyco, ktery se pouziva tak, ze nazacatek zdrojaku napises import psyco; psyco.full(), coz pouzije kazdy, pro koho jevykon kriticky.Na stránce jsou kódy jednotlivych benchmarku, takze jsem je vzal, ty pythoni upravilpro pouziti s psyco a provedl testy znova:Python: 2.3.4 + Psyco 1.4Perl: 5.8.3Java: 1.4.2C++: gcc 3.3.2, překlad s optimalizací -O3 Jake prekvapeni, Python je ve trech testech nejrychlejsi (pravdepodobne jen proto, zedva zdrojaky C++ se mi nepovedlo prelozit) a ani v jednom neni nejpomalejsi. Takzeasi tolik k tvemu podvodnemu obrazku. Python je naopak az prekvapive rychly. Docelaby me zajimalo i srovnani s VB.NET. Dokazes ty jednoduche testiky prevest do VB.NETa nebo je to mimo tve schopnosti?Odpoved na ostatni veci je u dilu 24.
To bude drobne nedorozumneni. Typy jsou v poradku,Python je ostatne silne typovy jazyk a pokus deleniretezce cislem vyvola vyjimku:
>>> "abc"/10Traceback (most recent call last): File "", line 1, in ?TypeError: unsupported operand type(s) for /: 'str' and 'int'Ale uz je mozno ho treba, diky pretizenemu operatoru nasobit:>>> "abc"*3'abcabcabc'Problem je v statickem typovani. Staticke typovani jazyk velmikomplikuje a zeslozituje, na tom se myslim zhodnem vsichni, vcetnepana Petrika, ktery napr. prohlasil, ze prace s poli je ve VB.NETslozitejsi prave kvuli statickym typum. Nutno podotknout zemnohem slozitejsi, staci nahlednout do diskuze 20 dilu, kdeukazuji kompletne praci s poli v Pythonu a porovnat to se, zatim,tremi dily o praci s poli ve VB.NET.Staticke typy nedelaji slozitou jen praci s poli, takto komplikujivsechno. Pri vyuce programovani nejde o vyuku jazyka. Jazyk je jennastroj, ne kterem se vyuka programovani demonstruje. Proto jezadouci a nutne, aby byl jazyk pro vyuku programovani co nejjednodusi.Treba proto, ze kantor ma na vyuku jen velmi omezeny casovy prostor.Kdyby mel ucit programovani ve VB.NET, tak se mu to zvrhne ve vyukuobskurniho jazyka VB.NET a na vyuku samostatneho programovani sevubec nedostane. Zaci by rovnez pri zadanych ulohach zapasili sesamotnym jazykem, napr. komplikovanou deklaraci pole, misto abyresili samotnou ulohu. To vsechno je pritom zbytecne. Jsou tu jazyky,ktere jsou jenodussi, snaze pochopitelnejsi a pro vyuku vhodnejsi.Programovani jako takove je samo o sobe intelektualne dosti narocnepro lidi, kteri s tim dosud neprisly do styku. Je nutno je doslovanaucit nove myslet, analyticky. Je nutno je naucit algoritmizovatulohy, je nutno jim vysvetlit systemove zavislosti jak pocitacpracuje, napr. proc je mozno zapisovat na konec souboru, ale ne doprostred, jako v textovem editoru. Je toho moc co je potreba pochopit, naucit se a porozumet. A skutecne to neni nutne komplikovattezkopadnym a slozitym jazykem.Ve vetsine jazyku pujde o chybu, v tech, ktere nekontrolujui typy se ale odhali az za behu programu, coz je dost pozde.Musim te opravit. U jazyku, ktere kontroluji typy staticky semuze zpravidla dojit na typovou chybu pri prekladu, take ale ne vzdy. U jazyku ktere kontroluji typy dynamicky se na to dojde behem chodu programu. Tvrzeni ze prijt na to pri choduje dost pozde je nicim nepodlozene. Na ceske skole se objevilnaopak odborny nazor, ze je to naopak. Ze je silne motivujici,kdyz program castecne funguje a dela aspon neco, nez dojde kchybe a je prerusen vyjimkou oproti stavu, kdy ho neni stale mozno prelozit pro radu chyb a nedela vubec nic. Krom toho,to ze se ti nakonec podari program prelozit neznamena vubecnic, jen ze jsi ho syntakticky napsal spravne. Jeste v nem muzebyt, a bude, rada dlasich moznych chyb v navrhu, logice, algoritmech a postupne. U dynamickeho jazyka tohle vsechno resispostupne, jak pises program a zkousis si ho. Jeho ladeni je takmnohem jednodusii a prirozenejsi oproti stavu, kdy musis napsatprogram natolik kompletne aby sel vubec prelozit a teprve pakmuzes pristoupit k jeho ladeni. A jeste je v tom jeden zadrhel. Jak jsem uvedl, kontrola pri prekladu ti kontroluje syntaxi zapisu, ne logiku a dalsi veci.Hacek je v tom, ze staticke jazyky maji syntaxi komplikovanou,takze je to predevsim jen rada moznsosti, jak zavlest do programuhromadu chyb.Oproti tomu Python na to jde naopak. Ten se snazi syntaxi maximalnezjednodusit a zprehlednit, cimz vylucuje radu syntaktickych chyb vubec udelat.A psledni douska. Casu je malo a cas jsou penize. Psat programy v Pythonu (a obecne dynamickem jazyku) je mnohem snazsi a rychlejsinez VB.NET (a obecne statickych jazycich). To je dano podstatou tech jazyku. Ty dynamicke jsou mnohem prirozenejsi a primocarejsi, lepese v nich dela. A take se snadneji pouzivaji, zadne preklady, zadnelinkovani knihoven a dalsi nesmysly, nicim z toho neni zak obtezovan.A to je dalsi zasadni vyhodou. Takze i z duvodu casove uspory je vhodnjsi pouzit pro vyuku zakladu programovani jazyk jako Python.
>>> "abc"*3'abcabcabc'Problem je v statickem typovani. Staticke typovani jazyk velmikomplikuje a zeslozituje, na tom se myslim zhodnem vsichni, vcetnepana Petrika, ktery napr. prohlasil, ze prace s poli je ve VB.NETslozitejsi prave kvuli statickym typum. Nutno podotknout zemnohem slozitejsi, staci nahlednout do diskuze 20 dilu, kdeukazuji kompletne praci s poli v Pythonu a porovnat to se, zatim,tremi dily o praci s poli ve VB.NET.Staticke typy nedelaji slozitou jen praci s poli, takto komplikujivsechno. Pri vyuce programovani nejde o vyuku jazyka. Jazyk je jennastroj, ne kterem se vyuka programovani demonstruje. Proto jezadouci a nutne, aby byl jazyk pro vyuku programovani co nejjednodusi.Treba proto, ze kantor ma na vyuku jen velmi omezeny casovy prostor.Kdyby mel ucit programovani ve VB.NET, tak se mu to zvrhne ve vyukuobskurniho jazyka VB.NET a na vyuku samostatneho programovani sevubec nedostane. Zaci by rovnez pri zadanych ulohach zapasili sesamotnym jazykem, napr. komplikovanou deklaraci pole, misto abyresili samotnou ulohu. To vsechno je pritom zbytecne. Jsou tu jazyky,ktere jsou jenodussi, snaze pochopitelnejsi a pro vyuku vhodnejsi.Programovani jako takove je samo o sobe intelektualne dosti narocnepro lidi, kteri s tim dosud neprisly do styku. Je nutno je doslovanaucit nove myslet, analyticky. Je nutno je naucit algoritmizovatulohy, je nutno jim vysvetlit systemove zavislosti jak pocitacpracuje, napr. proc je mozno zapisovat na konec souboru, ale ne doprostred, jako v textovem editoru. Je toho moc co je potreba pochopit, naucit se a porozumet. A skutecne to neni nutne komplikovattezkopadnym a slozitym jazykem.Ve vetsine jazyku pujde o chybu, v tech, ktere nekontrolujui typy se ale odhali az za behu programu, coz je dost pozde.Musim te opravit. U jazyku, ktere kontroluji typy staticky semuze zpravidla dojit na typovou chybu pri prekladu, take ale ne vzdy. U jazyku ktere kontroluji typy dynamicky se na to dojde behem chodu programu. Tvrzeni ze prijt na to pri choduje dost pozde je nicim nepodlozene. Na ceske skole se objevilnaopak odborny nazor, ze je to naopak. Ze je silne motivujici,kdyz program castecne funguje a dela aspon neco, nez dojde kchybe a je prerusen vyjimkou oproti stavu, kdy ho neni stale mozno prelozit pro radu chyb a nedela vubec nic. Krom toho,to ze se ti nakonec podari program prelozit neznamena vubecnic, jen ze jsi ho syntakticky napsal spravne. Jeste v nem muzebyt, a bude, rada dlasich moznych chyb v navrhu, logice, algoritmech a postupne. U dynamickeho jazyka tohle vsechno resispostupne, jak pises program a zkousis si ho. Jeho ladeni je takmnohem jednodusii a prirozenejsi oproti stavu, kdy musis napsatprogram natolik kompletne aby sel vubec prelozit a teprve pakmuzes pristoupit k jeho ladeni. A jeste je v tom jeden zadrhel. Jak jsem uvedl, kontrola pri prekladu ti kontroluje syntaxi zapisu, ne logiku a dalsi veci.Hacek je v tom, ze staticke jazyky maji syntaxi komplikovanou,takze je to predevsim jen rada moznsosti, jak zavlest do programuhromadu chyb.Oproti tomu Python na to jde naopak. Ten se snazi syntaxi maximalnezjednodusit a zprehlednit, cimz vylucuje radu syntaktickych chyb vubec udelat.A psledni douska. Casu je malo a cas jsou penize. Psat programy v Pythonu (a obecne dynamickem jazyku) je mnohem snazsi a rychlejsinez VB.NET (a obecne statickych jazycich). To je dano podstatou tech jazyku. Ty dynamicke jsou mnohem prirozenejsi a primocarejsi, lepese v nich dela. A take se snadneji pouzivaji, zadne preklady, zadnelinkovani knihoven a dalsi nesmysly, nicim z toho neni zak obtezovan.A to je dalsi zasadni vyhodou. Takze i z duvodu casove uspory je vhodnjsi pouzit pro vyuku zakladu programovani jazyk jako Python.
Nehodlám polemizovat s Vašimi rok starými i současnými výrokyTy s nimi pro jistotu nehodlas polemizovat vůbec, už jsi to zkusil a visze neobstojis .Bloky kódu se neukončují středníkem, dvojtečka je volitelná.Uvádět že bloky kódu se neukončují středníkem jako výhodu VB může jendebil. Nedělá to žádný mě známý jazyk. Máš-li tím na mysli příkazy, taknaopak všechny mě známé jazyky používají středník, ať povinně jako Java čiC nebo nepovinně, jako JavaScript nebo Python. Tedy s výjimkou VB.NET,který nesmyslně používá dvojtečku, která se obtížně píše přes Shift.Ukončovat s ní každý příkaz je pruda. Kromě toho i typografický význam znakudvojtečka je něco uvádět, ne končit, k tomu slouží právě znak středník.Tohle je jen další případ nesmyslnosti syntaxe VB.NET. Jestli tahlenesmyslnost je pro tebe důvod proč používat VB.NET, tak fajn, ale chápej,že tím nikoho nepřesvědčíš. Když vydáváš nevýhody jako výhody (zde např.i problém s devítkou), pak jsou veškerá tvá tvrzení nedůvěryhodná.syntaxe VB.NET lze psát inline kód podobně, jako v C# (čehož se využívá veVBSkriptu)Člověče, již jednou jsi se zde dopustil trapně nesmyslného tvrzení o jinýchjazycích, aniž bys to byl schopen na rovinu přiznat a už to děláš zase.Proč mluvíš o něčem, co neznáš a nedovedeš to ani pojmnovat?VBSkript nic není a VB Script nemá s VB.NET kromě tvůrce nic společného, stejnějako nic společného nemá JavaScript s Javou, jsou to různé jazyky. Že lzeněco dělat ve VB Scriptu je irelevantní ve vztahu k VB.NET a vice versa.Jestliže lze ve VB.NET psát inline kód, proč se to nepoužívá ve VB.NET?) Buď to nejde a nebo to k ničemu není .Case-insensitive syntaxe. Kterou musí opravovat IDE, další ukázka špatné vlastnosti. Vytváří se takzávislost na IDE, které umí opravovat syntaxi, což vnímám navíc jako pěknouprudu (myslím že zde nejsem jediný, koho sere, když mu syntaxi opravujeWord). Navíc já chci, aby se velikost písmen držela zavedených konvencí,tedy např. název třídy začíná velkým písmenem, její atributy, třeba metodymalým písmenem. Jenže chtít dodržování konvencí od obskurního jazyka jakoVB.NET, to je trochu moc, že? Dále to znepřehledňuje kód a hlavně, brání tospolupráci s ostatními jazyky .NET, které klidně mohou mít vlastnostipojmenované shodně s rozlišením velikostí písmen.Python typové deklarace nejen neumožňuje, on je ani nepotřebuje. Pythonje dynamický jazyk a tohle je přirozená vlastnost dynamických jazyků, nenedostatek, jak se snažíš vydávat. S tím překlepem máš pravdu jen částečně,může se to stát, ale jen v případě přiřazení hodnoty, jinak ne. Což jemenšinový případ. Na druhou stranu svou dynamičností Python umožňuje mnohemjednodušší konstrukce při práci s daty (viz můj příklad práce s poli i tvůjkomentář, kde to vysvětluješ právě dynamičností Pythonu), čímž se omezujepočet řady dalších chyb i zpřehledňuje samotný kód, takže celkově to mákladný přínos. Ne nadarmo se dynamické jazyky považují za další vývojovýstupeň a high level jazyky vhodné pro svou snadnost používání právě prolaiky a začátečníky.A dále, Python sice nepodporuje statické typy, které mají hlavně význam prooptimalizaci a rychlost kódu (za cenu velkých omezení a nepružnosti jazyka)a na druhou stranu má výbornou podporu dynamické typové kontroly, kteránaopak zabraňuje záhadným chybám. Python je jazyk dynamický, stejně jakotřeba PHP, ale zároveň a na rozdíl od PHP má silnou typovou kontrolu. Pythonje jazyk dynamický se silnou typovou kontrolou, to je ten správnýkompromis, který vede k snadno použitelnému a bezpečnému jazyku. Statickétypy ve skutečnosti nic neřeší, stačí se podívat např. na jazyk vlastnostípřesně opačných, než má Python, na jazyk statický se slabou typovoukontrolou, na jazyk C a jemu podobných. V těchto jazycích se ve skutečnostiskrývá řada chyb, které nejsou odhaleny právě kvůli špatné typové kontrole.Bloky kóduAno, v Pythonu se skutečně nemusí řešit, jsou dány přehledně a intuitivněodsazením kódu. Že to je nejlepší možný způsob dokazuje to, že všichniprogramátoři svůj kód odsazují, aby se v něm vyznali, přestože nemusí. Akdyž už to dělají, proč by se podle toho neměl řídit i jazyk? Vždyť je tosamozřejmé, tahle vlastnost Pythonu je progresivní moderní prvek. Ano,zkostnatělí programátoři to z prvu nechápou, zdá se jim to divné (sám jsemsi tím prošel), ale zkušenosti mi ukázaly, jak je to ve skutečnosti skvělávěc.Tvá ukázka se do Pythonu dá přepsat takto:class CTest: def __init__(self): for i in xrange(10): if i>5: print iAno, ve VB.NET jde zapnout slabá typová kontrola, dokonce některé knihovnyjsou slabě typované, k čemu to vede viz výše , to je opravdu výhoda.Dovolím si předpokládat, že ti občas programy moc nefungují, takže vypneštypovou kontrolu a je to , chápu proč preferuješ takový jazyk, můžeš takodfláknout návrh programu, ale to je přesně to, co se v hodináchprogramování přesně vyučuje .Předávání parametrů má Python vyřešeno, jak nevíš, velmi dobře a lze v něm snadno předávatnejen parametry jednoduché, ale i klíčové a u obou v libovolném předemnedefinovaném množství nebo jako volitelné s předdefinovanými hodnotami.Tudíž přinejmenším se všemi výhodami, které přisuzuješ VB.NET.Deklarace políEvidentně ti stále nedošlo, v čem se VB.NET liší od ostatních jazyků, budižto vnímáno jako důkaz, jak VB.NET svou obskurností křiví chápáníprogramátorům kteří se pak nedokáží orientovat ani v jednoduchýchzáležitostech ostatních jazyků. Vydávat to za výhodu VB, kvůli které hopreferuješ, haha . Ve skutečnosti ho preferuješ proto, že nic jinéhoneumíš, na rozdíl ode mne, který s Pythonem nezačínal a přesto si jej vybrali při znalosti řady dalších jazyků.Ve skutečnosti zmíněné jazyky také indexují pole od nuly a VB.NET se tímneliší (konečně), liší se deklarací počtu prvků pole, kdy jeden prvek senesmyslně deklaruje jako 0. Tohle není žádná featura, ale chyba, artefaktVB minulosti, kdy se pole od 0 neindexovala, což byla také ptákovinanejvyššího stupně, kterou bys dnes také hájil a vychvaloval, kdyby tomuVB.NET neudělalo přítrž. Jenže ostatní syntaxe VB.NET je s touto změnounekonzistentní, což dělá jazyk zmatečný a nepřehledný, což se dá jednodušedokázat na ukázce, kterou nebudeš chtít předvést:Předveď mi program, kterému při spuštění jako parametr předáš libovolnědlouhý řetězec, který v cyklu for převeď pomocí indexů na pole. Tedy vPythonu tohle:import systext=sys.argv[1]delka=len(text)pole=[None] *delkafor i in xrange(delka): pole[i]=text[i]Jsem si vědom toho, že to jde udělat různě, v Pythonu existují jednoduššícesty jako např:import syspole=[]for c in sys.argv[1]: pole.append(c)Nebo dokonce jen přetypováním:import syspole=list(sys.argv[1])Ale já chci, abys předvedl práci s indexy a explicitními rozměry. Amimochodem, neustále mi připomínáš, že jsem Pytonu vytýkal neohrabanost asložitost, ale to bylo v době, kdy jsem takový úkol uměl řešit jen tímprvním způsobem a nebyl si vědom toho, že se škrábu levou rukou za pravýmuchem přes hlavu, i proto jsem svůj názor, kromě řady uvedených důvodů korigoval. Syntaxe C# je možná zdánlivě poněkud redundantní, ale to není případPythonu. Krom toho je zajímavé, že Pythonu vyčítáš že je implicitní (cožmimochodem není pravda a nikdy jsi to nepodpořil něčím konkrétním) a nyníza implicitnost oslavuješ VB.NET . Nevidíš si ani na špičku nosu azapomínáš, kde jsi co tvrdil .Ad nativní a bohaté funkce. Jak jsi určitě postřehl, tak bohatost a kvalita prostředí byl jeden zdůvodů, který mě přiměl o k tvrzení, že Python je nejlepší jazyk ve svékategorii, přestože jsem ho ze syntaktického hlediska vystavil, částečněneoprávněně velké kritice. Klasické konstrukce jako GOTO...ani nemusíš psát dál, konkrétně na tento příkaz je uvalena všeobecnáklatba, protože se dobře ví, jaké pohromy dokáže způsobit v nezkušenýchrukou laiků a začátečníků. Většina jazyků nahradila tento příkaz nějakoubezpečnější konstrukcí. Jestli VB.NET ne, je to další z řady důvodů, pročpro laiky a začátečníky VB.NET ne. Jestli ano, a ty se bez ní stejněneobejdeš, ukazuje to, že neumíš navrhovat programy a jsi odkázán na tutoberličku, což ti brání přejít na jiné jazyky. Jak důvod osobní preferenceVB.NET to pak obstojí, ale zároveň je to důvod, proč se mají začátečnícitomuto jazyku širokým důvodem vyhnout a proč není vhodný jako první jazykpro výuku programování, stal by se zároveň nedobrovolně i posledním.Flexibilní větvení pomocí elseif Je v pythonu implementováno jako příkaz elif. Python jde ale dál anapříklad rozšiřuje příkaz cyklu while a for o klauzuli else, která umožňujerozlišit, zda cyklus proběhl celý (přirozeně) a nebo byl přerušen pomocípříkazu break a vykonat tak snadno bez používání pomocných proměnných kódjen v případě, že cyklus proběhl v pořádku. To je jen jedna z mnohapříjemných pomůcek Pythonu činící programování radostnějším. To samé setýká i podmínek. Jestli nechápeš v čem je to výhodné, předvedu ti to naukázkách a požádám tě o implementaci toho samého chování ve VB.NET. Myslímže to radši zázračně pochopíš a ukázky nebudeš chtít vidět .Že srovnáváš neustále VB.NET s C# je hezké, ale porovnávej ho s Pythonem.Jestli nemůžeš, protože Python neznáš, nechápu, jak se k němu můžeš takvehementně vyjadřovat a kritizovat. Co z uvedeného myslíš že Pythonpotřebuje a neumí? Jak snadno se v Pythonu dělají callbacky pro GUI nakteré ty potřebuješ jakési delegáty, což já znám jako jeden ze standardníchnávrhových vzorů, ale kdo ví co tím myslíš ty, jehož terminologie jeobdivuhodná, kdy delegáty přirovnáváš k atributům jak nazýváš modifikátory,to je fakt těžko říct. Jak naprosto snadno a intuitivně se v Pythonu dělajícallbacky jsem ti předvedl, máš-li na mysli něco jiného, předveď ukázku.Polopatičtější názvosloví je ve skutečnosti bordel v názvosloví. Přesně to,co jsem (omylem) vyčítal v Pythonu. Jak se ukázalo, v Pythonu bylo nakonecpřesné, ale je to, jak předvádíš, značný problém VB.NET. To je mimochodemdůvod, proč používáš terminologii, které nikdo nerozumí, proč modifikátorůmříkáš atributy, přestože tohle je zavedený pojem v OOP pro členy tříd apodobně. To je důvod, proč si myslíš, že třídy dědí privátní členy znadřazených tříd .Co se tyče výjimek, tak ty má Python velmi dobře propracované. V první řadějsou objektové, takže, každá výjimka je instance nějaké třídy výjimky, cožumožňilo vytvořit stromovou hierarchii výjimek. Mohu tak zachytávat nejakoukonkrétní výjimku, třeba dělení nulou nebo přetečení typu proměnné přimatematických operacích a nebo rovnou celou větev všech aritmetických výjimekjednou klauzulí, protože třída ArithmeticError je předek třídOverflowError, ZeroDivisionError a FloatingPointError. Při očekávánívýjimky ArithmeticError tak zachytím i všechny ostatní aritmetické výjimky.A dále je možno výjimkám předávat parametry, které mohu používat při jejichzachycení, jsou součástí instance výjimky, takže nejsou žádné potíže uvícevláknových programů při zpracování výjimek. Příkaz try/except můžebýt rozšířen o užitečné else a finaly, kdy finally se provádí vždy i pozachycení výjimky. Umožňuje to tak na jednom místě uvést čistící operace,což je výhodné jak z důvodu přehlednosti, tak v případě, že zachycujemevíce výjimek (except je možno uvést v libovolném počtu), abychom čistícíoperace nemuseli psát do každé except větve. Else pak umožňuje provést kódjen v případě, kdy výjimka nebyla vyvolána, což je velmi užitečné vpřípadě, kdy zachycenou výjimku ignorujeme, ale chceme provést něco navíc vpřípadě, že nebyla vyvolána.Že je psaní VB.NET kódu v drahém Visual Studiu pohodlné je pěkné, ale zároveň to znamená, že bez něj to pohodlné není. Psaní kódu v Pythonu je pohodlné vkaždém editoru, který umí odsazovat kód, kterých je přehršle. Jestliže umíi zvýrazněnou syntaxi, automatické odsazování dle syntaxe nebonakonfigurovat horkou klávesu pro spuštění interaktivního interpretu naeditovaný kód, jako to umí třeba editor Vim, je to balada. A jestli se někdoneobejde bez IDE, které mu doplňuje kód a napovídá, ani to není problém ato dokonce zdarma.I pro Python existuje široká podpora a co je ještě lepší i prvotřídnídokumentace.
Co tady pletes Python. Se ti neco nelibi tak si jdi udelat vlastni kurz a nekaz tady forum blbostma....
Mám tomu rozumět tak, že moje ostatní názory (třeba na Python) nejsoumylné? Děkuji.Ne, tomu rozuměj tak, že odmítáš přiznat i jeden jediný omyl, který je všemzřejmý, natož ty ostatní .Mě fungují stejně jako ty Vaše, stačí doplnit deklarace těch proměnných - zkuste si to.... Nepotřebují odsazovat ani jinak upravovat... Zajímavé, netvrdíš celou dobu, že python neumožňuje deklarovat proměnné?Přiznáš se ke svému dalšímu omylu a nebo opět ne? Ale potřebují, zkus si to sám .Že by jste nebyl pouhým pohledem na Pythoní zdroják posoudit, zda budefunkční, nebo ne? To je trochu smutné - jak takový zdroják potom chceteopravovat?Naopak, jeho nefunkčnost poznám na první pohled, přestože se chybu snažíšskrýt co nejmenším odsazováním. , ale není ti to nic platné, stejně jena první pohled patrné, že if a jeho else není stejně odsazené. Než znalcezačneš nabádat, aby si to vyzkoušel, vyzkoušej si to nejdřív sám .Nemyslím, v diskusích pod mým seriálem jste začal prudit mnohem dříve.Projděte si je.To dost těžko, když na tento seriál jsem byl upozorněn až v diskuzipři tvém prudění na České škole a ani pak jsem hned nereagoval, porovnejsi datumy a pak teprve začni myslet. Vidíte, že nejsem sám, komu Vaše představy připadají nemístné. VB.NET má tuvýhodu, že jej lze používat jako primitivní skriptovací jazyk, bez typů,dokonce i deklarací vůbec - přesně tak, jako Python. Přitom umožňujepostupně přibírat rysy typových jazyků. Mimochodem, to je přesně postup,který jsem použil ve svém seriálu.To tedy nevidím . Zkus to nějak dokázat. Já jsem prohlásil, že se k tomustavím neutrálně přičemž se proti statickým typům zvedla vlna nevole. Dálejsem prohlásil, že statický jazyk je složitý a nevhodný pro začátečníky. Todokazuješ ty sám, že jsi je vypnul. Jenže VB.NET je bez toho praktickyzřejmě nepoužitelný, protože teď už do nich čtenáře zbytečně nutíš, místoaby ses věnoval programování a nechal je ty základy si nějak zažít aprakticky vyzkoušet na zajímavých příkladech. Obávám se, že tenhle seriáljiž dávno přišel o pozornost, protože tě ani nikdo neupozorňuje na chyby,které v něm máš. Druhá možnost je, že tvůj výklad nikdo nechápe a tak tychyby ani nikdo nevidí.To je z didaktického hlediska docela problém. Ne, to je naopak výhoda. Protože datové typy jsou pro výuku základů programování nejen zbytečné, ale doslova na překážku.Až bude Python podporovat (aspoň volitelně) typové deklarace a separátoryblokůTo není otázka až, ale jestli vůbec. Separátory bloků samozřejmě podporuje,bloky se definují odsazením.můžeme se o jeho vhodnosti pro výuku na základním kursu pobavit znovu.To můžeme, budeme pak zvažovat, jestli se náhodou nestal nevhodným. Vsoučasné době tomu tak bezpochyby je, fajn že jsi to konečně uznal, i kdyžtakovým divným způsobem.Zatím je to jazyk očesaný o všechno, co podle mínění jeho autorů přidělávápři psaní bez IDE práci. To není pravda. Python nemá navrženu syntaxi aby byla co nejkratší aušetřila co nejvíc psaní, jako např. tomu je u syntaxe Perlu nebo, dletvého vlastního tvrzení VB.NETu, což má za důsledek nepřehledný kód, vkterém se snadno dělají těžko odhalitelné a detekovatelné syntaktickéchyby, což je pohroma hlavně pro začátečníky. Naopak, syntaxe Pythonu jenavržena tak, aby byla co nejpřehlednější a vyloučila co nejvíce takovýchchyb. Proto například není v Pyhonu povoleno přiřazení v podmínce. Operátorporovnání == a operátor přiřazení = je velmi podobný. Začátečníkům se pletea je snadné v něm udělat i překlep. Tato chyba je velmi častá nejen mezizačátečníky a přitom je těžko detekovatelná, program se obvykle akorátchová občas divně a nikdo neví proč. Protože se u Pythonu nesmí přiřazeníobjevit v podmínce, tak, když se tak stane, hlásí Python chybu včetně tohoo jakou chybu jde a kde se nalézá, v Pythonu tak tato chyba nikoho netrápí,přijde se na ni okamžitě. To všechno i přes to, že řada lidí do podmínkypřiřazení píše, aby si tak zkrátila kód. V Pythonu není krátkost kóduprioritou. Takových opatření je v Pythonu celá řada a je tomu podřízenacelá syntaxe. Proto se v Pythonu příkazy explicitně neukončují, ne proto, abys tolik nemusel psát, ale proto, abys nemohl udělat chybu v tom, že nato zapomeneš. Zapomínání psaní takových věcí je u začátečníků běžné,protože to je neintuitivní a zbytečná pruda. To že tato opatření vedou vdůsledku i k docela krátkému kódu (i když ne v každém případě, jak jsemukázal v prvním příkladě), je jen přirozený stav věcí. Krátký kód, kdyžnení kryptický (proto Python používá delší and místo kryptického &&), takje sám o sobě přehlednější a snadněji pochopitelnější. Přitom nejde vůbec omnožství psaní, ale o množství informací, které musíš vstřebat a hlídat přičtení a kontrole kódu. Takže to, že ti jakési IDE ušetří trochu psaní jenepodstatné. Ale to, že se tím oháníš a považuješ za důležité značí, že VBje přespříliš užvaněný jazyk a ta užvaněnost vede k nepřehlednému anesrozumitelnému kódu a to ať z důvodu jeho délky nebo nešťastnýchkonstrukcí jako goto, který se ostatní jazyky straní jako čert kříže.Vidíte sám se svými zmínkami o statických deklaracích a fragmentaciPythonu, že nejsem jediný, kdo tyto věci vnímá jako omezující. Jsem sijist, že Python se k těmto věcím nakonec dokope, a vy opět změníte názor -jenže mezitím stihnete zaset pěkný zmatek mezi lidmi, kteří do vývojePythonu zdaleka tolik nevidí.To je pěkná demagogie ). Ve skutečnosti jsou to statické typy, kteréjsou omezující a to tak, že velmi. Právě dynamické jazyky jsou známy aceněny pro svou pružnost a flexibilitu, pro svou snadnost používání bezsložitých konstrukcí jako jsou šablony, bez složitých konstrukcí, kvůlikterým jen málokdo může říct, že opravdu rozumí jazyku C++, například.Rozumíš mu snad dobře ty? Rozumíš aspoň dobře mnohem jednoduššímu C#? Takvidíš. Problém leží někde jinde, a to v tom, že i příliš volný jazyk je problematický, ať je moc volný v syntaxi - problém Perlu a VB.NET nebo snakládáním s typy či prostory jmen - PHP. Přílišná volnost jeproblematická stejně jako přílišná svázanost. Python velmi inteligentně jepřísný v Syntaxi, prostorech jmen (viz obstrukce s nakládáním s globálnímiproměnnými) či typové kontrole jako silný typový jazyk a jedině kdepolevuje je právě ve své dynamičnosti. Absence statických typů je naopakzbavení se řady omezení, díky čemuž je Python flexibilní a snadnopoužitelný. Díky tomu, že nepolevil v ostatních směrech je ale stále velmivhodný jako aplikační jazyk, na rozdíl od ostatních interpretovaných jazyků.Proto má v tomto směru také tak velkou podporu, opět na rozdíl od ostatníchinterpretovaných jazyků.Je možné, že se Python nakonec ke statickým typům dokope, což z něj udělávýkonnější a volitelně ještě více kontrolovaný jazyk, ale zároveň se tak zněj stane volitelně složitý a neflexibilní jazyk obtížnější na používání.Pro laiky a začátečníky to nebude mít pozitivní přínos. Proto se k tomustavím neutrálně. Zajímalo by mě ovšem, kde bereš jistotu, že k tmu dojde,když se proti tomuto návrhu zvedla taková nevole a žádný pozitivní ohlasjsem naopak nezaznamenal a nebyla by to první zamítnutá věc. Kde berešjistotu, že za takové situace nedojde k forknutí Pythonu a neodvodí se zněj nový jazyk, který tyto věci implementuje?V tomto směru nemám co měnit za názor, protože tohle všechno jsou fakta,tedy až na tvou jistotu, která vaří z vody.Python pole ve skutečnosti vůbec nepodporuje, namísto polí používá seznamya i s těmi seznamy pracuje po svém a pro jejich procházení používá syntaxi,kterou ostatní jazyky nepoužívají.Ale di ty brepto, seznamy mají plnou funkcionalitu polí včetně způsobupoužívání, ve skutečnosti je používání polí v Pythonu standardnízáležitost, zvlášť ve srovnání s tím co předvádí obskurní VB.NET. Jakneznáš ani ty nejpoužívanější jazyky jsi již předvedl u deklarace polí.Zase jen tlučeš hubou .To zní sice hezky, ale toto není jednak seriál o výuce programování, aleseriál v výuce programování ve VB.NETNejen že to zní hezky, je to i pravda. Právě proto, že je to seriál o výuceprogramování ve VB.NET upozorňuji, že VB.NET je pro výuku programovánínevhodný. takže nepoužívám nějaký pseudokód ala Ptyhon, ale VB.NETTo vidím, však proto také upozorňuji na nedostatky jazyka VB.NET, na které tyčirou náhodou zapomínáš upozorňovat . Pročpak zapomínáš?Za druhé, jazyk je sice pouhý nástroj k dorozumění, ale pokud jejneovládáte, prostě se nedomluvíte (ať už s lidmi, nebo s počítačem). Proto je vhodné začínat s jednoduchým jazykem a ne příšerností jako VB.NET,jak jsem krásně doložil na příkladu práce s poli.Chápejte ale, že používání typových deklarací patří k obecně uznávanýmnávykům a proto deklarace polí předvádím s nimi, abych se k nim už nemuselvracet. To nepatří k obecným návykům, potřebují to jen některé jazyky. Z hlediskavýuky programování jsou nejen zbytečné, ale i na překážku. Je to jakovysvětlování funkce motoru, svíček, rozdělovače či spíše přesný popiselektro rozvodů škodovky či činnost mikroprocesorové jednotky a podobně přivýuce dopravních předpisů. Jistě, automechanikům se to bude hodit, alevětšina lidí nejsou automechanici a toto do výuky dopravních předpisů tonepatří, není to jejich součást. Ostatně základy programování i dopravníchpředpisů se učí na základních školách a tam je to v obou případech totálněmimo. Díky těm typům je také problematika polí rozsáhlejší, než v Pythonu - ažbude Python podporovat statické typy, uvidíte sám.To dnes není otázka až, ale jestli. Krom toho já na rozdíl od tebe znám vícjazyků, včetně statických, takže na to nemusím čekat. Já velmi dobře vím,že statické typy komplikují všechno a všechno je kvůli nim složitější.Proto také říkám, že statický jazyk do výuky základů programování nepatří ademonstroval jsem to na příkladu polí. Jsem rád, že jsi to konečněpochopil.
Vždycky je pro mně jednodušší ten jazyk, který znám.Ano, já jich znám ale několik a porovnávám je. Tlučhuba zná jen VB.NET, aleto mu nebrání, řadu měsíců Python, který vůbec nezná, kritizovat aodsuzovat. A to jen proto, že já jsem ho prohlásil za velmi dobrý a on vůčimě cítí osobní antipatie. Já vím že to na nezúčastněného pozorovatel můžepůsobit zvláštně, ale já ho dobře znám z magea, kde je tímto chovánímprofláklý a běžně nazývaný jako tlučhubu. Takhle totiž bez sebemenšíznalosti věci kafrá do všeho. Já jsem VB.NET nijak zvlášť neznal, i když mipřišel podezřele vždy, když v něm předváděl nějakou ukázku, tak obtížněsrozumitelný a nečitelný jazyk jsem ještě neviděl. Teď, když se s VB.NETseznamuji skrze jeho seriál seznamuji, tak vidím, že můj názor byl nejensprávný, ale že trpí řadou nedostatků, které on vyčítá Pythonu. Pythonje například proslavený svou jednoduchostí a srozumitelností, on ho všaknazývá pseudokódem, při srovnání s VB.NET, které je úplně mimo ve srovnánís klasickými jazyky, kterým je Python mnohem podobnější je to dost trapné.Ke vzájemnému porozumění lze spíše dospět tehdy, pokud respektuji názorydruhého Ale o to tady přece nejde, on rozumět nechce, on se neptá jak a proč, on pocelou dobu tvrdí Python je špatný, špatný a špatný. Není to pravda, alejeho argumenty, jak sis už určitě všiml, nezajímají. Když už ho dostaneš dokouta, že nemůže to co říkáš nijak zpochybnit (a že při tom používá hodněšpinavé triky, takže to není snadné), tak prostě přestane na danou věcreagovat a za čas nebo jiném místě začne tvrdit zas to samé, bez ohledu natvou snahu mu cokoli a jakkoli vysvětlit, prostě bez skurpulí lže o věcech,o kterých dobře ví, že nejsou pravda. Srovnej si několik měsíců staroudiskuzi na české škole a kolik lidí mu tam vysvětlovalo, že je to nebo onojinak a diskuzi zde a uvidíš. Přitom se tohle táhne minimálně už přes rok.Zde je to nové v tom, že mohu jeho tvrzení porovnat s realitou a VB.NET apředvést konkrétně, v čem všem je Python ve skutečnosti lepší. Nemyslím si,že by to nějak přijal, ale alespoň pro ostatní to může být přínosnésrovnání. Že se diskuze přenáší do osobní roviny je u něj normální.je z hlediska "VÝUKY PROGRAMOVÁNÍ" začátečníka úplně jedno, jaký konkrétníprogramovací jazyk pro daný styl programování bude použit.To právě není pravda, protože jazyky jsou různě složité a první jazyks kterým začátečník přijde do styku musí být jednoduchý, jinak se výukaprogramování zvrhnr ve výuku jazyka a boj s tímto jazykem. Nezapomínejte,že čas na výuku je značně omezený a že se žáci musí učit řadu dalšíchpředmětů, takže je hloupé je zbytečně zatěžovat složitým jazykem nebodokonce výukou ovládání komplikovaného IDE. To je velmi kontraproduktivní.Není přece nijak obtížné něco nepoužívat a to zejména tehdy, pokud o tomvůbec nevím. Jak chceš u nestatického jazyka nepoužívat statické typy? To nejde, apřitom tyto všechno právě zbytečně komplikují. I když jejich deklarace jdevypnout, tak tím ze statického jazyka dobrý dynamický jazyk neuděláš, dobrýdynamický jazyk jako takový musí být navržen, dynamický a statický jazykjsou jako voda a oheň, nesnáší se, jdou proti sobě.Volba preferovaného jazyka je vždy subjektivní záležitostíprogramátora, týmu, popř. učiteleTo také není tak docela pravda. Každý jazyk má jiné vyjadřovací schopnostia vlastnosti a hodí se tak na něco jiného. Volba jazyka tak není volbouosobních preferencí (ostatně, i v tom případě je nutno znát jazyky mezikterými volíme a tlučhuba Python vůbec nezná), ale volbou na základě danýchpotřeb pro příslušnou úlohu a projekt. Proto také profesionální programátormusí znát řadu jazyků, čím víc jich ovládá, tím lépe dovede řešit různéúlohy a je cennější. V zvládnutí řady různých jazyků mu napomůže právědobrá znalost programování. To ho ale musí někdo naučit, cesta vlastníchzkušeností je bolestná a zdlouhavá a je potřeba zvládnout několik jazyků,aby člověk dokázal rozlišit co je obecná vlastnost a záležitostprogramování a co je vlastnost jazyka (tohle třeba tlučhuba nedovede a dodiskuze o výuce programování se pořád cpe s výukou vlastností jazyka, IDE ařadou dalších nesmyslů, opět doporučuji prostudovat českou školu, je tokrásný učební materiál o jeho neschopnosti pochopit byť i jen podstatudiskuze). Jenže ke snadnému zvládnutí je potřeba právě dobrá znalostprogramování, což je svým způsobem začarovaný kruh. Proto kladu na výukuzákladů programování a výběr vhodného jazyka takový důraz.Volba preferovaného jazyka je v tomto případě volbou učitele, i když bysprávně mělo být volbou školství, protože je dost obtížné si představit, žena jedné škole se bude učit žák programovat v C a pak přestoupí na školu, kdese učí programovat v Pascalu nebo Javě. To de teď stát může, ale tím spíšeby měl být demonstrační programovací jazyk co nejjednodušší, jak známo, ojazyk nejde a znalosti programování jsou mezi jazyky přenositelné. A ovhodnosti takového jazyka pro školství a jeho potřeby se bavit lze, já jsempřesvědčen, že Python je jako první jazyk velmi vhodný.Jinak si myslím, že M. Petřík rozhodně dokáže ustoupit pod tíhou věcnýchargumentůJá vím že ne. Samozřejmě, když se dopustí omylu, typu tvrzení, že bajt má32 bitů, tak mu nic jiného nezbude, než připustit, že se mýlil, co se týčenázorů, tedy věcí fakticky neprokazatelných, tam nedovede. Radši budetvrdit, že VB.NET je lepší než python, protože používá volitelnédvojtečky, když Python používá volitelné středníky, stejně jako ostatníjazyky. To je jednoznačně blbost, už proto, že napsat za každým příkazemdvojtečku je pracnější než středník, protože je k tomu potřeba Shift., neboproto, že význam dvojtečky je něco uvozovat, ne ukončovat, a proto jepoužívání dvojteček na ukončování příkazů neintuitivní, zmatečné, prostěblbost. Ale zkuste ho přimět k tomu, aby uznal, že to je fakt blbost alepší by bylo, kdyby místo ní VB.NET používal středník jako Python. Opravdu nevidím důvod, proč by měl Python uznat jako jednodušší avhodnější, pokud jeho osobní preference jsou odlišné.Protože tohle je fakt, který je nezávislý na osobních preferencí. On totižje jednoduší, to je vlastnost věech interpretovaných dynamických jazykůoproti statickým a kompilovaným. A protože je jednodušší, tak je i jakoprvní jazyk vhodnější, tohle chápal už i Jan Amos Komenský a myslím že jehoteze, platí i v moderní pedagogice, nebo ne?Když mluvíte o demagogii na straně M. Petříka, tak já se nemohu zbavittéhož dojmu u Vás. Zatímco M. Petřík docela věcně obhajuje své názory(přirozeně subjektivní), tak vy mu za to nadáváte a přitom děláte totéž.Nejsem si jist, zda znáš přesný význam tohoto slova, demagogie neníobhajoba vlastních, tedy nutně subjektivních, názorů, ale překrucovánísmyslu fakt a skutečností za účelem vzbudit jiný dojem. Tohle já nedělám.Jako příklad si vem jeho oblíbené tvrzení, že se mé hodnocení Pythonuotočilo o 180 stupňů. Tohle dlouho neřekl, jen sugestivně naznačoval. To jedemagogie, protože to ale teď i přímo prohlásil, už je to nejen demagogie,ale i lež, které pod vahou vlastní demagogie uvěřil. Skutečnost je taková, že mé hodnocení Pythonu se vůbec neotočilo aprokazatelně jsem i tehdy prohlásil, že python je nejlepší jazyk. Ano, měljsem kritické připomínky, ale mám je i dnes, řada těch tehdejších už neplatí,v něčem jsem se mýlil a vysvětlilo se to už v tehdejší diskuzi (to ho alevůbec nezajímá) a skutečně jsem i u některých skutečností změnil na základězkušeností názor. To je skutečnost, kterou tlučhuba vykládá jako 180% změnunázorů na Python a to si přitom několikrát nechal vysvětlit, co se konkrétnězměnilo a proč už to nebo ono neplatí. I kdyby se Python nezměnil a mé názory zůstaly v přesně stejné podobě jakotehdy, pořád je tu ten fakt, že jsem i tehdy současně s kritikou+ prohlásilPython za nejlepší a mé hodnocení Pythonu tak bylo jednoznačné. Tlučhubovochování o je ukázkovýpříklad demagogie, které jsem z jeho strany řadu měsíců vystaven, osobnívýpady nejsou možná hezké, ale kdo je v tomto kontextu nechápe, nechť sepřihlásí.
Potvrďte prosím přezdívku, kterou jsme náhodně vygenerovali, nebo si zvolte jinou. Zajistí, že váš profil bude unikátní.
Tato přezdívka je už obsazená, zvolte prosím jinou.