
Kdysi davno jsem pro tento portal psal články převážně technologického rázu. Objevily se ohlasy, že prý on-game by měla být více herního rázu a že chybí recenze. Mnozí z vás si jistě všilmi, že v posledním půlroce vycházely převážně právě recenze. Při jejich sestavování jsem procházel mnoho her a kromě hodnocení uživatelského jsem se díval i na systémové řešení a využítí možnosti dané platformy. Nebylo přitom možné nevšimnout si, že drtivá většina her je napsaná v PHP.
Je obecně známým faktem, že CZ a SK jsou již tradičně nejsilnějšími baštami PHP minimálně v evropském měřítku. Proto není divu, že i aplikací, v našem případě her je významné procento. Ovšem překvapující je obrovská převaha, kterou v tomto specifickém tržním segmentu PHP drtí ostatní platformy. Kde se tato převaha bere?
Podívejme se na rozložení platforem pro weby. Už tento problém je poněkud oříškem. Jako obecně uznávaná praxe se používá monitorování počtu nabídek zaměstnání pro jednotlivé platformy. I zde ale jsou určité odchylky. Kupříkladu ASP.NET technologie jsou velmi často zveřejňovány jako nabídky programátorům C# případně VB. Pokud vezmeme toto v úvahu, máme tu tři velké hráče, PHP, Java a .NET . Pro korporátní sféru má největší podíl na trhu java, za ní .NET a po něm PHP. Při průzkumu her jsem ale viděl jiný obrázek. Drtivá většina her je v PHP a jen málo jich je provozovaných na jiných technologiích. Čím to je?
Každá platforma má svá specifika . Java jako první přišla s možností implementovat aplikaci bez ohledu na platformě serveru. O něco podobného se pokusil Microsoft se svým .NET frameworkem. Bohužel, zatím co na platformě windows tato technologie nabírá na síle a rozsahu a tím i na zajímavosti pro korporátní sféru a postupně vytlačuje konkurenční technologie, na linuxu implementace poněkud zaostává a tak je .NET i nadále svázán s win platformou. Třetí hráč, tedy PHP se zatím omezuje převážně na webové aplikace, i když možnosti jeho použití sahají mnohem mnohem dále, v praxi ovšem nedosahuje schopností prvních dvou. Proč tedy jednotlivé platformy volit?
Největší devizou Javy je právě zmiňovaná meziplatformová implementace. A přestože Java aplikace si stále nesou punc pomalosti. Osobně mám vůči javě drobnou antipatii, jejíž kořeny jsou v dobách před řekněme 6ti lety, kdy jsem byl pozorovatelem projektu, který právě java odsoudila k nezdaru. Proto právě zde povídání o ní nadobro ukončím a budu se dále věnovat pouze PHP a .NETu. Odpověď na otázku proč volit .NET, jsem na tomto serveru přetřásal již několikrát. Zmíním jen ty nejzákladnější. Aplikace ASP.NETu je skutečná aplikace, žije i mimo requesty uživatelů, umí na ně reagovat a umí si uchovávat svou vlastní paměť. Prakticky request uživatele nezpracovává samostatný skript, ale skutečná plnohodnotná aplikace. Není interpretovaná ale kompilovaná a může používat mno ho a mnoho pro web nestandardních věcí, jako udržování různých TCP/IP spojení na zdroje dat a služeb apod. Nevýhodou a to nikterak malou je fakt, že .NET je svázán s platformou windows, tedy s licencemi na systém apod. V neposlední řadě hosteři investují nemalé částky do hardware a vzdělávání pracovníků. A protože jsou to subjekty chovající se ekonomicky, chtějí tyto náklady získat zpět ve formě plateb od hostujících provozovatelů. PHP je v tomto směru v o hodně lepší pozici. Nevztahují se ně něj licenční poplatky a celou infrastrukturu pro provozování webových aplikací postavíte s mnohem nižšími náklady. Dalším aspektem je samotné chování PHP aplikací. Requesty jsou zpracovávané enginem, který je zpravidla povolán ke zpracování přesně toho konkrétního požadavku uživatele. Nic mimo toto zpracování nepřežívá a tak ani chyba programátora přiliš neznamená. Neexistuje zde nic jako memory-leaky, nekonečné cykly likvidující výkon serveru a ani další neduhy.
Pokud vezmeme v úvahu jiný pohled na věc a přidáme několik dalších faktů, jako že většina her je budována a provozována studenty různých úrovní škol, je nám jasné, že prvořadým důvodem budou nížké pořizovací a provozní náklady webových aplikací v PHP. Přiřadíme-li další fakt, že PHP má jednoduchou syntaxi a z hlediska implementace a runtime prostředí je relativně bezpečné a jak já říkám blbuvzdorné, tedy díky izolovanému zpracovávání requestů není tak náchylné na důsledky různých chyb, není divu, že si tuto platformu volí mnoho začátečníků. V této chvíli mohu jen dodat slovo naštěstí. Neumím si představit, co by se serverem udělala aplikace napsaná přesně ve stylu PHP myšlení typického pro takový druh programátora, ale obávám se, že by to hosterům přiliš radosti nedělalo. České ani Slovenské hry zároveň nejsou tak zatěžované aby musely řešit výkonové problémy a proto ani zde PHP neklade příliš velký odpor. Zpravidla výkonovým požadavkům při trocše šikovnosti a myšlení je schopno dostát. Většina z nich ani nevyužívá speciálních služeb a omezuje se na klasické čtení dat z databáze a zobrazování v nějaké jednoduché HTML podobě. A protože mnoho her je vlastně test, zda je daný jedinec nebo team schopen něco takového implementovat, uzavírá se zde celý kruh.
Uvědomuji si, že tímto článkem otevírám široké pole k diskusi a pevně doufám, že se nějaká rozsáhlejší diskuse opravdu rozjede. Věřím, že získám hodně oponentů, kteří budou obhajovat javu, nebo jiní budou tvrdit, že PHP není hračka ale opravdu plnohodnotná technologie. Jsem připraven i čelit odpůrcům .NETu. Nicméně uvítám právě onu snad i žhavou výměnu názorů, kterou si slibuji zažehnout.
| Všechna práva vyhrazena, © 2006 Team on-game |