👋 Nový obsah na borekb.cz

Info Tento blog je v "read-only módu" a nový obsah již nebude přibývat. O vývoji píšu na DevBlog.

Proč nemám rád AJAX

AJAX je hitem současnosti. Má na web přinést plně interaktivní a uživatelsky přítulné aplikace. So far so good, ale jaká je realita? Pro mě bohužel většinou bolestná…

Na zahřátí doporučuji přečíst Why Ajax Sucks (Most of the Time), což je článek, který strhl pozornost nejen tím, že se jedná o malý podvůdek, ale i svým obsahem. Hlavní problém je (podle McEvoye) filosofický – web je postaven na konceptu stránky a AJAX toto paradigma boří. Stránka už neodpovídá jednotce informace, ale množině informací, ke kterým je potřeba se proklikat. Nabourán je taky koncept URL – není možné zmáčknout Ctrl+D a stránku si přidat do oblíbených, není možné poslat link kamarádovi atd. atd. To je vážný problém.

Co ale vadí mě? Jako příklad si k ruce vezmu Centrumácký mail. Celkově na něj mám velmi pozitivní názor – myslím, že je to jedna z nejlepších aplikací běžících v prohlížeči, jaké jsem kdy viděl. Velmi dobře se ovládá, rozhraní je navržené s citem, funkčnost je bezproblémová, běhá to celkem svižně i na mém EDGE připojení atd. Při práci mi ale časem začalo vadit pár věcí, které jsou způsobeny AJAXovou implementací.

Zaprvé nefunguje otevírání v nových záložkách prohlížeče. Na pomalém připojení je otevírání v záložkách jedna z největších úspor času, protože typicky brouzdám tak, že čtu hlavní stránku, odkazy si otevírám v dalších tabech a přepnu se na ně, až jsou plně nahrané. V Centrum mailu nemůžu. Nebo co když potřebuji odpovídat na nějaký mail, který bych současně chtěl mít otevřený v druhém okně nebo v záložce? Nemůžu. Zvlášť tento druhý případ značně zhoršuje použitelnost.

Tlačítko Zpět je případem samo o sobě. Uživatel je zcela zničen. Zmáčkne zpět a místo na předchozí obrazovku se dostane zcela mimo aplikaci – nejen na nesmyslnou stránku, ale úplně pryč! Je katastrofou, když tlačítko zpět znamená totéž co příkaz „odhlásit se“ (uživatel sice odhlášen není, ale cítí se tak). Určité metody na řešení tlačítka Zpět existují (Ajax: tlačítko zpět a záložky, Tlačítko Zpět, bookmarky atd. v AJAXu), ale stále se jedná o problematickou oblast.

A jaké přináší AJAXová implementace Centrum mailu výhody? Abych byl upřímný, žádné zásadní nevidím. Je pravdou, že rozhraní působí „moderně“ a že moje uživatelská zkušenost je o něco bohatší. Ale drag&drop není výsadou AJAXu, stejně jako další vymoženosti jako přepínání pohledů apod. Co mi tedy tak zpříjemňuje život? Rozhraní je trochu svižnější, to je ale současně kompenzováno nemožností otvírat nepřečtené zprávy do nových tabů, takže tady zase čas ztrácím. Jednoduše řečeno, AJAXová implementace mi žádné velké výhody nepřinesla, zatímco třeba nefunkční tlačítko zpět je velkým klackem pod mé nohy. A to ještě webmail spadá do kategorie webových aplikací, kde se AJAX ještě relativně hodně hodí. Přeci jen má blíže k „aplikaci“ v tradičním slova smyslu než k „webové stránce“. I přesto jsem s AJAXem na Centru nespokojený. Divné…

Google Suggest

Ale znám ještě jeden brutálnější příklad. Častá argumentace ve prospěch AJAXu zní, že je potřeba ho používat s rozumem a že když se použije decentně, je vše v pořádku. Tak si vezměme Google.com a jeho úžasný Google Suggest. Všeobecně panuje názor, že právě to je vhodné použití AJAXu na jinak „normální“ stránce. Budiž. Píšu „Visual Studio Tools“, mačkám enter a čekám, že se mi vyhledá dotaz „Visual Studio Tools“. Zvednu hlavu od klávesnice a koukám, že mi Google vyhledal „Vistual Studio Tools for Office“, což jsem ale vůbec nechtěl! Postavím se za slovo „Visual“, označím celý zbytek textového pole a hle, Googel Suggest mi zbytek automaticky vymaže, což je neuvěřitelně stupidní chování. Jak si Google může dovolit bez upozornění mazat můj text? Proč uživateli tak výrazně komplikuje práci?

Ne, opravdu nevidím důvod, proč se dnes AJAXem zabývat. Jeho vývoj je těžký, podpora prohlížečů daleká dokonalosti a mí uživatelé budou naštvaní. K čemu AJAX?

Zařazeno do kategorií |
Daniel Stegierwald (Út, 2006-01-31 12:33):

Super, uživatelská zkušenost / testování je nejen pro AJAX like aplikace je víc jak nutná. Souhlasím s tezí, že někdy AJAX nepřináší zdaleka tolik uživatelské přívětivosti, zejména ve srovnání s časem a náklady obětovanými :) Sám sem si tak v jednom projektu naběhl… Ale se závěrem článku dost nesouhlasím.. Je dost věcí, které se bez AJAXu řeší příšerně… např. TextBox suggest, závyslé comboBoxy, mapy, drag and drop (na to out of bound call potřebuješ, ne že ne, jak bys persistoval stav?…)

Borek (Út, 2006-01-31 12:59):

Ano, v určitých případech je AJAX požehnáním – závislé ComboBoxy považuji za výborný příklad. Celkově mi ale AJAX komplikuje život a proto k němu mám jako uživatel více méně negativní vztah (jako programátor je to jiná – takový ASP.NET Atlas je bezva věc a při pohledu na Atlas Wiki jsem zůstal jen zírat).

Je pravdou, že závěr článku je poněkud příliš negativní, ale kdybych tam ještě vtěsnal případy, kdy AJAX ano a že to vlastně není tak strašné, neměl bych příště o čem psát :)

martin (Út, 2006-01-31 13:05):

S obsahem musím souhlasit, ale nadpis je špatně. AJAX za to nemůže, za to můžou idioti vývojáři Centra a Googlu. Přece nejde obviňovat technologii jen proto, že ji nějaký blbínek špatně použije.

Pokud mám vyjádřit svůj názor na AJAX, pořád ten boom webových aplikací, které vypadají jako standalone, moc nechápu. Dle mého mají jen několik výhod – není je třeba instalovat, pořád máte poslední verzi, jsou nezávislé na OS. Ale spoustu nevýhod – prohížeče se liší, aplikace se špatně navrhují a programují, ne všechno funguje podle očekávání, obcházení desítek bugů je nutnost. Osobně dávám přednost například technologii Java Web Start, která přebírá výhodu a potlačuje nevýhody. Java je všude stejná. Proč to není více rozšířené? Tomu nikdy neporozumím. Možná je jméno málo sexy? Nebo tomu chybí XML?

Borek (Út, 2006-01-31 13:35):

Myslím, že se vývoj může vydat třemi směry:

1. Web 2.0, 3.0 atd. AJAX získá podporu prohlížečů, výrazně se ulehčí jeho vývoj (třeba pomocí Atlas frameworku), Google i NetCentrum dostanou rozum a vytvoří poněkud použitelnější implementace svých aplikací a všichni budou šťastni.

2. Zvítězí koncept chytrých klientů, jak to navrhuješ ty, Martine. Javě v této oblasti moc nevěřím, ale .NET Framework umí něco podobného (ClickOnce) a za pár let bude nepochybně na drtivé většině počítačů planety. Pokud by AJAX zůstal tak komplikovaný na vývoj, ekonomicky by se pak vyplatilo dělat chytré klienty (nehledě na to, že mají své další podstatné výhody, jako třeba bohaté GUI apod.)

3. Přijde XAML a bude všem dalším teoriím konec :) Výhledově by mohl zcela zaniknout rozdíl mezi desktopovou a webovou aplikací.

Na nejbližších 5 až 10 let nejvíc věřím variantě 1. I pár procent z miliardy uživatelů je hodně a Google a spol. tak pravděpodobně budou dále sázet na „run anywhere“. Tak za 10 let by ale potřebný framework (ať už .NET, Java nebo WPF) mohl být úplně všude a potom věřím, že desktopové aplikace spouštěné z webu zažijí renesanci a browser se stane pouze kontejnerem pro běh Win128 kódu :)

Že já jsem se nedal na Vysokou vizionářskou :)

rarouš (St, 2006-02-01 18:28):

A ještě je tu Flex :)

Borek (St, 2006-02-01 20:20):

Tak tomu věřím ještě míň :)

ATom (Čt, 2006-02-02 19:07):

Borek: A proč nevěříš Javě v této oblasti? Proč nevěříš něčemu, co se už tak dlouho vyvýjí a novému .NET ano? Já jsem za .NET rád, znamená to konkuenci (a dobrou konkurenci) pro Javu a tak věřím, že Sun bude držet krok.

Jinak ještě se zapomnělo na XUL: http://www.fa­ser.net/…tent/mab­.xul (chce to FF nebo Mozillu)

» Použitelnost našeptávačů (Pá, 2006-02-03 00:37):

[…] V zápisku Proč nemám rád AJAX byl důkladně proprán a vyžehlen Google Suggest, který osobně považuji za jednu z nejhorších implementací AJAXu, jaké jsem kdy viděl. Jak moc použitelné jsou české našeptávače? […]

Borek (Pá, 2006-02-03 09:13):

ATom: Nevím, Javě na desktopu prostě neveřím. Zde je výstižná citace z History of the C family of languages:

1997 – Taking the advice of hallucinating industry analysts, Corel decides to rewrite all their applications, including WordPerfect, in Java. The end result is the first known word processor that is slower to use than a typewriter.

Navíc

  1. Microsoft má tržní sílu prosadit celkem cokoliv.
  2. .NET není mladý, je tady už zhruba 6 let a verze 2.0 je vyspělá záležitost
  3. .NET nabízí víc než Java – pokud chcete tvrdit opak, pak mi ukažte obdobu Microsoft Max
von b (Pá, 2006-02-03 19:16):

mně spíše na webmailu Centrumu irituje, že jsou maily omezeny do malinkatého iifrajmu nebo co to je a nejdou tudíž zobrazit všechny najednou, když musí člověk mazat spoustu spamů a může to dělat je po pár kouscích, tak brzo vše raději vzdá a založí si nový mail, nejspíše na jiném freemailu

Borek (Pá, 2006-02-03 21:09):

von b: Příkaz „Smazat vše ve složce“ najdete v comboboxu „Další akce“

Llaik (Ne, 2006-02-05 09:23):

2von b: myslis, ze strankovani po 100 (pricemz vsech 100 jde pri slusnem monitoru dostat na jednu obrazkovku) je malo? :) ja spis trpel na gmailu, kde vysledek vyhledavani je omezen na 20 mailu – a takto mazat je uz opravdove utrpeni…

pokud mas na centru zaple cteni mailu pod vypisem slozky, tak se malu viditelnych mailu nediv. Prepni si ikonkou mod na neco bez cteni a vejde se ti jich tam tusim az tech 100.

http (Po, 2006-02-06 13:00):

Tak jsem zkoušel google suggest a tvůj příklad.

Mě se to zdá logické, protože jsi se postavil ze slovo Visual a nenechal tam za ním žádnou mezeru, tak našeptávač automaticky rozpoznal, že chceš vyhledávat jenom slovo visual a nic víc.

Pavel

Borek (Po, 2006-02-06 14:07):

http: Zkus si tohle:

1. Napiš do Googlu „visual studio tools“ a zmáčkni Enter. Vyhledá se ti „visual studio tools for office“

2. Ve výsledcích hledání si stoupni do vyhledávacího políčka těsně před slovo „studio“, tedy takhle: „visual |studio tools for office“

3. Zmáčkni Shift+šipka doprava. Místo označení písmene „s“ Google chytře nahradí celý vyhledávaný výraz výrazem „visual basic“

Ještě pořád ti to přijde logické?

[…] P.S. Nejedná se nahodilý výsledek, zkusil jsem vyhledat zpětné odkazy na zdejší článek Proč nemám rád AJAX, který je nebo byl odkazován jen ze dvou míst: z hlavní stránky tohoto blogu a z La Trine (je mi velkou ctí). Google nic, Yahoo! i MSN bez problémů. […]

pivko (Pá, 2006-03-03 17:53):

pozvu na pivko toho, kdo mi napise kod, ktery kdyz napisu napr. www.neco.html?… mi vrati html stranku jejimz obsahem budou vysledky naseptavace seznamu :o)

Komentáře jsou uzavřeny (blog je v read-only módu). Pokud mě chcete kontaktovat, můžete mailem.