Aplikace běžící na virtuálních strojích

Současnému světu programovacích technologií a platforem vládnou termíny jako virtuální stroj nebo řízený kód, v o...


Současnému světu programovacích technologií a platforem vládnou termíny jako
virtuální stroj nebo řízený kód, v oblasti webových aplikací či front-endu
roste obliba skriptovacích či dynamických jazyků. Vývojáři se přitom dnes mohou
setkat s více typy virtuálních strojů.
Uslyšíte-li dnes termín řízený kód (managed code), zpravidla se vám vybaví
jméno .Net Framework, vývojová a běhová platforma společnosti Microsoft. Avšak
samotná myšlenka, na níž je její filozofie založena, je zde už velmi dlouho.
SmallTalk, HyperCard či Visual Basic 1.0, to vše byly příklady programovacích
systémů založených na tzv. virtuálních strojích (Virtual Machine, VM) či
"běhových prostředích" (run-time), které poskytovaly správu paměti a výkonné
frameworky vyšší úrovně. Výsledkem bylo, že programátoři mohli trávit méně času
řešením problémů "vespod" a věnovat se spíše tvorbě funkcionality a možností,
které mohl vidět a ocenit přímo sám uživatel aplikace.

Virtuálně všude
Dnes se podnikoví vývojáři zcela běžně setkávají i když to může znít překvapivě
s několika typy virtuálních strojů. Za ty nejznámější dva, které se zřejmě
většině z nich vybaví jako první, můžeme označit Java Virtual Machine, která
tvoří jádro prostředí J2EE (tedy podnikové verze Javy), a CLR (Common Language
Runtime), kolem něhož postavil Microsoft konkurenční platformu .Net.
V průběhu roku 2003 oba tyto virtuální stroje pokračovaly ve své cestě směrem k
efektivnějšímu vývoji na straně serveru. Méně pozornosti, i když z hlediska
důležitosti jde o rovnocenný problém, vzbudila skutečnost, že ke zlepšením
došlo i na klientské (desktopové) straně. Kupříkladu open source IDE
(Integrated Development Environment) Eclipse, elegantní sada nástrojů založená
na Javě, si získává stále větší oblibu u dodavatelů javovských nástrojů, kteří
se snaží srovnat krok tam, kde dosud dominovalo Visual Studio .Net. Mezitím se
v oblasti .Net začíná jazyk C# objevovat nejen ve vývojových nástrojích, ale
konečně také ve větším měřítku v aplikacích pro koncové uživatele. Například i
některé plug-iny pro Microsoft Outlook jsou napsány právě v tomto jazyce:
DataLens, inovativní prohlížeč a editor kalendáře, či NewsGator, jenž umožňuje
shromažďování RSS zpráv v prostředí Outlooku.

Dynamické jazyky
Další z plug-inů pro Outlook SpamBayes je založen na jiném typu virtuálního
stroje. Modul SpamBayes, jehož úkolem je filtrování nevyžádané pošty, je napsán
v jazyce Python. Ačkoliv jazyky, jako je třeba právě Python, byly z
historického hlediska označovány jako skriptovací, nejpozději v průběhu roku
2003 se stal všeobecně rozšířeným výraz "dynamický jazyk" tato kategorie dále
zahrnuje Visual Basic, Perl nebo PHP.
Ze tří zmíněných programovacích jazyků založených na virtuálním stroji si
zvláštní pozornost zasluhuje PHP. V minulém roce společnost Netcraft na základě
svého průzkumu informovala, že PHP překonalo Active Server Pages jako
dominantní skriptovací jazyk na straně serveru používaný u veřejných webů.
Letos pak Netcraft oznámila, že PHP už není pouze považováno za pilíř sestavy
technologií označované LAMP (Linux/Apache/MySQL/Perl-Python-PHP), nýbrž už
celých 7 % PHP řešení běží na Windows namísto Linuxu.
Také run time prostředí Flash si v roce 2003 upevnilo svoji pozici. S verzí
Flash MX 2004 pokračuje společnost Macromedia ve snaze posunout svoji
technologii na pozici platformy vhodné pro multimediální prezentace i pro
obecně použitelné internetové aplikace s bohatým obsahem a funkcionalitou.
Hlavní vylepšení se týkají workflow, efektivity kreativní práce či lepší
integrace. Macromedia rovněž představila řešení Flex, prezentační vrstvu na
straně serveru, která dynamicky sestavuje uživatelská rozhraní založená na
technologii Flash.
Mnozí z programátorů i analytiků doufali, že rok 2003 s sebou přinese určité
sblížení mezi dominantními podnikovými platformami založenými na principu
Virtual Machine, tedy J2EE a .Net, a virtuálními stroji dynamických jazyků,
které ještě stále v mnoha směrech představují pro řadu běžných vývojářů dobře
utajovanou záhadu. K tomu však prakticky nedošlo. V jedné z ústředních
technických prezentací na konferenci JavaOne 2003 v červnu byl zmíněn požadavek
JSR (Java Specification Request) 223, jehož cílem je umožnit, aby jazyky jako
PHP mohly být využívány ve webové vrstvě javových aplikací. Nicméně dodavatelé
podnikových platforem, respektive virtuálních strojů se nijak zvlášť nesnaží
integrovat je s populárními a výkonnými platformami/VM dynamických jazyků. Za
krok vpřed lze ale považovat implementaci PHP do Java Web Serveru, která je
výsledkem spolupráce společností Sun a Zend Technologies.
Jazyk Jython, hybrid Javy a Pythonu, má sice své skalní stoupence, ale bohužel
se netěší žádné velké pozornosti ze strany Sun Microsystems. Microsoft má stále
ještě kus práce před sebou, aby nabídnul plnou podporu dynamických jazyků v CLR.

Hardwarová emulace
Mluvíme-li o přístupu založeném na principu virtuálního stroje, nesmíme
vynechat ještě jeden typ VM, který byl v průběhu předchozího roku středem
pozornosti a to hardwarové emulátory. Ani zde se nejedná o zcela nový přístup,
mainframy společnosti IBM používaly virtuálizační technologie už před třiceti
lety. Avšak pro vývojáře a systémové administrátory ve světě x86 počítačů je
schopnost virtualizace a provozování více instancí Windows či Linuxu na jednom
stroji v rostoucí míře strategickou vlastností (umožňuje např. lepší využití
hardwarových zdrojů nebo provozování více aplikací určených pro různé platformy
na jednom počítači). A akvizice produktů Virtual PC a Virtual Server
společnosti Connectix Microsoftem či koupě firmy VMware společností EMC tento
trend jenom zdůrazňují.

Co ukazují průzkumy
Webové aplikace představují významný trend v oblasti vývoje podnikových
aplikací to potvrdil i poslední loňský průzkum Programming Survey časopisu
InfoWorld (z amerického IDG). Více než 80 % respondentů uvedlo, že tento typ
aplikací tvoří součást jejich vývoje pro serverovou stranu a 53 % ve svých
aplikacích dokonce preferuje webové uživatelské rozhraní (GUI upřednostňuje 33
%). Přitom 80 % programátorů pro tvorbu webových aplikací, potažmo webového
uživatelského front-endu považuje za vyhovující některý ze skriptovacích či
dynamických jazyků (Perl, Python, VB Script, PHP, JavaScript atd.). Jazyky jako
PHP jsou podle mnohých programátorů pro generování webových stránek mnohem
efektivnější a to jak z hlediska rychlosti vývoje, tak výkonu a rychlé
funkcionality.









Komentáře
K tomuto článku není připojena žádná diskuze, nebo byla zakázána.