Autor Zpráva
Yuhů
Profil
Napsal jsem na Twitter
http://prng.net/blink-faq.html Internet Explorer 1997 - 2001 dosáhl dominance nestandardními vlastnostmi. Na tuto tradici chce navázat Chrome Blink.

Na to reagoval Chamurappi @Chamurappi
@janovsky Vážně? Kterými nestandardními vlastnostmi přesně?

A než bych se pouštěl do bitvy ve 140 znacích, tak raději přejdu sem.

Odpověď: například box modelem.

Explorer zahrnul do svých prohlížečů podporu CSS1 v době, kdy ještě nebyla standardizována. To mu asi nelze vyčítat. Kdo chtěl dělat pokrok, musel používat nestandardní věci, protože standardní neexistovaly. Ale například to, že Explorer implementoval box model jinak (konkrétně jako border-box), než jak se nakonec ustálil a jak ho naimplementovala Mozilla (jako content-box), vedlo k velké převaze Exploreru. I v době, kdy už nebyl nejlepší prohlížeč, si stále držel podíl, protože kodéři museli kódovat pro Explorer, aby nenaštvali většinové exploreří uživatele. Kdo kódoval pro Mozillu, byl za vola, protože sice držel standardy, ale stránky se v Exploreru rozpadaly. Dává to smysl?
Amunak
Profil
Já si třeba myslím, že konkurence je zdravá, i když přinese problémy. Kam by spěl vývoj, kdybychom na všechno měli jen jednu platformu, jedno jádro, jeden operační systém, jeden programovací jazyk a jednoho výrobce? Co když se vývojáři webkitu rozhodnou nějak ho zprznit? Takhle si můžu vybrat, který prohlížeč (s jakým renderovacím jádrem) se mi líbí. Stejně jako si můžu vybrat, jestli chci OS Windows nebo nějakou distribuci Linuxu. Vývojáři aplikací z nekompatibility nadšení nejsou, ale uživatelé si naštěstí můžou vybrat...

Taky nejsem tak naivní abych si myslel, že nějaká korporace bude dělat něco pro uživatele nebo dokonce vývojáře té platformy. Dělají obvykle všechno jen pro zisk, a to je svým způsobem pochopitelné. Třeba přestřelí a ztratí podíl na trhu. Nebo budou dělat změny, které vývoj webu posunou kupředu. Vývojáři webových aplikací se budou zase muset nějak přizpůsobit, ale nepřijde mi to jako nic výjimečného.
Trejpa
Profil
Yuhů:
Ale například to, že Explorer implementoval box model jinak (konkrétně jako content-box)
Přizpůsobil se konkurenci, v tu dobu sjednotil web (K.10). Že potom konsorcium skrze minoritní prohlížeče hlásající standardy (na úkor kompatibility) protlačilo box-model jinak, je věc další.

vedlo k velké převaze Exploreru
Nemyslím si, že by za úspěchem Internet Exploreru byly odlišnosti v zobrazování. Nově vznikající prohlížeče vcházely na jasně definovaný trh. Kdyby jim šlo o to, aby je konkurence neohrožovala nestandardními vlastnostmi, mohly tyto přijmout za své, přizpůsobit se. Nicméně jejich tvůrci zvolili marketing postavený na propagaci standardů. Po přechodnou dobu (dnes se tomu nevím proč říká válka prohlížečů), než se další prohlížeče více rozšířily, vznikaly tzv. optimalizované stránky, protože kodéři na změnu nebyli připraveni, ale postupně se přizpůsobili. A nakonec se přizpůsobil i Internet Explorer (6), aby opět zahladil nekompatibility.

Když jsem poprvé optimalizoval web postavený na stylech pro více prohlížečů, celkem rychle jsem pochopil odlišnosti box modelu a použil matrjošku více než rok před Pixym - prostě mi to připadlo jako normální řešení, které přece musí používat všichni. Teprve později jsem zjišťoval, že půlka kodérů na minoritní prohlížeče kašle a ta druhá řeší nekompatibility pomocí různých hacků v CSS.

Někdejší úspěch Internet Exploreru spatřuji hlavně v tom, že byl součástí Windows a ostatní prohlížeče nebyly marketingově ani funkčně natolik úspěšné, aby mohly konkurovat. Změna nastala až rychlým nástupem Firefoxu, a to bez ohledu na nějaké nekompatibility.
Yuhů
Profil
A ten rychlý nástup Firefoxu myslíš přišel proč? Ten přece nebyl součástí operačního systému. A proč přišel až X let poté, co se Firefox stal nejlepším tehdejším prohlížečem?

Moje teze je, že si Explorer v letech kolem roku 2002 držel dominanci kvůli tomu, že běžné weby byly v Mozille (Gecko) rozpadlé. Proto ji tehdy uživatelé odmítali.
Chamurappi
Profil
Reaguji na Yuhůa:
Ale například to, že Explorer implementoval box model jinak
Pokud vím, tak to udělal kvůli tomu, aby byl kompatibilní s Netscapem 4. V tu dobu sice ambice Microsoftu prudce rostly, ale směr vývoje udával dominantní Netscape. Takže když vyšel Netscape 4 s nestandardním box modelem, Explorer 4 svoji implementaci bleskurychle přizpůsobil.

Podobně Explorer napodobil chování Netscapu i u absolutního pozicování. Konsorcium v CSS 2 jasně řeklo, že souřadnice left, top, right a bottom určují hrany obsahového obdélníku (content edge). Nikdo to nebral vážně, všichni implementovali margin edge. Na rozdíl od box modelu tady W3C ustoupilo.

vedlo k velké převaze Exploreru
Myslím, že v období 1997 až 2001 vznikalo docela málo webů, které používaly padding ve spojení s šířkou či výškou. Tehdy frčely rámy a tabulkový layout. Na otázku box modelů tenkrát kodéři běžně nenaráželi a pokud ano, mlaskali blahem z toho, jak jsou v odpovědi na ni starý Netscape i Explorer krásně kompatibilní.

Dává to smysl?
Dává, ale je to převážně fikce :-)
Máš nějaký jiný konkrétní příklad vlivných nestandardních vlastností?

A ten rychlý nástup Firefoxu myslíš přišel proč?(Edit: tady vlastně reaguji spíš na Trejpova slova)
Mně se zdá, že to byl nejpomalejší nástup v historii prohlížečů. Mosaic, Netscape i Explorer si dokázaly podmanit takřka celý trh během mnohem kratší doby, než jakou potřebovala Mozilla k získání výrazného minoritního podílu.

A proč přišel až X let poté, co se Firefox stal nejlepším tehdejším prohlížečem?
Protože mu trvalo dlouho, než se naučil dělat uživatelsky přívětivé kompromisy. Jak v oblasti podpory webových technologií, tak v oblasti uživatelského rozhraní. Vylepšit quirk, okopírovat DOM API Exploreru (innerHTML apod.), zrychlit start, ubrat panýlky…
Samozřejmě, že museli jít tvůrci stránek Firefoxu trochu naproti. Ale šli naproti konkrétním minoritním prohlížečům, ne standardům.


Reaguji na Amunaka:
Co když se vývojáři ebkitu rozhodnou ho nějak zprznit?
Třeba zamořením mobilních webů proprietárním prefixem tak, že si konkurence neškrtne?

Překvapuje mě, že teď najednou všichni naříkají nad tím, jak bude Blink zlý, když většinu nyní používaných nestandardních vlastností už stejně má na svědomí Webkit a ten si tím dominanci (v mobilech) opravdu pěstuje (byť možná částečně neúmyslně a rozhodně to není nejvlivnější faktor). Vysvětluji si to tím, že takzvaně „moderní kodéry“ netrápí riziko nedodržování standardů, ale strach z nerespektování nestandardních vymožeností Webkitu. Jinými slovy: teď už berou jako standard Webkit, ne slova W3C. A bojí se fragmentace jejich omezeného světa. Nikoliv vzniku monopolu, ale jeho konce.

Já osobně mám z variability velkou radost.
Yuhů
Profil
Chamurappi:
„Dává to smysl?“
Dává, ale je to převážně fikce :-)

Hm, můžeš mít pravdu. Ale pamatuji si hodně příběhů, kdy lidé zkoušeli prohlížeče postavené na Gecku a překvapeně je opouštěli. Rozpadlé stránky kladli za vinu Gecku, ne Netscape + Exploreru. Z tvého pohledu byla chyba Gecka v respektování W3C doporučení. V podstatě s tebou souhlasím, ale nemám to vyargumentované natolik, abych to běžně hlásal.

Kromě paddingu byla důležitá ještě velikost písem a ignorování / neignorování chyb.

A proč přišel až X let poté, co se Firefox stal nejlepším tehdejším prohlížečem?

To jsem se ptal původně já a moje odpověď je, že to bylo 1) zanedbáním vývoje Exploru po verzi 6 a 2) přizpůsobením menu Firefoxu tehdejšímu Exploreru 6 (prostě zkopírovali rozložení prvků a menu, aby to lidi poznali). Souhlasím s tím, že to bylo pomalé.
Chamurappi
Profil
Reaguji na Yuhůa:
Z tvého pohledu byla chyba Gecka v respektování W3C doporučení.
… a někdy i v nerespektování. Byla to souhra mnoha faktorů.
Když se vžijeme do roku 2002: máme tu HTML 4, které je údajně slepou větví vývoje, XHTML, u něhož nevíme, co od něj očekávat, CSS 1, které je zastaralé, a CSS 2, které je zmatené a nejasné. Skutečný autoritativní standard, o který by se dalo jako o celek opřít, tady žádný není. Mozilla si tudíž ze specifikací pečlivě vybírá, co implementuje a co je ptákovina, stejně jako ostatní prohlížeče. Potíž je v tom, že si každý vybírá jinak. A každý si přidává i své zlepšováky (což samo o sobě rozhodně není chyba).

byla důležitá ještě velikost písem
Ta ve specifikacích nebyla definovaná. Neexistovala tedy „standardnější“ velikost.

a ignorování / neignorování chyb
Ani chybný zápis neměl v HTML 4 a CSS 2 definované důsledky. V praxi se ovšem nestandardní situace vždy musí nějak rozhodnout, všude se tudíž chyby nějak ignorují. Výchovné by bylo, kdyby prohlížeč na syntaktickou chybu reagoval náhodně a pokaždé jinak :-)
Pokud se na chyby reaguje jakkoliv deterministicky, tak se chování nejrozšířenějších prohlížečů stane de facto standardem nehledě na to, jaké je.
Amunak
Profil
Chamurappi:
A bojí se fragmentace jejich omezeného světa. Nikoliv vzniku monopolu, ale jeho konce.
Tohle. V tom je podle mě ten zakopaný pes. Osobně jsem taky rád za diverzitu.

Ani chybný zápis neměl v HTML 4 a CSS 2 definované důsledky. V praxi se ovšem nestandardní situace vždy musí nějak rozhodnout, všude se tudíž chyby nějak ignorují.
V tomhle ohledu se mi relativně zamlouvá XHTML, kde to prostě vyhodí chybu a nevykreslí nic. To mi přijde vůbec nejvýchovnější. Myslím, že by se pak psal čistší kód, i když by asi bylo lepší rozdělit chyby na kritické a nekritické, podobně jako to máme u PHP, a vykreslení stránky by zrušily jen ty kritické chyby, ostatní by se prostě vypsaly. "Debugování" HTML by pak bylo mnohem snazší než teď.
Trejpa
Profil
Amunak:
XHTML, kde to prostě vyhodí chybu a nevykreslí nic. To mi přijde vůbec nejvýchovnější.
Stejně se žádný prohlížeč nechová podle specifikace, takže někomu se nic nezobrazí a někomu zase ano. To je jednak nespravedlivé a stejně hloupé, aby za chybu kodéra, programátora, editora, grafika i redaktora vždy trpěl návštěvník stránek. Účelem značkovacího jazyka rozhodně není vychovávat kodéry.

Díky chybám v kódu jsou teď prohlížeče dost chytré na to, aby si s nimi poradily (viz Snílek). Jako uživatel hledající informaci ji raději uvidím na nehezké stránce, než abych ji neviděl vůbec. Proto používám HTML a ne XML napodobeniny - záleží mi na návštěvnících. Ostatně, stejně tak to dělají všichni velcí poskytovatelé obsahu.
Chamurappi
Profil
Reaguji na Amunaka:
i když by asi bylo lepší rozdělit chyby na kritické a nekritické
To v podstatě v XML jsou. Posuzuje se zvlášť správnost sestavení (well-formed) a zvlášť validita.
XHTML 1 by sice mohlo srovnat zpracování chyb v syntaxi (kdyby byly všude jen bezchybné XML parsery), ale pořád by nechávalo prostor pro řadu dalších prohřešků, nevalidní konstrukce nemají definované důsledky, takže je tu opět prostor pro nežádoucí rozkol v implementacích. Jak by mělo fungovat <img><script><textarea><frame><table/></frame></textarea></script></img>?

Krom toho vznikla okolo XML řada oddělených specifikací, které by XHTML prohlížeč mohl a nemusel podporovat (třeba jmenné prostory, xml:id, xml:base, XLink, XInclude), některé z nich definují další fatální chyby, takže by i standardům vyhovující prohlížeče mohli mít na životaschopnost stránky rozdílný názor (a na její činnost samozřejmě také).

Myslím, že by se pak psal čistší kód
Důležitá je spíš jednotná funkčnost a zároveň jasně vymezený prostor pro další vývoj. Čistota kódů je vedlejší a boj za ni je očividně marný (viz posledních dvacet let), občas i kontraproduktivní (viz důsledky prosazování XHTML, kdy se HTML zaflákalo balastem).
margin
Profil *
Amunak:
Myslím, že by se pak psal čistší kód
Já si to nemyslím, akorát by se psal správně sestavený kód (well-formed), ale prasiči by prasili dál, ale způsobem, který dovoluje XML, třebas následující kód v opravdovém XHTML "krásně" funguje:
p {color: blue;}
p h1 {color: red}
<p>Hele ho
  <h1>prasení kódu!</h1>
</p>

Vaše odpověď

Mohlo by se hodit

Nezapomeňte na odkaz na živou ukázku problému.

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: