Jaká je budoucnost webového a internetového vývojářství?

Konec roku přímo vybízí k obecným úvahám. Pojďme se i my zde na Zdrojáku pro jednou zamyslet nad vývojařinou jako takovou. Jak se mění náš pohled na věci spojené s vývojem webů? Jak dlouho si ještě vystačíme s tím, co umíme? A jestli si s tím nevystačíme, tak co se máme naučit? Kudy půjde vývoj?

Pročítám si poslední dobou články na Zdrojáku a diskuse u nich a snažím se nevšímat si konkrétních slov a technických detailů, ale spíš zachytit ducha doby, nějaký jednotící pocit, převládající tendence, směry… A když se nad tím zamyslím, vychází mi jako ústřední prvek změna.

Což není nijak překvapivé, protože svět IT se neustále mění. Co platilo před několika lety je dnes beznadějně zastaralé a včerejší IT odborník musí leckdy zahodit podstatnou část toho, na čem donedávna stavěl, a začít stavět znovu, chce-li zůstat odborníkem i zítra. Tak jsme i na Zdrojáku svědky změny a posunů stylů, postupů a priorit. Včerejší jistoty se dnes drolí a kdo si vsadí, že se zítra rozpadnou, pravděpodobně neprohraje, i když bude podobná sázka někomu připadat jako čiré šílenství. 

I proto je jakákoli predikce vývoje v IT věštěním z křišťálové koule. Říct, co bude ve vývoji webů za dva, tři roky „in“, je čiré plácání do vody. Ale přesto lze na základě určitých obecných tendencí s poměrně vysokou měrou pravděpodobnosti říct, kudy se bude ubírat „mainstream“ (který má vždy několikaleté zpoždění za novinkami v oboru) a které z dnešních novinek budou zítřejšími (či pozítřejšími) „standardy na trhu“. Leckdy stačí jen sledovat intenzitu diskuse k jednotlivým tématům.

Konec „webdesignu“

Například taková grafika webu. Když se řekne „udělat web“, představí si spousta lidí především grafický návrh. Vypadá to logicky a pochopitelně, přesto však někteří, v oboru respektovaní, tvůrci otevřeně hovoří o tom, že grafický vzhled webu je v porovnání s ostatními aspekty vlastně nepodstatná věc. Že je v zásadě úplně jedno, jestli je web vzhledově takový či onaký. Ostatně: Jakou „grafiku“ měl e-shop, kde jste naposledy nakupovali? A jakou „grafiku“ má vaše elektronické bankovnictví? Jakou „grafiku“ má web vašeho oblíbeného zpravodajství?

Je jasné, že grafickou stránku člověk vnímá a „ten svůj“ web podle ní pozná. Ale pokud mu web „sedne“ do ruky a do hlavy, pokud se na něm bez problému orientuje a pokud získá to, co požaduje, tak je mu jedno, jestli boxy mají stíny nebo kulaté rohy. Důležitější je, zda ho něco ruší nebo zda se cítí pohodlně. Stránka může být vizuálně škaredá jak upomínka od finančního úřadu, ale když se na ní uživatel cítí „jako doma“, tak se na ni bude vracet. Grafika totiž nedokáže udělat ze spatlaného návrhu použitelný web, a ani sebeošklivější (míněno esteticky) kombinace barev nedokáže sama o sobě „zabít“ web, který funguje. Nepochybujme o tom, že grafika dokáže použitelnost webu podtrhnout (v obou smyslech toho výrazu), ale není při návrhu webu tím hlavním. Hlavní jsou věci jako „použitelnost“, „přístupnost“, „uživatelský prožitek“… Přesto stále řada lidí (nejen klientů, ale i tvůrců) zužuje „návrh webu“ jen na to, aby byl „hezky namalovaný“. Snad proto, že „obrázek“ dokáže posoudit i laik z oddělení PR a od oka řekne, zda web je v „korporátních barvách“, ale použitelnost nebývá z grafického návrhu zřejmá. O to horší (a dražší) jsou pak důsledky chyb. A jednou z největších chyb u webdesignu je dělat web tak, aby se vzhledově líbil zadavateli.

Rozdrobení

Jiná, a poměrně zásadní, změna se odehrává už řadu let a ovlivňuje velké množství oblastí, od metodiky vývoje přes vývojářské nástroje až po samotnou infrastrukturu a technologie. Klíčová slova, určující tuto změnu, jsou „decentralizo­vaný“, „distribuovaný“ či „paralelní“. Tato změna je tak zásadní, že jsem ji v jedné diskusi před několika dny přirovnal ke změně, kterou přinesla Brunova teorie o mnohosti světů. Stejně jako ona rozbila představu o výsadní pozici Slunce ve vesmírném uspořádání a hierarchii, tak i tato změna boří tradiční modely fungování systémů – a tady mám na mysli nejen ty počítačové.

Od modelu „Centrální počítač – mnoho terminálů“ se přechází k síti vzájemně propojených služeb. Tomuto přechodu napomohl internet, který, ačkoli je mnohými subjektivně vnímán jako nějaká uzavřená entita, k níž se připojujeme (něco jako když si pořídíme průkazku do knihovny a chodíme si tam půjčovat knihy), je čím dál zřetelněji sítí propojených uzlů, kde každý, kdo se připojuje, je zároveň její součástí. Analogie „každý návštěvník knihovny je zároveň knihou“ je sice přesná, ale těžko představitelná – což leckdy svádí lidi k domněnce, že to tak není, přesně podle myšlenkového schématu „Co si nedovedu představit, to není možné“.

Webexpo 2009 - ilustrace
S nejnovějšími trendy a novými pohledy na webový vývoj jsme se mohli letos zblízka setkat například na WebExpu  (Ilustrační foto: Ivana Dvorská)

Internetový partyzán

Ztráta hierarchické struktury, spojená s decentralizací, se dá přirovnat k transformaci armády v autonomní partyzánské oddíly. Klasický voják se bude stále ptát: „No ano, ale kdo tomu bude velet?“ – Nikdo – „No a jak budeme vědět, co máme dělat, když nedostaneme rozkazy?“ Změna myšlení z vertikální hierarchie nadřízený – podřízený na hierarchii síťovou, kdy nelze předem říct, kdo bude velet ani co se bude dělat, se ukazuje jako nezbytná podmínka pro další rozvoj oboru („všechno zbourat, stavíme znovu!“) Podobně jako v neuronových sítích či v jejich biologických předobrazech není struktura předem dána ani známa, neví se, kdo bude velet, neví se kam se půjde ani kudy – a přesto to funguje a dokáže to produkovat smysluplné výsledky. A nejen to: Adaptabilita, kterou přináší zrušení pevně daných struktur, se ukazuje být evoluční výhodou.

Například v organizaci práce se tato změna projevuje přechodem od „modelu vodopád“ (tj. lineární postup, kde na začátku je zadání, analýza, vývoj, testy, opravy a nakonec hotový produkt) k agilním postupům, které fungují v krátkých iterativních cyklech, kdy se po malých dávkách postupuje k cíli. Nevýhody těchto postupů (hlavně ta, že nelze dopředu říct přesnou cenu ani termín) jsou v klasické „strukturované“ organizaci fatální. V reálném světě však začínají převažovat výhody – tedy možnost změnit zadání kdykoli během vývoje, pružně reagovat na vnější vlivy či reálně opustit model „programátor sedí osm hodin v kanceláři, má měsíc dopředu daný úkol, píše kód a při odchodu musí udělat commit do CVS“. Velké softwarové firmy takový model za svůj přijmou dnes jen stěží, protože staví na hlavu jejich zaběhnuté metodiky, normy, systémy řízení a postupy práce. Pro menší týmy je ale agilní metodika výhodou (pokud doopravdy pochopí princip Agile, ne pokud slepě aplikují poučky z příruček).

Konec tradičních hodnot

S rozpadáním monolitů na drobné jednoduché části souvisí třeba i nástup NoSQL databází – jednoduchých úložišť, která uloží jakákoli data, aniž by bylo zapotřebí předem specifikovat, jakou budou mít formu a jaké budou mít vazby. Proti obřím databázovým strojům mají několik podstatných výhod – jsou flexibilní, levné, snadno škálovatelné a rychlé. Díky těmto vlastnostem razantně nastupují do světa webových aplikací, kde naráží na velmi tuhý odpor – zejména ze strany vývojářů. Leckteří se naučili perfektně normalizovat databázi, znají všechny fígle a vychytávky Toho Svého Oblíbeného Systému, vědí, jak optimalizovat dotazy a jak využít indexy (a jsou v tom opravdu dobří), tudíž je pro ně představa, že o tohle všechno přijdou, velmi těžká.

Ne snad že by to byli omezenci či že by měli zkostnatělé myšlení, to ne. Spíš to jsou lidé, co jsou opravdu dobří v navrhování modelů relačních databází a dokáží vidět v duchu strukturu databáze už na úvodním setkání se zákazníkem. Struktura databáze je pro ně nejen denním chlebem, ale i jistotou, ke které se lze vrátit vždy, když při vývoji něco selže. NoSQL (přesněji „non-schematic“) databáze tuhle jistotu bere. Místo jasně dané kostry, kde je hned vidět, že tohle souvisí s tamtím a v objednávce jsou položky a ty mají tahleta políčka jsou najednou nějaké amorfní shluky dat, nad nimiž nelze kouzlit s LEFT JOIN a HAVING a WHERE. Data zdánlivě ztrácí řád a mění se v chaos. Ovšem chaos jen zdánlivý – stačí si stoupnout o kus dál a podívat se z jiného úhlu. Což ne vždy bývá snadné, obzvlášť pokud jste velmi dobří v pozorování a navrhování struktur.

Pilní hlupáci

Kdysi jsem v knize o psychologii četl zajímavý postřeh, který zněl zhruba tak, že pracovitý debil je pro společnost užitečnější než psychopatický génius. To, co tato (mimochodem: pravdivá) sentence říká o lidské společnosti nechme stranou a zkusme ji aplikovat na svět IT.

Čím dál víc se odděluje opravdová tvůrčí práce od hrubé síly. Ano, pamatuju se na dobu, kdy počítač měl několik kilobajtů paměti a každý větší program bylo umělecké dílo sui generis. Ano, pamatuji se na časy, kdy každý server obsahoval databázi, webový server a filesystém a kdy každý návrh databáze byl unikátem (ne přímo „klenotem“). Kdy každý web byl od základu napsán na zelené louce. Ostatně, není to tak dávno. 

Dnes je ale „hrubá síla“ dostupná a levná. Mnohem důležitější, než odhadnout nároky aplikace za rok či dva je schopnost napsat ji tak, aby fungovala pro dvě stě uživatelů i pro dvě stě tisíc uživatelů plus mínus stejně, aby stačilo jen přidat několik dalších strojů a říct: Ty budeš databáze, ty HTTP server. Neméně důležité je ale použít takovou infrastrukturu, která podobné čarování umožňuje – jako například cloud.

Armáda jednoduchých a levných strojů udělá pak požadovanou práci levněji, rychleji a spolehlivěji než jeden geniální výtvor geniálního autora. Nehledě na to, že jednoduché a levné stroje je snazší nahradit, přikoupit, rozprodat, opravit, přeskupit, spravovat, provozovat… Čímž nijak nepopírám nenahraditelnou roli intelektu, jen tvrdím, že by se měl realizovat někde jinde než v oblasti „šetření levné námezdní síly“. Ušetřený megabyte prostoru je dobrý možná někde… někdy… ale pro většinu aplikací je námaha, vynaložená na tuhle úsporu, mnohem dražší než onen megabyte prostoru.

Změna úhlu pohledu

Není to tak dlouho, kdy mi jeden velmi uznávaný tvůrce webů říkal: „Ne, frameworky a knihovny nepoužívám! Nechci trávit čas tím, že hledám chyby někoho jiného, to si raději udělám svoje!“ Po relativně krátkém čase, po pár měsících, mi líčil své nadšení z jQuery a z toho, že se konečně nemusí hodiny zabývat kompatibilitou mezi různými prohlížeči a tajuplnými chybami, a místo toho opravdu tvoří. Ovšem přechod k tomuhle poznání byl jistě velmi náročný – znamenal pro něj změnit pohled na to, jak se má web dělat.

Učeně se tomu říká změna paradigmatu. Pokud chceme dál rozumět tomu, jak se vyvíjí (pro) web, je nezbytné dřív nebo později změnit svůj úhel pohledu na spoustu věcí, které jsme se dodneška učili téměř jako základy řemesla, a které mohou leckomu připadat až svatokrádežné­. Třeba:

  • Na webu není potřeba čarovat s grafikou, ale s logikou.
  • V cca 98 % případů se výkřik „ten web dělal kretén!“ nevztahuje ke sladění barevné palety ani k použití určitého fontu, ale k ovládání služeb a dostupnosti údajů.
  • Nikoho nezajímá váš názor na prohlížeče. Lidi zajímá, jestli jim váš web bude fungovat na jejich zařízení. A to zařízení nebude vždycky jen PC!
  • Webová aplikace potřebuje rychle dostat data a předat je dál. Nikoho neokouzlí, že umíte napsat stored procedure a optimalizovaný JOIN přes pět tabulek.
  • Uživatel webu neřeší, jestli FLASH nebo ExtJS nebo Silverlight, zajímá ho, jestli mu to bude k něčemu dobré.
  • Server není unikátní osobnost, k níž si budujete vztah, server je stroj, co posílá data z místa A do místa B. Nebo dva stroje. Nebo osm strojů. Nebo jiných osm strojů.
  • Databáze webové aplikace není výpočetní středisko, ale skladiště dat. Nemusí být chytré, stačí že je rychlé, dá se snadno zvětšit, když data přibudou, a dá se snadno upravit, když se data změní.
  • Dělejte věci tak jednoduché, jak jen mohou být, ale ne jednodušší. (Když se něco má chovat jako pole, použijte pole, když je něco tabulka, použijte tabulku. No a na web se třemi statickými stránkami nepotřebujete Zend Framework a RDBMS!)
  • Programátor webových aplikací většinou nepotřebujete databázi jako takovou, ale perzistentní objekt a session.
  • Programátor má řešit problémy, ne psát stokrát to samé. To se dělá ve škole za trest.
  • Spousta problémů, které programátoři řeší, jsou dávno vyřešenými problémy někoho jiného.
  • Potřebujete na svůj web (třeba) diskusní fórum? Špatný vývojář si ho napíše. Dobrý vývojář použije už hotový balík, který přizpůsobí svým potřebám. Rozumný vývojář si ho koupí jako službu a ušetřený čas věnuje opravdu tvůrčí práci.
  • Neptejte se „jak udělám na serveru náhled nějaké stránky v PNG“, zeptejte se kdo to umí a za kolik. Naopak (pro)dávejte to, co umíte vy. Tam, kde si každý dělá všechno sám a znovu po svém a pro sebe, nakonec mají všichni míň, než by mohli mít.
  • Nejsou věci „bezpečné“ a „nebezpečné“, jsou jen různé míry rizika. Různí lidé akceptují v různých situacích různou míru rizika.
  • Nikdo vám neřekne co máte dělat. Musíte si na to přijít sami
  • Až zjistíte, že nad vámi ani pod vámi nikdo není, zkuste se rozhlédnout okolo sebe.

Možná vám to ve vaší firmě, kde se třeba ještě dohadujete, jestli přejít na XHTML a o kolik dražší je dělat aplikace „i pro Mozillu“, připadá jako hudba budoucnosti. Nebo jako nesmyslné novoty, na které nemáte čas… Třeba to hodíte do škatule s nápisem „módní hlouposti, po kterých za pět let pes neštěkne“ a „věci, co tu jsou už dávno, jen jim dal někdo nálepku a všichni o nich mluví“. Možná máte pravdu. Možná mají pravdu hlasatelé změn. Uvidíme v dalších týdnech, měsících a letech. Já osobně sázím na změnu a gratuluji všem vývojářům, pro něž jsou výše popsané věci „současné“. Vězte, že to není ani zdaleka samozřejmé!

Pojďme tu změnu sledovat společně!

Pokud s touto úvahou nesouhlasíte, můžete ji brát třeba jako žertovný „Silvestrovský speciál“, můžete se jí od srdce zasmát nebo zanadávat autorovi v komentářích; autor slibuje, že je stejně nebude číst.

Začal programovat v roce 1984 s programovatelnou kalkulačkou. Pokračoval k BASICu, assembleru Z80, Forthu, Pascalu, Céčku, dalším assemblerům, před časem v PHP a teď by rád neprogramoval a radši se věnoval starým počítačům.

Věděli jste, že nám můžete zasílat zprávičky? (Jen pro přihlášené.)

Komentáře: 33

Přehled komentářů

JersyWoo Změna úhlu pohledu
Martin Malý Re: Změna úhlu pohledu
Jáá Grafika
Jáá Re: Grafika
Martin Malý Re: Grafika
ra.ri.ta Záslužné
Martin Malý Re: Záslužné
jj No...
Martin Malý Re: No...
D3T Opatrne
Jan Sládek Díky
DanekA problémy někoho jiného
koudi Dobré, ale mám výhrady
Martin Malý Re: Dobré, ale mám výhrady
MarekTP Re: Dobré, ale mám výhrady
kraag Re: Dobré, ale mám výhrady
Zara Re: Dobré, ale mám výhrady
František Kučera Frantův komentář
Martin Malý Re: Frantův komentář
Karel Minařík Re: Frantův komentář
Karel Minařík Re: Frantův komentář
František Kučera Re: Frantův komentář
Petr Re: Frantův komentář
keff Re: Frantův komentář
MD Re: Frantův komentář
Petr Konstantní změna, nebo změnová konstanta?
Jan Kodera Re: Konstantní změna, nebo změnová konstanta?
Petr Re: Konstantní změna, nebo změnová konstanta?
Jan Kodera Re: Konstantní změna, nebo změnová konstanta?
Kit Re: Konstantní změna, nebo změnová konstanta?
LACO BEZ HRANIC
Martin Michálek "web" může být na grafice závislý
Břetislav Passinger Re: "web" může být na grafice závislý
Zdroj: https://www.zdrojak.cz/?p=3144