pondělí, dubna 30, 2007

Já jsem to říkal...

Introducing Microsoft Silverlight 1.1 Alpha:

Silverlight 1.1 Alpha includes all the features available in Silverlight 1.0 Beta plus a number of new features focused primarily on improving developer productivity and power:
  • Managed code support
  • Support for dynamic languages including Managed JScript and Python
  • Rich UI control model based on WPF
  • Improved networking stack with support for REST, RSS, JSON, POX
  • Enhanced, 2-way HTML/AJAX Bridge
  • Comprehensive and consistent base class library
  • Support for LINQ (LINQ to Objects, LINQ to XML)
Další informace třeba zde: MIX 07 - Silverlight shines brighter!

[EDIT 2007/05/01] Více informací zde.

sobota, dubna 28, 2007

WT^hPF

Tak. Tímto textem bych chtěl na nějakou dobu uzavřít diskusi o Microsoftu, Apple a podobných věcech.

Když teď nedávno Microsoft přejmenoval WPF/E na Silverlight, a všichni bloggeři se kolem této události začali rojit s tím, jestli Silverlight převálcuje Flash nebo ne, také jsem cítil potřebu se k tomu nějak vyjádřit. Nakonec jsem se rozhodl to neudělat, protože je podle mě na nějaké hodnocení brzo. Jednak Microsoft chystá ještě nějaké šokantní oznámení (bude Silverlight open-source? Tak ta velká novina je platformě nezávislá implementace CLR pro prohlížeče.), jednak mě vývoj webových aplikací tak úplně nezajímá. (Nicméně jsem chtěl poznamenat, že už delší dobu si myslím, že Apollo je ten Next Big Language, o kterém mluví Steve Yegge. Beru zpět. Teď myslím, že myslel JavaFX.)

Nicméně jsem se chtěl otřít o WPF, kterou se teď snažím nějak sestudovat (samozřejmě to jde pomalu, ale snažím se). Takže co je to WPF? Windows Presentation Foundation. (Pokud jde o mě, klidně bych celou tu věc pojmenoval Avalon i oficiálně, ne jen krycím jménem, ale jak známo, pojmenovávání věcí v Microsoftu je sofistikovaný proces, který vyústí v použití slova Microsoft nebo Windows v názvu, ať to zní jakkoliv pitomě -- tedy kromě sady programů Expression, které se, nějakým záhadným způsobem, tomuto jevu vyhnuly.) Pokud jste tenhle pojem ještě neslyšeli, určitě si přečtěte článek Windows Vista: more than just a pretty face, který poskytuje velmi slušný úvod do problematiky.

Takže ještě jednou: co je to WPF? Podívejte, všichni víme, že GDI(+), je zastaralá záležitost, že ji Microsoft držel při životě především proto, že si nechtěl utnout kus trhu s kancelářskými počítači, ve kterých ještě donedávna byly opravdu hloupé integrované grafické čipy, které neuměly nic, než převést kus operační paměti na analogové úrovně na D-SUB konektoru. Ovšem, doba se změnila, a i ten nejhorší integrovaný grafický čip dneska disponuje nějakou tou 2D/3D akcelerací, kterou je velká škoda nevyužít.

Takže se Microsoft rozhodl, že ve Windows Vista, bude 3D akcelerace tak nějak vyžadována, a že na ní bude postaveno celé zobrazování systému. A jelikož perspektivním vývojovým prostředím je .NET, vznikl .NET Framework 3.0 (který by ve skutečnosti spíše měl mít číslo 2.5, ale přeci nelze nový nablýskaný operační systém distribuovat s nějakou polovičatou verzí frameworku), který obsahuje, mimo jiné, WPF.

WPF je především prostředek, jak co nejvíce oddělit uživatelské rozhraní aplikace od výkonného kódu, a to tak, že uživatelské rozhraní bude definováno pomocí XML, respektive jeho "dialektu" XAML, který umožňuje popsat UI do takové hloubky, že pro řadu jednoduchých aplikací opravdu není potřeba psát skoro žádný kód (vážně -- poměrně sofistikovaný textový editor vygenerujete pomocí prvku System.Windows.Controls.RichTextBox a nějaké té bižuterie, s použitím asi 50 řádků kódu, které se starají o uložení a tisk dokumentu).

Kromě onoho zřejmého požadavku na oddělení kódu a uživatelského rozhraní z důvodu znovupoužitelnosti obého, je tu ještě bonusová možnost nechat nějakého grafika pracovat na rozhraní v poměrně sofistikovaném programu Expression Blend bez toho, aby něco věděl o programování (samozřejmě musí něco vědět o aplikaci a její struktuře, ale nemusí být seznámen s její vnitřní mechanikou). Také lze takový popis uživatelského rozhraní v XAML snadno vyměnit za jiný (třeba podle velikosti displeje, zvoleného režimu funkce programu, nebo cílové platformy).

WPF tedy umožňuje rozdělit vývoj logiky programu a jeho prezentační vrsty jak je to jen možné.

Současně s tím ovšem nabízí velmi vypečený způsob jak se zbavit všech těch problémů, které vznikají se stále rostoucím rozlišením displejů (písmenka jsou příliš malá!), nebo potřeby předělávat uživatelské rozhraní pokaždé, když program lokalizujete do nového jazyka, který místo textu o šesti znacích potřebuje znaků dvacet, protože všechny souřadnice jsou relativní a při změně velikosti ovládacího prvku, nebo okna, se umí dobře přizpůsobit novým podmínkám.

Dále je tu hierarchičnost prvků uživatelského rozhraní. Ve WinForms (tedy rozhraní, které používá GDI ve Windows do verze XP bez WPF), jste museli podstoupit bolestivý proces vlastního vykreslování, když jste chtěli do tlačítka dostat obrázek nebo dva řádky textu. S WPF napíšete něco ve smyslu <tlačíko pozadí="obrázek"><popiska text="hlavní"/><popiska text="vedlejší"/></tlačíko> a je to! A samozřejmě můžete definovat co se stane, když nad tlačítkem bude myš, včetně různých animací.

Čili variabilita je o několik řádů dál, než s použitím WinForms a GDI (a to vás nechci zdržovat básněním o tom, že takové tlačítko můžete namapovat na libovolný 3D povrch, takže pak můžete vytvářet skoro stejně sexy uživatelská rozhraní jaká používají Hollywoodské trháky).

Nějaké nevýhody? Ó jistě: použití WPF znamená, že se vaše aplikace na starších počítačích (řekněme starší než tři roky) zpomalí zhruba dvakrát (především na Windows XP je to hodně znát). A dále: dokud nevyjde nové Visual Studio (kódové označení Orcas, v současné době ve stádiu Beta 1), neexistuje nějaký spolehlivý nástroj, ve kterém by se dalo s WPF pracovat. Existují sice nějaká rozšíření Visual Studia 2005, ale věřte mi, pořád bude řešit nějaká neopodstatněná varování, IntelliSense funguje jen částečně a tak dále. Expression Blend už by měl být ve stavu RTM (Release To Market), ale jde o placený nástroj, a věřte, že XAML není myšleno jako jazyk, který budete psát ručně (i když leckdy nic jiného nezbývá).

Sečteno podtrženo: WPF je skvělá věc, která ovšem pro produkční aplikaci bude zajímavá někdy v půlce příštího roku, až budou všechny nástroje připraveny a penetrace Windows Vista dosáhne nějaké smysluplné úrovně.

Kde jsem to začal? Aha, Silverlight (podmnožina WPF) versus Flash. Upřímně: když jsem se tak díval na vývoj jmenných prostorů v .NET frameworku, domnívám se, že v Microsoftu opravdu existuje nějaký grand plan, ve kterém se dříve nebo později objevuje lehkotonážní managed framework pro prohlížeče -- to znamená, že bude notně ořezaný, třeba jako Compact .NET Framework (PDA a smartphones) nebo XNA Framework (XBox 360), ale nebudete muset stahovat 60MB záplat, které vám umožní jej provozovat, který umožní vyvíjet pro prohlížeče v C#, nebo jiném .NET kompatibilním jazyku.

Jak pak bude vypadat sronání Flash/Apollo a Silverlight/.NET? Který z těchto balíků zvítězí? Myslím si, že ten, který bude nabízet více zajímavých aplikací. Pokud Google začně vyvíjet v Appolo (což by se náramě hodilo třeba pro GMail, který by mohl stažené e-maily skladovat lokálně a odesílat odpovědi až se obnoví připojení k Internetu) a bude Flash aplikace tlačit svým zákazníkům, bude pozice Microsoftu jistě mnohem horší. Pokud se něco zlomí v Microsoftu a začne vyvíjet věci dost zajímavé na to, aby uživatelé počkali těch několik sekund než se stáhne pár mega Silverlight (nebo jej budou distribuovat jako doporučenou aktualizaci Windows), není výsledek vůbec jistý.

V každém případě bude pár následujích měsíců zajímavých. Uvidíme, jestli strategie vnucování se na obsazený trh skrze Windows Microsoftu tentokrát vyjde nebo ne.

Pokud ne, má pravdu Paul Graham, a Microsoft už je opravdu mimo mísu, ať má finanční výsledky jekékoliv.

PS: A ještě bych si dovolil doporučit vaší pozornosti starší podcast s Robertem Scoblem, který přináší mnoho zajímavých poznámek k tomu, jak funguje Microsoft uvnitř.

PPS: Ta věc s grafickými kartami mi připoměla, proč je dobré mít managed framework běžící na virtuálním stroji. Představte si, že Microsoft portuje CLR (Common Language Runtime, tedy virtuální stroj, na kterém běží .NET aplikace) na grafické procesory, takže aplikace mohou běžet paralelně nejen na hlavním procesoru (procesorech) vašeho počítače, ale i, na jinak zahálejícím, GPU...

pátek, dubna 27, 2007

Kakao

Před časem jsem tu hovořil o společnosti Apple. Jelikož jsem tehdy neměl čas udělat si domácí úkoly pořádně, a ověřit si co by bylo záhodno ověřit, snažil jsem tyhle resty dohnat a podívat se především na Cocoa a Objective-C, abych tak trochu věděl jak vlastně vypadají.

Takže po krátkém zkoumání musím uznat, že Cocoa je opravdu pěkně navržená. Je to objektově orientovaný framework se vším všudy, vypadá docela konzistentně a když si na něj člověk zvykne a trochu ho sestuduje, určitě se v něm dobře pracuje (což je nakonec vlastnost všech slušně navržených frameworků). Oproti tomu Objective-C není úplně můj šálek čaje, a i když všechny ty věci se zprávami okoukané ze Smalltalku vypadají docela rozumně, není to syntaxe, která by mě nějak oslovila. Sympatické je, že do definic uživatelského rozhraní se nedá psát kód (jak je dobrým zvykem všech programátorů ve Visual Basicu), ale jen se připojují objekty, do kterých se pak nasměrují příslušné zprávy (jako že uživatel někam kliknul myší a tak podobně). A pokud tomu dobře rozumím, tak k Mac OS X se dodává zdarma vývojové prostředí Xcode, která rovněž vypadá (pro člověka odkojeného Visual Studiem) zajímavě.

Prostě se zdá, že vývoj pro Mac OS X je docela příjemná záležitost.

Přemýšlel jsem: proč vlastně Microsoftu trvalo tak dlouho, dát dohromady slušný vývojový rámec (myslím .NET), když na Macu existuje (sice ne managed, ale objektový) takový rámec už drahně let? Ano, tušíte správně, jde o to, že zatímco Microsoft se koncem osmdesátých a začátkem devadesátých let bahnil na platformě PC, Jobs, odejitý z Apple, založil firmu na luxusní pracovní stanice NeXT, ve které si mohl dovolit navrhnout takový počítač, že vedle něj tehdejší PC vypadaly jako chudý příbuzný.

Dalším problémem je zpětná kompatibilita. Microsoft je jí posedlý, a je fakt, že když jedno procento zákazníků, kterým přestane něco fungovat proto, že jste porušili kompatibilitu s předchozí verzí, je nějakých 10 miliónů lidí, tak není snadné něco měnit. Poučné jsou v tomto ohledu texty Raymonda Chena (ano, to je ten, nad jehož příspěvkem o [ne]kompatibilitě SMB jsme tu před časem diskutovali), který se snaží vysvětlit, že někdy se chyba změní ve vlastnost, protože programátoři jsou čuňata, a chybu nelze opravit, protože na ní spoléhá příliš mnoho lidí.

Dobrá, to vysvětluje, proč je Win32 API takové jaké je (14000, slovy čtrnáct tisíc funkcí), ale nevysvětluje to, proč MFC (Microsoft Foundation Classes, tedy, vulgárně řečeno, objektový obal kolem Win32 API) musely být, ve srovnání s Cocoa, takový hnus. Asi by se daly najít nějaké argumenty ohledně výkonu, dědictví operačního systému založeného na zprávách, a tak dále, ale opravdu neznám nikoho, kdo by si pochvaloval jak dobře je to MFC vymyšleno, a jak dobře se v něm pracuje (tedy kromě třídy CString, ta se docela povedla).

Nicméně. Nicméně jsem chtěl říct, že další zajímavé materiály ke studiu lze nalézt na CocoaLab, nebo na stránce věnované historii Apple Orchard (to je opravdu zajímavé čtení -- jakkoliv nevím na kolik validní; třeba texty o Pixaru a NeXTu jsou vážně poučné).

Tak pěkné čtení...

pondělí, dubna 09, 2007

Ikonoklasmus

Chcete vidět, jak se může člověk pár odstavci totálně ztrapnit? (Sarkastické poznámky akceptovány, pojďme dál.) Přečtěte si nový text Paula Grahama Microsoft is Dead.

Víte, Paula Grahama jsem bral vždycky trochu s rezervou, protože trpí mnoha utkvělými představami, ve kterých ho jeho ideoví následovníci utvrzují. Třeba jeho fanatické zaujetí Lispem, nebo úsměvné hledání paralel mezi malíři a programátory, či skutečnost, že se domnívá, že jediný možný způsob jak založit úspěšný start-up je ten, který použil on sám. Nicméně právě v oblasti start-upů a rizikových investorů jsem si vždycky říkal, že a) to dokázal, že stvořil společnost, kterou pak úspěšně prodal Yahoo (které údajně následně celý ViaWeb přeprogramovalo z Lispu do C++, aby se v tom orientoval i někdo jiný, než Paul Graham), b) sám se podílí na společnosti pěstující start-upy Y Combinator. Paul Graham na toto téma napsal před několika lety jednu esej, kterou od té doby recykluje stále dokola, ale jelikož umí psát a protože do jednotlivých iterací vkládá různé poučné anekdoty, dá se to vcelku číst (i když nad posledními třemi čtyřmi texty jsem se už opravdu docela nudil).

Proto jsem ani nechtěl věřit tomu, co jsem včera četl. Toto je Graham? Tenhle blábol napsal ten Paul Graham? Možná, říkal jsem si, že jsem to špatně pochopil. Možná je to nějaký druh absurdního humoru, který je příliš sofistikovaný na to, abych mu rozuměl. I nelenil jsem a přečetl si nějaké reakce, abych se ujistil, že nejsem sám, kdo nemůže uvěřit tomu, že se Graham totálně pomátl. Bohužel, je to tak.

Víte, nemyslím si, že jsem Grahamův článek špatně pochopil. Rozumím tomu, co chce říct. MSFT je pořád obří firma s tučnými konty a ročními příjmy většími, než je státní rozpočet leckteré země. Jde o to, že v očích geeků, podle Grahama, ztratil MSFT drive, že už to není žádná hrozba, protože neinovuje a jen udržuje to, co před lety vytvořil. Naopak velká hrozba je pro lidi, kteří chtějí založit start-up, Google, s jeho přefouknutými akciemi a jediným produktem, kterým je textová reklama (proti všeobecnému přesvědčení totiž není Google firma na vyhledávání, ale mimořádně šikovná reklamní agentura).

Dobrá, řeknete si. Sice si Graham sám odporuje, protože posledních deset esejí tvrdil, že se Podnikatelé2.0BETA nemají bát velkých firem, ale jiných startupů, a teď je najednou překvapený, že velké firmy nejsou pro start-upy konkurencí. Sice hned zkraje tvrdí, že MSFT vůbec nesleduje, ale to nevadí, i kdyby ho sledoval, stejně by nedělali nic inovativního. (To mi trochu připomíná admirála Nelsona, a jeho legendární výrok "Nevidím žádné signály", jen s tím rozdílem, že on si dalekohled k slepému oku přiložil schválně.)

Tohle všechno je součástí Grahamovy lehce demagogické strategie, jak přihřát polívčičku svým start-upům, které jsou všechny orientovány na web (přesněji Web2.0, tedy nic, čeho bychom se u nás v Česku museli obávat), a dá se to akceptovat jako účelem posvěcené prostředky konkurenčního boje.

Pak ovšem příjde opravdová bomba: Apple a Linux totálně rozdrtily MSFT na desktopu a nikdo už si jejich produkty nekupuje, protože na přednáškách pro wannabe start-upéry těsně po pubertě, které Y Combinator především podporuje, mají všichni notebooky Apple.

Znova si vychutnejte brilantnost té argumentace. Graham tvrdí, že protože vývojáři, které jeho společnost podporuje, a kteří vyvíjejí software nezávislý na operačním systému, používají notebooky Apple, je s Microsoftem ámen! Uh, Uh.

No, myslím, že to stačilo. Teď vážně.

Především je fakt, že se MSFT za poslední léta změnil. Celá ta věc s weblogy a Channel 9 umožnila nahlédnout lidem dovnitř firmy, a zjistit, že tam nesedí žádní princové temnot a neoddávají se nesvatým rituálům s cílem co nejvíce mučit uživatele. S tím, jak přišlo poznání, že velký nepřítel se vlastně sám plácá v problémech s vnitřní komunikací a určením strategie, se iluze velkého zlého Microsoftu rozplynula, a firma opravdu přestala být hrozbou v tom smyslu, v jakém jí byla v devadesátých letech.

Na druhou stranu se také ukázalo, kolik zajímavých věcí se uvnitř MSFT děje, kolik mimořádně chytrých a talentovaných lidí tam dělá věci, které nikdo jiný nedělá, a že bláboly o tom, že MSFT nic nevyvíjí, ale jen kopíruje, jsou opravdu debilní (nelze to říct mírněji, protože tuhle hovadinu čtu od lidí, kteří ani nevědědí, že nevědí, skoro každý den).

A na světlo také vyšlo to, že hlavním problémem Microsoftu je jeho vlastní úspěch. Jako každá velká firma, se MSFT nejvíce bojí jedné věci, a tou je kanibalizace. Lidé uvnitř firmy se bojí toho, že by jiní lidé uvnitř firmy mohli být úspěšnější, a tudíž je vyhodit ze sedla, mnohem víc, než se bojí libovolné konkurence (navíc skoro žádnou konkurenci nemají). Proto, pokud jde o uvádění novinek na trh, je MSFT neuvěřitelně konzervativní. Raději třikrát prodlouží vývoj Windows Vista (uh, neodpustím si jeden přípodotek k dotazu, který jsem kdesi četl: ano, Windows Vista jsou složitejší než libovolný procesor na trhu, a je velký úspěch MSFT, že si to drtivá většina uživatelů neuvědomuje), než aby zkusili vyrobit lehký operační systém za pár dolarů, na kterém by šel spustit prohlížeč, provozovat bittorrent a vytisknout stránka, a který by dláždil cestu k tomu, co je nejspíš nevyhnutelné: totiž že většina lidí si za pár let na PC vystačí s webovými aplikacemi.

(Rozdíl mezi Microsoftem a Googlem je v tomto směru diametrální. MSFT je společnost vyrábějící software, zatímco Google prodává reklamní plochy. Proto dokud Google bude živ z reklamy, cokoliv úspěšného, co umožní vnutit lidem další reklamu, bude dobré pro všechny v Googlu. Navíc je systém vývoje v Googlu nastaven tak, že se lidé nebojí o své pozice, a tudíž netrpí onou řevnivostí, která panuje v MSFT.)

Takže ano, v tomto směru má Graham pravdu: MSFT přestal být vnímán jako hrozba, protože změnil své chování a otevřel se světu. Na druhou stranu se mýlí v tom, že MSFT hrozbou být přestal, protože a) desktop je mrtev, b) MSFT už stejně nikdy neuvede nic zajímavého.

Tyhle řeči o tom, že desktop je de facto mrtvá záležitost pocházejí většinou od lidí, kteří s počítači neprovozují nic, než sociálně komunitní onanii. Ach, neřekl jsem před dvěma odstavci, že většina lidí za pár let vystačí s webovými aplikacemi? Ano, řekl. Myslel jsem tím: většina lidí mimo korporátní sféru, většina lidí, kteří na počítači nepracují, ale baví se.

Protože ať se to Paulu Grahamovi líbí nebo ne, ve firemní sféře bude desktop vládnout ještě spoustu let. Pořád totiž existují aplikace, které vyždímají libovolnou pracovní stanici do poslední mrtě, pořád existují data, která je lepší zpracovávat v Excelu, pořád existují úlohy, které přes browser prostě řešit nejde, a vždycky (nejen v zaměstnání) je fajn, moci ke svým datům přistupovat i když zrovna nejste připojeni k Internetu (třeba v letadle, že). Ano, jistě, domácí počítače asi tlusté operační systémy a velké aplikační balíky opustí (a hry se budou hrát na konzolích), ale ve firemní sféře tohle ještě dlouho platit nebude.

Ale...

K čertu.

Ten mizera.

Znovu se zeptejme: je MSFT hrozba pro start-upéry? Zdánlivě ano, protože když vyvíjíte nějakou novou skvělou aplikaci, pak MSFT jistě má potenciál uvést vlastní verzi 1.0 dříve, než se posunete k druhé betě. Ale ve skutečnosti jediné riziko které hrozí, je, že se MSFT pokusí vás koupit a zahlušit dřív, než produkt dokončíte. Protože paranoidní strach, že by taková skvělá aplikace mohla snížit prodeje Office nebo Windows, zablokuje vývoj čehokoliv v MSFT na několik let, během kterých se bude rozhodovat, zda ano nebo ne.

Oproti tomu ti, co chtějí dělat něco, co je velmi Web-dva-nulózní, by se opravdu měli bát Googlu, protože cokoliv co vypadá, že to přiláká lidi, kterým bude možné servírovat reklamu, Google okamžitě vyvine a uvede. Že většina takových projektů nemá úspěch není podstatné: důležité je, že se Google drží v médiích (známkou jejich mistrovství je, že dokáží, s prominutím, udělat z prdu kuličku i bez Steva Jobse), a až se jednou trefí s něčím jiným než je vyhledávání, zchladí si žáhu za všechny neúspěšné projekty.

Takže: Nemá nakonec ten Graham pravdu? Není opravdu Microsoft, ten surový dravý Microsoft, který bezskrupulózně používá nordické lsti, aby byl na trhu s produkty první (OS/2 vs Windows NT, OpenGL vs Direct3D, atd.), který jsme znali, mrtev? Je vůbec šance, že by se něco změnilo, něco, co by umožnilo všem těm úžasným lidem, které MSFT zaměstnává realizovat svůj talent a převálcovat svět novinkami, na kterých pracují?

Graham říká, že MSFT by měl skoupit všechny start-upy, které lze koupit, nastěhovat jejich zakladatele do jedné budovy, odizolovat je od Redmondu jak jen to jde a nechat je, ať ukáží co umí. Je to opravdu tak absurdní, jak to vypadá? Kupodivu není. Nejde totiž o kvalitní vývojáře a výzkumníky. Ty nejlepší už MSFT stejně má. Jde o všechny ty mladé vlčáky, kteří chtějí něco dokázat, něco změnit, něco vytvořit.

Opravdu, jediným řešením pro MSFT se zdá být začít znova. Začít znova s uváděním novinek, a ne staráním se o to, zda jejich vypuštění neovlivní prodej stávajících produktů. Je ale něco takového možné?

Paul Graham, ten totálně šílený Paul Graham, který si myslí, že to, že vývojáři, kterým MSFT vždy tak podkuřoval, začali kupovat notebooky Apple, dokazuje, že MSFT prohrál bitvu o desktop, tak tenhle Paul Graham si myslí, že ne.

Co si myslím já? Po tom, co jsem vlastní argumentací dokázal to, co jsem měl v úmyslu vyvrátit, nevím co si mám myslet. Jistě, MSFT tu s námi bude ještě dlouho. Určitě není potřeba panikařit a hned zítra se přeškolit na Cocoa a Objective-C (samozřejmě pokud jste, stejně jako já, trapky, které vyvíjejí pro desktop). Ale, upřímně řečeno, jak já to vidím, éra Microsoftu asi opravdu končí.

Zatraceně.

neděle, dubna 08, 2007

Tři stupně chytrosti

Existují v zásadě dva druhy trudomyslnosti, kterým můžete propadnout, když se setkáte s lidmi, kteří jsou chytřejší než vy.

Zaprvé jsou tu stavy, které zažíváte, když narazíte na někoho, který o oboru vaší činnosti ví řádově více než vy, a říkáte si: "Zatraceně, kde jsem udělal chybu, že nejsem také tak erudovaný jako tenhle týpek?"

Takové pocity zažívám třeba když poslouchám Hanselminutes (takto druhý podcast který víceméně pravidelně sleduji, hned po Odvážných palcích). I když o Scottu Hanselmanovi nevím skoro nic, připadá mi, že je tak nějak zhruba stejně starý jako já (se středním odhadem vychýlení plus sedm, mínus tři), a přitom toho o programování a .NET ví o tolik víc než já, že vždy, když poslouchám některý z programovacích podcastů, jsem opravdu na pochybách, jestli jsem vůbec s to ten deficit, který u mě vzniknul tím, že jsem programování nestudoval, a skoro čtyři první roky v práci se jím ani neživil, dohnat.

Nejde samozřejmě jen o Hanselmana. Existuje celá řada lidí, kteří jsou v libovolném oboru, o kterém se odvážím tvrdit, že o něm něco vím, o několik úrovní nademnou, nicméně forma podcastu, kde se nelze utěšovat tím, že dotyčný svou erudici mnoho hodin kompiloval z různých knih a wiki, je v tomto směru obvzláště depresivní.

Nuže: tento druh malomyslnosti lze poměrně snadno odrazit jednoduchým mentálním cvikem, při kterém prohlásíte, že jste specializaci vyměnili za univerzálnost, a že přehled o věcech rozhodně stojí za to, že nejste tak dobří, jak byste mohli být, kdybyste všechno své úsilí napnuli jediným směrem. To, že neznám .NET tak, jako ho znají někteří sedmnáctiletí smrkáči, je vyváženo skutečností, že jsem s to se adaptovat na příšerný dialekt C++ Embedded C++ a napsat v něm jednoduchý souborový systém pro sériovou flash, který beží na hardware s 32kB RAM, ze které zbývají poslední 3kB, do kterých se musí vejít zásobník, nebo že vím, co je to Cp/Cpk, nebo 6-sigma, nebo jak funguje senzor té či oné fyzikální veličiny a tak dále, a tak podobně.

Takto se snadno přesvědčíte o tom, že jste minimálně stejně chytří, ne-li chytřejší než ti, kteří vás deprimují, a všechno je v nejlepším pořádku.

Pak je tu ovšem druhý typ lidí, u kterých nejde jen o to, že by byli vzdělanější. Tyhle lidské bestie jsou prostě chytřejší, ať se na to dívate z kterékoliv strany. Naposledy jsem tento druh hlubokého rozčarování nad vlastní intelektuální nedostatečností zažil nad knížkou Jazyk matematiky Keitha Devlina (Dokořán, 2002), kterou jsem dočetl někdy v březnu. Zvládal jsem ten hutný materiál číst vcelku důstojně až k pasáži, kde stojí něco v tom smyslu, že Edward Witten sestavil hlubokou teorii čehosi (nějak nejsem s to nalistovat tu správnou stránku, abych citoval přesně, ale určitě šlo o nějaké topologické fígle v N rozměrech), a část o Maxwellovi a jeho rovnicích byla opravdovou ranou z milosti mému sebevědomí.

Rozumějte: maxwelky (jak jsme jim familiárně říkali v hodinách fyziky), se dokážete naučit, a možná je dokážete i částečně interpretovat (nebo i pochopit), ale představa, že něco podobného sami sestavíte (byť během 15 let, které to zabralo Maxwellovi) je, pokud nejste génius, prostě absurdní. To samé ta věc s Wittenem: vzpomněl jsem si na Greenův Elegantní vesmír, kde se o něm mluví, a prostě nerozumím tomu, jak tihle matematici fungují. Co se v jejich mozku porouchalo, že dokáží řešit problémy tím, že je zesložití? Dobrá, programovací jazyky jsou docela abstraktní, ale ve srovnání s tou hutnou matematikou, o které je řeč, je to jen dětské žvatlání.

Tak.

Někdy si říkám, že je vážně velká škoda, že nejsem ten druh sekáče, který konfrontován s nekonečností vesmíru a absurdními schopnostmi některých lidských mozků, může spokojeně pokrčit rameny a říct: "Dozvěděl jsem se jen to, co už vím dávno. Jsem prostě děsnej frajer. Neříkal jsem, že jsem Zafod Bíblbrox?"

Opět a tudíž opakovaně

Eh. Myslel jsem, že jakmile dokončím disertaci, budu mít tuny času a budu se věnovat svým volnočasovým aktivitám (mimo jiné i psaní) častěji než v předcházejících měsících. Ovšem zapomněl jsem, odkud jsem bral čas na věděcké bádání -- totiž z rodiného rozpočtu.

A jelikož jsem založením rodiný typ, a jakkoliv si myslím, že není nic horšího, než muž bez ambicí, věnuji se teď, více než čemu jinému, péči o teplo rodinného krbu. Zbylý čas investuji do studia WPF (a .NET frameworku 3.0 vůbec), hraní jedné nebo dvou počítačových her, čtení knih, které se mi nakupily a podobných bohulibých činností.

Takže: rád bych slíbil, že se budu snažit napsat jeden text týdně (témat mám dost), ale nechci slibovat co nemůžu splinit.

Takže (jako obvykle): uvidíme.

PS: A ještě k té disertaci: první palec nahoru, na další nervózně čekám.