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:
- Jakmile byl software jednou „v krabici“ byly tam i všechny chyby, které v něm programátoři nechali.
- K programu jste měli samozřejmě přístup pouze z jednoho počítače — z toho, kde byl nainstalován.
- Komplikace se sdílením dat z „našeho“ programu s někým jiným.
- Různé verze programu a jejich (ne)kompatibilita.
A teď z pohledu firem software vydávajících:
- Komplikovaný, zdlouhavý a tím pádem drahý vývoj.
- Náklady na fyzickou distribuci softwaru (krabice s CD se někde musí prodat).
- Co s chybami, které v softwaru zákonitě zůstanou i po jakkoli důkladném beta testování?
- Co kompatibilita mezi různými verzemi? Neomezí nás ve vývoji (viz Windows)?
- 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).
- 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
-
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.
Je, ale píšeš akorát o něco hůře to, co napsal Paul Graham. V roce 98…
Almad: To je možné, nicméně to vypadá, že to tu v Čechách nevyvolalo žádnou odezvu. Tenhle článek je pro mě jen takové prostření stolu, vyjasnění mých východisek a snaha o to představit se lidem, které by to, co budu říkat dál, mohlo zajímat.
zajímavý článek, vůbec celý blog je zajímavý. Přidávám do čtečky a budu rád dál sledovat.
Možná by bylo do základu uvést také nevýhody/rizika webových aplikací a taky rozdělení na dvě základní větve – původně offline aplikace, které se přesunují na web, protože to je mnohem efektivnější (mapy, jízdní řády, project management, collaborative writing atd..) a potom aplikace, které nikdy v offline světě neexistovaly a mohou existovat jen na netu – flickr, last.fm, youtube apod.
Tyhle dvě větve mají sice hodně průniků a společných znaků, avšak některé věci,které jsou pro jednu větev výhodou, mohou pro tu druhou představovat nevýhodu. Např. možnost přistupovat k aplikaci odkudkoli je super u map nebo project managementu, ale naopak u last.fm potřebujete vlastní stabilní počítač pro efektivní vyuřití služby.
Ale to jsou jen detaily a rád se nech překvapit, kam se to vyvine.
Díky, jsem rád, že se nemluvím úplně do zdi ;)
Pokud jde o dálší témata na tomhle blogu, zkusím jít už co nejvíc do reálných příkladů. Říkal jsem si, že by mohlo být zajímavé vzít jednu moji ranou web aplikaci – tisk a evidence faktur – a ukázat na ní, jak jsem o problému tenkrát uvažoval (od návrhu databáze až po uživatelské rozhraní), jaké chyby v tom s odstupem času vidím atp.
Souhlasím, je to oblast o které se málo mluví. Svoje zkušenosti s (webovými) intranetovými aplikacemi jsem se pokusil popsat na svém webu. Najdete tam popis několika aplikací, screenshoty, vysvětlení funkce i zkušenosti s vývojem a provozem, několik tipů pro kreslení grafů ap.
Aplikace jsou zaměřeny na výrobní firmu a sběr provozních a technologických dat.
pepa, intranet
[...] A ještě jeden pěkný článek od 37signals, který tak trochu rezonuje s mojí esejí o Revoluci web aplikací [...]
[...] Revoluce web aplikací [...]