Revoluce web aplikací

Nikde na českém internetu jsem nenarazil na ucelený článek o tom, jaký převrat představují webové aplikace a prohlížeč jako platforma pro tyto aplikace. Nevím, jestli je to tím, že si to tu málokdo uvědomuje, nebo tím, že to všichni vědí a tak o tom nikdo nepíše. Takže minimálně pro utřídění mých vlastních myšlenek, zde je můj nástin revoluce web aplikací.

Nuly a jedničky v krabicích

Když se před masívním rozšířením sítě sítí řeklo „software“, všichni jsme si představili krabici a v ní manuál a CD. Software jsme nainstalovali, používali, stěžovali si na nedostatky nebo chyby a po určité době, závislé na výrobci, jsme si koupili novou verzi.

Takový koloběh měl několik důsledků pro nás uživatele:

  1. Jakmile byl software jednou „v krabici“ byly tam i všechny chyby, které v něm programátoři nechali.
  2. K programu jste měli samozřejmě přístup pouze z jednoho počítače — z toho, kde byl nainstalován.
  3. Komplikace se sdílením dat z „našeho“ programu s někým jiným.
  4. Různé verze programu a jejich (ne)kompatibilita.

A teď z pohledu firem software vydávajících:

  1. Komplikovaný, zdlouhavý a tím pádem drahý vývoj.
  2. Náklady na fyzickou distribuci softwaru (krabice s CD se někde musí prodat).
  3. Co s chybami, které v softwaru zákonitě zůstanou i po jakkoli důkladném beta testování?
  4. Co kompatibilita mezi různými verzemi? Neomezí nás ve vývoji (viz Windows)?
  5. Pokud chcete prodat novou verzi, musíte do ní dát další užitečné funkce, které zákazníky přesvědčí ke koupi. Pokud už to nejde začnete uměle odřezávat uživatele starších verzí (viz nekompatibilita souborů z různých verzí Illustratoru).
  6. Méně hmatatelné, ale neméně důležité, jsou problémy vyplývající z toho, že programování museli dělat úplně jiní lidé, než kteří dělali design – nebo jste viděli někoho, kdo je alespoň schopen číst C++ a k tomu je grafik?

Brouzdáním vpřed

S rozšířením internetu se softwarovým firmám otevřela možnost vyřešit alespoň některé výše uvedené problémy. Za všechny jmenujme automatické udpaty, které výrazně urychlují produkční cyklus a pomáhají s odstraněním chyb.

Ale tím to neskončilo, pokrok na poli webových technologií a především stále se zlepšující podpora standardů (ať už je to HTML, CSS nebo JavaScript) však vytvořila nové vývojové prostředí pro aplikace: webový prohlížeč.

Vezmu to stručně, ale uvedené body mají rozsáhlé implikace, tak si je nechte projít hlavou1.

Co prohlížeč jako vývojové prostředí umožňuje vývojářům:

  • Jednoduchý a rychlý vývoj — snadněji zvládnutelné programovací jazyky, okamžitě viditelné výsledky, rychlá implementace grafického rozhraní, snadné úpravy atp.
  • Cílení menšího trhu — levnější vývoj nám umožní oslovit i klienty, pro které se dřív nevyplácelo zvláštní software programovat. Otevírá se obrovský prostor pro malé softwarové firmy, které budou rentabilně nabízet levný produkt, šitý na míru úzkému okruhu zákazníků.
  • Snadná distribuce — aplikace běží na serveru, uživatelé si ji otevírají jako stránku v prohlížeči – nemusí nic instalovat, funguje na všech operačních systémech.
  • Pronájem softwaru — samotný princip hostování web aplikací přímo vybízí k pronájmu softwaru uživatelům na základě pravidelných poplatků, nikoli jednorázového prodeje.
  • Bleskové odstraňování chyb — jsme schopni chybu najít, opravit a správnou verzi „nainstalovat“ všem uživatelům třeba během pár minut – něco takového krabicový software rozhodně nezná.
  • Menší problémy se správou verzí — z podstaty fungování vyplývá, že všichni uživatelé mají stejnou verzi, takže máme jednodušší technickou podporu, mnohem snadněji se řeší zpětná kompatibilita.
  • Přístup odkudkoli — Uživatelé mají ke „své“ aplikaci přístup všude tam, kde je připojení na internet, což bude v brzké budoucnosti znamenat prostě všude.
  • Sdílení zdarma — webové aplikace mohou klienti téměř automaticky sdílet mezi sebou – je to přece jen webová stránka, kterou si může otevřít každý s přístupem na internet. Samozřejmě, že budeme muset zvlášť řešit sdílení konkrétních dat mezi uživateli navzájem, ale i to se bude implementovat určitě mnohem lépe než u krabicového softwaru.
  • Dobrá omezení — prohlížeč nám neumožňuje vše, co třeba operační systém a je to dobře. Omezení nás nutí soustředit se na základní funkce a nemáme tak prostor pro mnoho výstřelků typu pan Sponka. Ale i tak je třeba mít se na pozoru.

Z výše uvedeného chci vypíchnout hlavně možnost oslovit levnou aplikací klienty, kteří nemají statisíce na implementaci SAPu, ale s radostí zaplatí $50 měsíčně za jednoduchou, dobře fungující webovou aplikaci — viz Basecamp a úspěch 37signals vůbec.

Vidím aplikací pole široké…

Stručný pohled do blízké budoucnosti, berte ho s nadhledem.

Web aplikace se budou, tam kde to bude mít smysl, víc integrovat s desktopem (widgety nebo přidání offline funkčnosti).

Web aplikace budou přes veřejná API stále více komunikovat mezi sebou a s desktopovými aplikacemi.

S rozšiřující se podporou plnohodnotného internetu na mobilních telefonech se otevře další prostor, na kterém se uplatní schopnost web aplikací fungovat ve stejné verzi na mnoha různých platformách.

A co vy?

Prohlížeč jako vývojové prostředí nabízí skvělou možnost pro malé firmy nebo jednotlivce, kteří se mohou chytit tím, že dobře vyřeší potřeby třeba i úzkého okruhu firem. Vždy je tu možnost expanze a to i do zahraničí — počítat při vývoji s více jazykovými verzemi nepředstavuje mnoho komplikací navíc a distribuce do zahraničí je možná „automaticky“.

Zajímalo by mě, jaké jsou vaše zkušenosti s vývojem web aplikací? Co jste programovali, v čem, jak dlouho to trvalo, bylo to výdělečné atd. Zajímá mě cokoli, co jste ochotni sdělit. Chci tu začít dialog, který mi v českém prostředí chybí. Samozřejmě, že budu postupně publikovat naše zkušenosti s budováním web aplikací, naše postupy, naše designérská rozhodnutí…

Tak je tam někdo? ;)


Aktualizováno 28. 10. 2007: Hezký příklad probíhající integrace web aplikací s desktopem přináší Prism od Mozilla Labs. Via Marek Prokop

Aktualizováno 17. 2. 2007: Na OS X umožňuje funkcionalitu Prism slibná aplikace Fluid


  1. Zájemce o rozsáhlejší pojednání na téma browser jako API doporučuji skvělý článek How Microsoft Lost the API War od Joela Spolskyho. Spolsky popisuje, co a proč se stalo, já se chci zaměřit na to, co z toho plyne.

    zpět na místo v textu

7