26 října 2006
Milujeme Microsoft v jeho nekonecne moudrosti
Tento prispevek nebude o Windows. Nebude ani o Wordu. Nebude ani o Internet Exploreru. Vsechno to jsou kontroverzni produkty. Maji sve zastance, maji sve odpurce. Na tom neni nic divneho.
Tento prispevek bude o vyvojovych nastrojich s lehkym akcentem na .NET technologii.
Najelvarna pro neposkvrnene .NETem. Prestavte si vetsi firmu. Homogenni prostredi lze jen tezko predpokladat (homogennim rozumime to, ze je vsude stejne platforma - treba windows nebo linux nebo cokoliv jinyho). Kde je problem? Vsude bezi jine aplikace. Pro MACy, pro wokna i pro linux jsou ruzne aplikace, takze sprava je komplikovana. Tedka aby v tom nebyl bordel, tak se udela sjednocujici vrstva, ktera pobezi nad touto platformou a vytvori vyssi vrstvu, ktera bude pro vsechny stejna, takze jeden jediny program pobezi jak na MACu, tak woknech, tak i linuxu. No a to se snazi .NET. Myslenka je to hezka, ale jak se rika: Nevetsi nepritel teorie je praxe.
Prakticky to znamena, ze musite vytvorit sakra stabilni kus softu, jehoz verze se bude minimalne menit a musite ho vytvorit pro vsechny plaformy. MS sice tvrdi, ze je .NET multiplatformni, ale jedina implementace je pro wokna (jo, ja vim, co je mono, jenze to je vyvojem za MS pozadu, takze implementuje jen podmnozinu .NETu). Dal muzeme polemizovat o ty stabilite verzi. Uz tu mame verzi 2.0 a 3.0 uz se pripravuje (a rozdily jsou zasadni).
Dal .NET framework je distribuovan (a pokud neni tak by asi mel, pokud je myslenka sjednocovani - jako ze neni - tak zasadni) jako soucast OS. Jenze donutte linuxovy distra, aby vkladaly mono do distribuce. Proste pro to nemaji duvod. A dalsi problem: nainstalujete si OS, ktery ma v sobe treba .NET 1.1, jenze aplikace, kterou chcete spustit vyzaduje .NET 2.0. Takze si ten framework musite aktualizovat. Ja nevim, jak pro vas, ale pro me je tohle peknej opruz. Obycejny BFU tohle nepochopi a nevi co s tim. Pro nej ta aplikace proste nefunguje. Sbohem a satecek. Ale zase nejsme tak uplne blby, ze, takze by se dal .NET framework aktualizovat v ramci inkrementalnich updatu (tzn. Windows Update). A co na to linux? A MAC? A Jan Tleskac?
A kdyz uz jsme u ty multiplatformity, nesel by .NET framework treba na PDA? Sel! Jen ho musime oriznout na nazvat Compact Framework. Tady je stejny problem s verzemi a hlavne tady uz nam inkrementalni updaty nepomuzou - OS je pekne v ROMce. Ale muzete si nainstalovat novejsi verzi, ta vsak bude v RAMce nebo na karte.
NET CF 1.x je soucast WM2003. Ale jako na potvoru, kazdy novejsi program napsany pro .NET vyzaduje 2.0 - alespon, co muzu posoudit z objevivsich se freewaru). Proc? Protoze .NET CF 1.x je vyprasenej! Kupr. si neumi sahnout do registru (to je misto, kam si kazda slusna aplikace uklada svoje nastaveni). Taky v nem treba nejde napsat Today Plugin. Ma to pomaly vykreslovani. Zabira to celkem dost cenyho mista v RAMce/na karte. No proste nevidim duvod, proc si to instalovat. Nativni aplikace je z uzivatelskeho hlediska vzdycky lepsi. Ale to plati jen pro PDA, ktery maji omezeny zdroje. Na PC rozdil mezi nativni a .NETi aplikaci v zasade nepoznate.
Z pohledu programatora, kteri pise pro .NET, je .NET celkem fajn. Rychle v tom udelate soustu veci. Velika podpora v knihovnach. Na co si vzpomenete, to tam je. Vysledny beh je rychly.
Nekdy ale musite pracovat s cizi .NET aplikaci, aniz byste meli zdrojak a mohli si ji opravit. Napr. kdyz delate task manager pro PDA, tak musite umet koretne zavrit vsechny aplikace. I ty .NETi. MSDN (bible programatora pro Windows platformy) ohledne toho rika: posli zpravu WM_CLOSE a aplikace na ni zareaguje tak, ze ukonci okna, frontu zprav, uvolni pamet, atd. Co myslite, reaguje .NET okno na WM_CLOSE jak ma? No jak ktery. Ale zabijeci zprava WM_QUIT zabere :) At ziji hacky a systemovost reseni!
Aby clovek mohl vyvijet potrebuje: toolchain (retez aplikaci, ktere ze zdrojaku vytvori binarku, kterou si muzete pustit - to jako to exe), editor pro psani zdrojaku, obcas se hodi debugger, tracer neni k zahozeni, neco co udela memory dump, a jeste par veci, ktery stejne moc nepouzijete. MS tohle resi jednim poradnym kusem softu, za ktery si necha poradne zaplatit. Ted se tomu nadava Visual Studio. Ja mam VS6. Neni dokonaly, ale slouzi. Aktualne je nejaky VS2005. Pokud mate nejnovejsi komp a wokna podle MS (= jeden disk oznaceny C:), no problem. Ale nevim, proc pri instalaci VS2005 mi to nuti novejsi DirectX. NEBO: pustite instalaci, zamysli se to a rekne: Neni dostatek mista v odkladacim prostoru (tim jako mysli swap). No to fakt neni. Na disku C: je jen OS, aplikace jsou na D: data na E:. No dobra, zmenime mu teda cestu ke swapu, ktery hodime na D:, kde je mista habakuk. Pustime znova, zamysli se to, rekne: Neni dostatek mista v odkladacim prostoru. No nic. To programoval (a modri uz vedi) dement!
Microsoft vi, co je pro tebe nejlepsi a co potrebujes. Hlavne, ale nepotrebujes mozek. Takze si uzivejte sve linuxove prostredi, ktere muzeme nazvat prostredim a ne ignorantem jako tomu je u woken.
Tento prispevek bude o vyvojovych nastrojich s lehkym akcentem na .NET technologii.
Najelvarna pro neposkvrnene .NETem. Prestavte si vetsi firmu. Homogenni prostredi lze jen tezko predpokladat (homogennim rozumime to, ze je vsude stejne platforma - treba windows nebo linux nebo cokoliv jinyho). Kde je problem? Vsude bezi jine aplikace. Pro MACy, pro wokna i pro linux jsou ruzne aplikace, takze sprava je komplikovana. Tedka aby v tom nebyl bordel, tak se udela sjednocujici vrstva, ktera pobezi nad touto platformou a vytvori vyssi vrstvu, ktera bude pro vsechny stejna, takze jeden jediny program pobezi jak na MACu, tak woknech, tak i linuxu. No a to se snazi .NET. Myslenka je to hezka, ale jak se rika: Nevetsi nepritel teorie je praxe.
Prakticky to znamena, ze musite vytvorit sakra stabilni kus softu, jehoz verze se bude minimalne menit a musite ho vytvorit pro vsechny plaformy. MS sice tvrdi, ze je .NET multiplatformni, ale jedina implementace je pro wokna (jo, ja vim, co je mono, jenze to je vyvojem za MS pozadu, takze implementuje jen podmnozinu .NETu). Dal muzeme polemizovat o ty stabilite verzi. Uz tu mame verzi 2.0 a 3.0 uz se pripravuje (a rozdily jsou zasadni).
Dal .NET framework je distribuovan (a pokud neni tak by asi mel, pokud je myslenka sjednocovani - jako ze neni - tak zasadni) jako soucast OS. Jenze donutte linuxovy distra, aby vkladaly mono do distribuce. Proste pro to nemaji duvod. A dalsi problem: nainstalujete si OS, ktery ma v sobe treba .NET 1.1, jenze aplikace, kterou chcete spustit vyzaduje .NET 2.0. Takze si ten framework musite aktualizovat. Ja nevim, jak pro vas, ale pro me je tohle peknej opruz. Obycejny BFU tohle nepochopi a nevi co s tim. Pro nej ta aplikace proste nefunguje. Sbohem a satecek. Ale zase nejsme tak uplne blby, ze, takze by se dal .NET framework aktualizovat v ramci inkrementalnich updatu (tzn. Windows Update). A co na to linux? A MAC? A Jan Tleskac?
A kdyz uz jsme u ty multiplatformity, nesel by .NET framework treba na PDA? Sel! Jen ho musime oriznout na nazvat Compact Framework. Tady je stejny problem s verzemi a hlavne tady uz nam inkrementalni updaty nepomuzou - OS je pekne v ROMce. Ale muzete si nainstalovat novejsi verzi, ta vsak bude v RAMce nebo na karte.
NET CF 1.x je soucast WM2003. Ale jako na potvoru, kazdy novejsi program napsany pro .NET vyzaduje 2.0 - alespon, co muzu posoudit z objevivsich se freewaru). Proc? Protoze .NET CF 1.x je vyprasenej! Kupr. si neumi sahnout do registru (to je misto, kam si kazda slusna aplikace uklada svoje nastaveni). Taky v nem treba nejde napsat Today Plugin. Ma to pomaly vykreslovani. Zabira to celkem dost cenyho mista v RAMce/na karte. No proste nevidim duvod, proc si to instalovat. Nativni aplikace je z uzivatelskeho hlediska vzdycky lepsi. Ale to plati jen pro PDA, ktery maji omezeny zdroje. Na PC rozdil mezi nativni a .NETi aplikaci v zasade nepoznate.
Pohled .NET programatora
Z pohledu programatora, kteri pise pro .NET, je .NET celkem fajn. Rychle v tom udelate soustu veci. Velika podpora v knihovnach. Na co si vzpomenete, to tam je. Vysledny beh je rychly.
Pohled ne.NET programatora
Nekdy ale musite pracovat s cizi .NET aplikaci, aniz byste meli zdrojak a mohli si ji opravit. Napr. kdyz delate task manager pro PDA, tak musite umet koretne zavrit vsechny aplikace. I ty .NETi. MSDN (bible programatora pro Windows platformy) ohledne toho rika: posli zpravu WM_CLOSE a aplikace na ni zareaguje tak, ze ukonci okna, frontu zprav, uvolni pamet, atd. Co myslite, reaguje .NET okno na WM_CLOSE jak ma? No jak ktery. Ale zabijeci zprava WM_QUIT zabere :) At ziji hacky a systemovost reseni!
Vyvojove prostredky
Aby clovek mohl vyvijet potrebuje: toolchain (retez aplikaci, ktere ze zdrojaku vytvori binarku, kterou si muzete pustit - to jako to exe), editor pro psani zdrojaku, obcas se hodi debugger, tracer neni k zahozeni, neco co udela memory dump, a jeste par veci, ktery stejne moc nepouzijete. MS tohle resi jednim poradnym kusem softu, za ktery si necha poradne zaplatit. Ted se tomu nadava Visual Studio. Ja mam VS6. Neni dokonaly, ale slouzi. Aktualne je nejaky VS2005. Pokud mate nejnovejsi komp a wokna podle MS (= jeden disk oznaceny C:), no problem. Ale nevim, proc pri instalaci VS2005 mi to nuti novejsi DirectX. NEBO: pustite instalaci, zamysli se to a rekne: Neni dostatek mista v odkladacim prostoru (tim jako mysli swap). No to fakt neni. Na disku C: je jen OS, aplikace jsou na D: data na E:. No dobra, zmenime mu teda cestu ke swapu, ktery hodime na D:, kde je mista habakuk. Pustime znova, zamysli se to, rekne: Neni dostatek mista v odkladacim prostoru. No nic. To programoval (a modri uz vedi) dement!
Zaver
Microsoft vi, co je pro tebe nejlepsi a co potrebujes. Hlavne, ale nepotrebujes mozek. Takze si uzivejte sve linuxove prostredi, ktere muzeme nazvat prostredim a ne ignorantem jako tomu je u woken.
Komentáře:
<< Domu
Jak nemas XP, tak jsi proste v hajzlu.
A kdyz je mas, tak budes v hajzlu pri dalsim viru pres ICQ :-D
Okomentovat
A kdyz je mas, tak budes v hajzlu pri dalsim viru pres ICQ :-D
<< Domu