Miért nincsen egy standard böngészőmotor?
Azon gondolkodom, hogy ha van egy W3C, aki szabványokat, akarom mondani ajánlásokat készít, akkor miért nincsen egy alszervezete, aki fejleszti a kidolgozott ajánlásokra épülő standard böngésző motort.
Mivel egységes lenne a platform minden böngészőben, nem kellene szívni azzal, hogy CSS és JS terén ide-oda optimalizáljon (hackeljen) az ember.
A megjelenítő motor egységes lenne a többit pedig mindenki így oldaná meg ahogy akarja.
Ezzel sztem elérhető lenne a tényleges platformfüggetlenség.
■ Mivel egységes lenne a platform minden böngészőben, nem kellene szívni azzal, hogy CSS és JS terén ide-oda optimalizáljon (hackeljen) az ember.
A megjelenítő motor egységes lenne a többit pedig mindenki így oldaná meg ahogy akarja.
Ezzel sztem elérhető lenne a tényleges platformfüggetlenség.
mindenki a saját szekerét
Valahogy így
Mit gondolsz?
Elvileg van a W3C-nek motorja (Amaya), de az kb használhatatlan mert csupán elméleti szempontból használható...
nem az a baj...
XHTML
Kepzeld el, ha az Indexen megjeleno blog ismertetok hibat karaktert/markupot tartalmaznanak, es egy xml parser probalna ertelmezni az oldalt. Pillanatok alatt haza lehetne vagni az egeszet.
Nem lehetetlen
Szabványok és a standard böngészőmotor
gumicsont
Másrészt elnézést, hogy megint ilyen volumenű hozzászólásra van csak energiám, de ez a téma annyiszor előjött már, és annyira gumicsont. Főleg ilyenkor, a JS keretrendszerek korszakában, a web2 korszakában (ie bugok és workaroundok sz*rrá dokumentálva a neten), lassan az ie7 és az acid2-képes ie8 korszakában... fordított oldalról is lehetne már nézni a dolgot, ti. hogy milyen örvendetesen nagy utat jártunk be.
Amit felvetsz, hogy közös kódbázison alapuló megjelenítő minden böngészőben, az egy (nem túl demokratikus) utópia.
Ezeknél 26x többet lehet szívni egy trac-telepítéssel... kinek mihez van affinitása. A problémamegoldás mindenhol kelendő készség.
Nem igazán értem
Igazából elvi problémám van. Ha van egy szabvány, annak van egy tökéletes implementációja, akkor nincsen gond. Mindenhol minden úgyanúgy jelenik meg, a körítést meg mindenki hozzáadja (buta hasonlattal élve: van egy toshiba LCD kijelző ami köré több gyártó, többféle notebook-ot gyárt, minden gépen ugyanúgy jelenik meg a kép).
Ha egységes lenne a motor, akkor lehetne pl. CSS-sel formázott e-mail-eket küldeni, amit minden levelező kliens normálisan jelenítene meg, köszönhetően az egységes motornak. A funkcionalitást pedig mindenki úgy oldja meg ahogy neki jól esik.
Szóval az a bajom, hogy van egy szabvány és azt nem implementálják 100%-osan, a saját útját járja mindenki. Persze ez fejlődéshez is vezet, mert jó ötletek születnek, de akkor is szivatva van a fejlesztő társadalom. Vhogy ezt nem érezm igazságosnak. Jó tudom kapitalizmus, a profit a lényeg ...
Visszakérdezek: miért jó az, ha a saját tökéletlen...
Az utópiákkal sem elvi probléma van...
A megjelenítőmotornak számos paramétere van, amivel a szabvány nem foglalkozik (teljesítmény, stabilitás, bugok stb. kismillió apróság, pl. hogy hogyan szkrolloz – gondolom, te is látod, mennyire különbözik az FF motorja az Operáétól egy pixelre ugyanúgy renderelt lap esetében is).
A kijelzős példa tökéletes, hiszen nemcsak tochiba LCD létezik, és a toshiba LCD sem tökéletes. És az Amaya is valószínűleg sokkal gyengébben támogatja a szabványt, mint a legtöbb piaci böngésző.
Igazából, amiről írsz, az tkp. magának a szabványnak a félreértése. A szabvány azért van, hogy a közös nevező szerepét betöltse, nem pedig azért, hogy az alapja legyen egy specifikáltabb közös nevezőnek, mert akkor az utóbbi lenne a szabvány. Ha mindenki ugyanazt az implementációt használná, akkor fölösleges volna maga a szabvány is (ill. nem szabvány volna a neve, hanem manuál). Implementáció ráadásul soha nem tud szabvány lenni, az fából vaskarika. A szabványnak kívül kell esnie azon a körön, ahol bármilyen technikai paraméter vagy a megvalósítással kapcsolatos emberi tökéletlenség bejátszhat. Ez két külön világ.
A szabvány közérdek, az egységes implementáció nem, mert az emberek szeretnek többféle böngészőt használni (és nemcsak a körítésben többfélét, hanem a fent említett paraméterekben, amik nem leválaszthatók a motorról). Így a te érdeked mint fejlesztőé, hogy egy motorra fejlessz, ütközik a felhasználók érdekével (és te is felhasználó vagy), és az utóbbi sokkal erősebb.
Nem értek egyet
Érdekes módon egy jpg kép bármelyik képnézegető programban jól jelenik meg, nyilván azért, mert mindegyik 100%-ban követi a szabványt. Persze az egyik gyorsabb a másiknál mert másképp implementálták a szabványt de ettől még mindkettő szabványos. A html+css+js esetén is ez lenne a kívánatos, aztán scrollozhat másképpen az opera meg a firefox, attól még ugyanúgy kellene kinéznie bennük a szabványos oldalaknak. Ugyanez igaz pl. odt-re. Szép lenne, ha egy szerkesztő olyan dokumentumokat állítana elő amit egy másik nem tud megnyitni, vagy éppen szétesik benne a dokumentum. Az ilyen alkalmazás egyszerűen nem a szabványnak megfelelően működik és így nem tekinthető opendocument képes szerkesztőnek...
Pont az a közérdek, hogy olyan alkalmazások legynek amelyek megfelelnek a szabványoknak. Máskülönben kitörölhetjük a fenekünket a szabványokkal...
jpeg-re sem igaz a szabványosság
egyetértek
"Pont az a közérdek, hogy olyan alkalmazások legynek amelyek megfelelnek a szabványoknak. Máskülönben kitörölhetjük a fenekünket a szabványokkal..."
Ez tökéletesen igaz. Valójában egyetértesz (vagy legalábbis én veled).
Azért egy képformátum és egy teljes platform leírását egy kalap alá venni aránytévesztés. Az .odt-s példa már közelebb áll, ennek megfelelően a dokumentumok terén ugyanez a probléma fenn is áll.
teljes a szabvány?
A szabvány az helyenként csak egy ajánlás. Ha megnézed, akkor a szabványokban ilyesmi igék vannak: must, should, may stb. Ami must, azt elvileg kötelező a szabványt teljeséggel megvalósító alkalmazásnak a szabványban leírt módon implementálni, de ami mondjuk may, azt már nem feltétlenül. Annó pl. elolvastam DOM speckót is, és azért akadt benne olyan, ami teljesen a megvalósítóra volt bízva.
Egy másik probléma, hogy a szabványban sosem lesz benne minden egyes kombináció. Szerintem saját tapasztalatodból is ismerős lehet, hogy még egy nagyon jól specifikált feladat esetén is mindig vannak kérdéses esetek, amikre gyakran elképzelhető több (más-más szempontból) jó megoldás is.
Szóval még a lehető legjóhiszeműbb esetben sem lesz egy tökéletes megvalósítás. Az meg külön kérdés, hogy biztosítani nulláról a teljes szabvány támogatását, az kb. azt jelentené, hogy elmennek a fejlesztők egy barlangba, és kijönnek sok év múlva egy fasza böngészővel, ami nyilván üzleti szempontból nem fog működni, ezért mindenki mérlegel, hogy szerinte mi az amit fonos támogatni, mi az amit elég lesz egy későbbi verzióban.
Üdv,
Felhő
Példa
The DOM Level 2 Event specification does not provide a key event module. An event module designed for use with keyboard input devices will be included in a later version of the DOM specification.
Max: ebből kiindulva a tökéletes böngészőben nem lenne például event.charCode