Dnes jsem si přečetl článek na Lupě o webových kancelářských balících. Zas mě to trošku namíchnulo, takže musím napsat o webových aplikacích něco i já.
Na začátku, co že mi vlastně vadí. Vadí mi to, že se veškerá komunikace po síti a hlavně po Internetu přesouvá na www stránky. Příkladů je nesčetně: začíná to nevinnými webmaily, na které si už všichni (bohužel) zvykli, prochází přes webová rozhraní pro správu routerů, tiskáren, APček, modemů a končí u komplexních aplikacích, jako jsou výše zmíněné kancelářské balíky, kalendáře, IM klienti atd. Skoro vše v poslední době založeno na "spásném" AJAXu, nevyžadujícím žádný plugin do prohlížeče.
Proč mi to vůbec vadí? Jako člověk, co semtam napíše nějaký ten program, mám o tom, jak počítače fungují, nějaké tušení. Neříkám, že úplně do detailů, koneckonců osobně považuju webové programování jako takovou spodinu programování... výkopové prace v informační technologii. Jednoduchý informační systém v PHP + MySQL a hlavně jednu aplikaci s AJAX technologií jsem napsal (byl to webový SSH klient, dal jsem sem screenshot, přes prohlížeč jste se připojili na SSH účet a komunikace probíhala přes něj. BTW je to odstrašující ukázka toho, kam webové programování může vést). Takže si myslím, že neplácám jen tak z vody a že něco o programování webu vím. Abych se vrátil k tématu, proč mi vlastně webové aplikace vadí:
Internet se postupně vyvíjel, vznikaly jednotlivé specializované služby, kterých využívali ve většině případů zasvěcení lidé. Vezměme si jako příklad poštu. Pro příjem pošty existuje protokol POP3 nebo IMAP4 a jejich šifrované varianty, pro odesílání zase SMTP. Na počátku, než vznikly první emailové klienty, uměli uživatelé příkazy těchto protokolů zpaměti. Ale je třeba nějaké to zjednoduššení, že ano, odeslání mailu bylo nepohodlné a pomalé. Dobře, vznikly tedy emailové klienty, kam se ale případné POP3/SMTP servery zadat musely. Časem se však objevilo zlo: webmail. Uživatelé mohli přistupovat ke své poště odkudkoliv, kde byl webový prohlížeč a přístup k Internetu. Co na tom, že to samé je možné přes protokol IMAP4.
U pošty je to ještě jakž takž pochopitelné - k poště je třeba přistupovat na různých místech a ne všude je bezpečné vkládat přístupové údaje včetně hesla do mailového klienta, který nemusí být na stroji (třeba v kavárně) ani nainstalovaný.
Horší je to u specifičtějších aplikací. Například nastavení tiskárny. Dřív se dělalo přes TELNET, tiskárna v sobě měla jednoduchý program, který komunikoval přes TCP/IP, často tam bývalo normální menu... Dnes musí být v tiskárně aspoň jednoduchý webový server (případně program, který generuje HTML - což je vlastně webserver), který vrací dané stránky. To samé u konfigurací ADSL modemů, access pointů, routerů... U běžných webů se zase rozmáhá používání programu phpmyadmin, který umožňuje správu MySQL databází přes web. Takže nejen, že je spousta rádobyprogramátorů, co bastlí weby v ne moc hezkém jazyku PHP (od verze 5 je to trochu lepší, uznávám), ale už ani pořádně nevědí, co je to ta databáze vlastně zač - mají webové rozhraní, kde si to všecko lidově řečeno naťukají a hotovo.
Poslední kapitolou je AJAX. Jde o zkratku pro Asynchronous Javascript And XML a jeho sláva spočívá v tom, že umožňuje interaktivní komunikaci mezi klientem (prohlížečem) a webserverem. Častým příkladem jsou ankety na Lupě, Rootu... kliknete na nějakou možnost, hlas se odešle a příslušně se změní blok s anketou. Nenačítá se znovu celá stránka, ale jen to, co se změnilo. Můžete tak třeba psát a přitom se interaktivně mění vzhled obrazovky. Vše záleží na rychlosti linky.
Problém je tom, že vše probíhá po HTTP protokolu. Ten nikdy nebyl dělán na něco takového, na takhle komplexní záležitosti. HTTP je bezestavový, nepamatuje si, co poslal předtím, v jakém pořadí má posílat jednotlivé požadavky. Může se tak stát, že některý požadavek předběhne jiný, server něco vrátí a v prohlížeči to začne dělat nelogické věci. Toto se pak musí komplikovaně ošetřovat, přidávat prodlevy, posílat HTTP požadavky přes nějaký kontrolovaný zásobník apod... do tohoto už tolik nevidím. Klesá tím vším však výkon samotné aplikace. HTTP nebyl a není dělán na komplexní aplikace, jako je textový procesor. Bohužel programátoři (často pod tlakem manažerů, kteří chtějí pro své miláčky klienty udělat cokoliv) takové věci dělají, převádějí každou věc do www stránek. Proto vznikly Java pluginy, Flash pluginy... věci, které se snaží na úrovni aplikační vrstvy nahradit to, co prohlížeč HTML souborů neumí. Z prohlížeče se stává jedno velké multimediální centrum. Je tam vrstva, která brzdí optimalizaci, výkon... a to web. Internet nerovná se web. Bohužel na to spousta lidí zapomíná.
Běžní uživatelé takové věci ani neví a často pokud vědí, tak je jim to jedno. Dělat by s tím něco měli tedy ti zasvěcení - programátoři. Neměli by se snažit cpát všechno na web, ale udělat specifickou aplikaci. Jo, jsem idealista, takhle to nechodí a chodit asi nikdy nebude, ale nelíbit se mi to všechno může.
Na začátku, co že mi vlastně vadí. Vadí mi to, že se veškerá komunikace po síti a hlavně po Internetu přesouvá na www stránky. Příkladů je nesčetně: začíná to nevinnými webmaily, na které si už všichni (bohužel) zvykli, prochází přes webová rozhraní pro správu routerů, tiskáren, APček, modemů a končí u komplexních aplikacích, jako jsou výše zmíněné kancelářské balíky, kalendáře, IM klienti atd. Skoro vše v poslední době založeno na "spásném" AJAXu, nevyžadujícím žádný plugin do prohlížeče.
Proč mi to vůbec vadí? Jako člověk, co semtam napíše nějaký ten program, mám o tom, jak počítače fungují, nějaké tušení. Neříkám, že úplně do detailů, koneckonců osobně považuju webové programování jako takovou spodinu programování... výkopové prace v informační technologii. Jednoduchý informační systém v PHP + MySQL a hlavně jednu aplikaci s AJAX technologií jsem napsal (byl to webový SSH klient, dal jsem sem screenshot, přes prohlížeč jste se připojili na SSH účet a komunikace probíhala přes něj. BTW je to odstrašující ukázka toho, kam webové programování může vést). Takže si myslím, že neplácám jen tak z vody a že něco o programování webu vím. Abych se vrátil k tématu, proč mi vlastně webové aplikace vadí:
Internet se postupně vyvíjel, vznikaly jednotlivé specializované služby, kterých využívali ve většině případů zasvěcení lidé. Vezměme si jako příklad poštu. Pro příjem pošty existuje protokol POP3 nebo IMAP4 a jejich šifrované varianty, pro odesílání zase SMTP. Na počátku, než vznikly první emailové klienty, uměli uživatelé příkazy těchto protokolů zpaměti. Ale je třeba nějaké to zjednoduššení, že ano, odeslání mailu bylo nepohodlné a pomalé. Dobře, vznikly tedy emailové klienty, kam se ale případné POP3/SMTP servery zadat musely. Časem se však objevilo zlo: webmail. Uživatelé mohli přistupovat ke své poště odkudkoliv, kde byl webový prohlížeč a přístup k Internetu. Co na tom, že to samé je možné přes protokol IMAP4.
U pošty je to ještě jakž takž pochopitelné - k poště je třeba přistupovat na různých místech a ne všude je bezpečné vkládat přístupové údaje včetně hesla do mailového klienta, který nemusí být na stroji (třeba v kavárně) ani nainstalovaný.
Horší je to u specifičtějších aplikací. Například nastavení tiskárny. Dřív se dělalo přes TELNET, tiskárna v sobě měla jednoduchý program, který komunikoval přes TCP/IP, často tam bývalo normální menu... Dnes musí být v tiskárně aspoň jednoduchý webový server (případně program, který generuje HTML - což je vlastně webserver), který vrací dané stránky. To samé u konfigurací ADSL modemů, access pointů, routerů... U běžných webů se zase rozmáhá používání programu phpmyadmin, který umožňuje správu MySQL databází přes web. Takže nejen, že je spousta rádobyprogramátorů, co bastlí weby v ne moc hezkém jazyku PHP (od verze 5 je to trochu lepší, uznávám), ale už ani pořádně nevědí, co je to ta databáze vlastně zač - mají webové rozhraní, kde si to všecko lidově řečeno naťukají a hotovo.
Poslední kapitolou je AJAX. Jde o zkratku pro Asynchronous Javascript And XML a jeho sláva spočívá v tom, že umožňuje interaktivní komunikaci mezi klientem (prohlížečem) a webserverem. Častým příkladem jsou ankety na Lupě, Rootu... kliknete na nějakou možnost, hlas se odešle a příslušně se změní blok s anketou. Nenačítá se znovu celá stránka, ale jen to, co se změnilo. Můžete tak třeba psát a přitom se interaktivně mění vzhled obrazovky. Vše záleží na rychlosti linky.
Problém je tom, že vše probíhá po HTTP protokolu. Ten nikdy nebyl dělán na něco takového, na takhle komplexní záležitosti. HTTP je bezestavový, nepamatuje si, co poslal předtím, v jakém pořadí má posílat jednotlivé požadavky. Může se tak stát, že některý požadavek předběhne jiný, server něco vrátí a v prohlížeči to začne dělat nelogické věci. Toto se pak musí komplikovaně ošetřovat, přidávat prodlevy, posílat HTTP požadavky přes nějaký kontrolovaný zásobník apod... do tohoto už tolik nevidím. Klesá tím vším však výkon samotné aplikace. HTTP nebyl a není dělán na komplexní aplikace, jako je textový procesor. Bohužel programátoři (často pod tlakem manažerů, kteří chtějí pro své miláčky klienty udělat cokoliv) takové věci dělají, převádějí každou věc do www stránek. Proto vznikly Java pluginy, Flash pluginy... věci, které se snaží na úrovni aplikační vrstvy nahradit to, co prohlížeč HTML souborů neumí. Z prohlížeče se stává jedno velké multimediální centrum. Je tam vrstva, která brzdí optimalizaci, výkon... a to web. Internet nerovná se web. Bohužel na to spousta lidí zapomíná.
Běžní uživatelé takové věci ani neví a často pokud vědí, tak je jim to jedno. Dělat by s tím něco měli tedy ti zasvěcení - programátoři. Neměli by se snažit cpát všechno na web, ale udělat specifickou aplikaci. Jo, jsem idealista, takhle to nechodí a chodit asi nikdy nebude, ale nelíbit se mi to všechno může.
Žádné komentáře:
Okomentovat