ugrás a tartalomhoz

The Things Internet Explorer Got Right

Joó Ádám · 2011. Már. 15. (K), 20.27
Hogyan fejlődött és forradalmasította a webet a Microsoft böngészője
 
1

IE6

Hidvégi Gábor · 2011. Már. 15. (K), 22.01
Szakmai körökben divat az Internet Explorert (különösen a 6-os változatát) szidni, bár tapasztalataim szerint ezt általában olyanok teszik, akik rövid úton bebizonyítják a hozzá nem értésüket vagy lustaságukat.

Az Internet Explorerben bevezettek számos forradalmi technológiát, több közülük mára elhalt (köszönhetően a fenti típusú embereknek), például a CSS kifejezések (CSS Expressions), amelyek nélkül a weboldalak készítése jóval nehézkesebb.

A birkák bégetése elég hangos volt, így a Microsoft az IE8 szabványos módjában már nem hajtja létre ezeket a kifejezéseket.

Az ügy pikantériája, hogy egy-két hónapja itt a Weblaboron is volt kint blogmarkban, hogy a Google mérnökei egy nagyon hasonló megoldáson dolgoznak.

A blogomban szánni fogok rá egy bejegyzést, ahol az ehhez hasonló élő és elhalt Microsoftos webes kezdeményezésekről írok, hogy mindenkinek legyen képe, mit nyertünk és veszítettünk.
2

Amikor feljön ez a téma,

Joó Ádám · 2011. Már. 15. (K), 23.19
Amikor feljön ez a téma, akkor ferdítesz, és összemosol dolgokat. A Microsoft az IE-n keresztül sok jó technológiát bevezetett, és bevezetett sokat, ami nem jó (a CSS kifejezések például nem voltak jók, mert teljesítmény szempontjából pocsékul lettek implementálva), vagy csak érdektelenségbe fulladt (figyelembe véve, hogy általában a legkisebb erőfeszítést sem teszi a szabványosítás és a versenytársakkal való kommunikáció irányában, ez nem csoda).

Az IE-t pedig egyáltalán nem azért szidják, mert innovatív technológiákkal kísérletezik, hanem azért, mert homlokegyenest és tudatosan ment szembe szabványokkal, vagy csak pocsékul implementálta őket, ha ugyan implementálta őket. Ezen felül pedig öt (legyünk őszinték, nyolc) éven keresztül pedig semmit nem tett le az asztalra, és igenis ezzel rengeteg időt, energiát, nyugalmat rabolt el a webfejlesztők többségétől. (Nyilván lusták és buták, a közösség legprominensebb tagjait is beleértve.)
4

Sehol nem írtam olyat, hogy

Hidvégi Gábor · 2011. Már. 15. (K), 23.42
Sehol nem írtam olyat, hogy az IE-t azért szidják, mert innovatív technológiákkal kísérletezik.

A CSS kifejezések teljesen jók, és jóval előrébb mutatóak, mint mondjuk a Safariban bevezetett CSS3 kiegészítések. Bár valóban lassúak, de ez csak a JScript motor készítőit minősíti.
5

Nem írtad, de igazából azt

Joó Ádám · 2011. Már. 15. (K), 23.55
Nem írtad, de igazából azt sem, hogy nem ezt gondolod. Ezért mondtam, hogy összemosod őket, legalábbis az olvasó számára.

Még senkit nem láttam csak azért a CSS kifejezések ellen beszélni, mert azokat a Microsoft találta ki. Két okból beszélték le az embereket a használatáról: a lassúságuk miatt, és azért, mert csak IE-ben működnek. Szerintem ez teljesen jogos.

Én, csakúgy, mint sokan a közösségből, a magam voksát már régóta amellett teszem le, hogy a CSS-nek lehetővé kellene tennie dinamikus aritmetikát. Mások szerint ez ördögtől való ötlet. A Firefoxban és a Safariban/Chromiumban újonnan bevezetett lehetőségek ebbe az irányba mutatnak, ami szerintem üdvözlendő. A Microsoft is letehetné a magáét ezen a téren, de mint azt feljebb írtam, az idő nagy részében nem szeret tudomást venni arról, hogy vannak versenytársai…
7

CSS kifejezések már az

Hidvégi Gábor · 2011. Már. 16. (Sze), 00.02
CSS kifejezések már az Internet Explorer 5.0 óta benne vannak a böngészőben, a konkurencia simán átvehette volna őket, szóval én ezt inkább a Microsoft-ellenesség számlájára írnám.

Mindazonáltal a Microsoft arroganciájának és lassú reakcióidejének megvan az eredménye, szerintem jóideig nem lesz már belőlük vezető böngészőgyártó, amit meg is érdemelnek.
17

Egyetlen baj van az IE6-tal:

gphilip · 2011. Már. 16. (Sze), 13.51
Egyetlen baj van az IE6-tal: hogy nem 2001-et írunk, hanem 2011-et. A maga korában nagyon jó kis böngésző volt a 6-os, valahol még dereng, hogy szerettem is anno.

Csakhogy amíg például a Chrome-nak napokba kerül kitolni egy új verziót egy esetleges biztonsági frissítéssel, új HTML5 fícsörökkel, teljesítmény optimizációval, addig a Microsoftnak ez évekbe kerül. Persze elméletileg a Windows Update megoldás erre, de a tapasztalatok szerint nem működik éppen megfelelően.

A szomorú ebben, hogy ezen a frissen stabil állapotban megjelent IE9 sem sokat segít, így tehát a jövő IE6-ja az IE7, 8 avgy éppen 9 lesz.
6

Újraolvastam azt, amit írtam,

Hidvégi Gábor · 2011. Már. 15. (K), 23.56
Újraolvastam azt, amit írtam, és valóban félreérthető, ami nem volt szándékomban. A második bekezdés így helyes:

Ettől függetlenül az Internet Explorerben bevezettek számos forradalmi technológiát, több közülük mára elhalt (köszönhetően a fenti típusú embereknek), például a CSS kifejezések (CSS Expressions), amelyek nélkül a weboldalak készítése jóval nehézkesebb. Erről sokan hajlamosak megfeledkezni.
3

IE

vbence · 2011. Már. 15. (K), 23.19
Az, hogy egykét funkciót beleépítettek a böngészőjükbe amivel az oprendszerük shelljének részévé tudták tenni nem feltétlenül erény. Minden gyártó rukkol elő saját fejlesztésekkel a böngészőjében, de ugyanakkor a versenytársak valahogy mind látják a "nagy képet", néhány havonta átveszik egymás vívmányat.

Most biztosan a hurrogó plebsz része vagyok, de a CSS expression sosem volt több biztonsági kockázatnál. Végre valahára megértük, hogy a prezentáció és tartalom elválasztása első lapon szerepel a webfejlesztők virtuális nagykönyvében, és egy "ejnye bejnye" jut mindnekinek osztályrészül, aki nem diszkrét JS-t használ, egy oylan technika ami a stíluslap értelmezésének feltételévé tesz egy JavaScript motort picit anakronisztikus.

Ahogy mondtam, volt néhány hasznos újításuk. Most hirtelen az XHR-t tudnám említeni (és mást nem feltétlenül), de nincs arra mentség amit az MS művelt és művel.
8

Szerintem teljesen külön lap,

Hidvégi Gábor · 2011. Már. 16. (Sze), 00.04
Szerintem teljesen külön lap, hogy van egy jó ötlet (CSS kifejezések), és annak a megvalósítása hibádzik (azaz a JScript motor biztonsági réseket tartalmaz). Ezenkívül nyilván meg lehetne csinálni úgy a CSS szabványot, hogy ha van lehetőség CSS kifejezések használatára, akkor hajrá, ha pedig nincs - mert letiltotta a felhasználó a scriptek futtatását -, akkor használjon helyettesítő értéket.

A mostani helyzet sem jó, hisz rengeteg olyan oldalt találni az interneten, amelyeket pl. bekapcsolt javascript nélkül nem lehet használni, gondolj csak a sok animált galériára.
9

+1

zzrek · 2011. Már. 16. (Sze), 00.23
Szerintem is jó ötlet volt a "CSS kifejezések", sőt arra is nagyon jó volt, hogy olyan műveleteket pótoljak vele, amiket egyébként az IE nem tudott, de a többi böngésző már igen. (Vagyis nemcsak, hogy más dolog az ötlet és a megvalósítás, hanem ez egy annyira jó ötlet volt, amivel más hiányos megvalósításokat korrigálni lehetett ;-)))
10

Nem a JScript

vbence · 2011. Már. 16. (Sze), 00.53
Nem a szkriptet futtató platform hibáira gondolok, hanem arra, hogy a szkript eléri a dokumentum többi részét is, ami a CSS kifejezések tervezési hibája. Ennek következménye, hogy az IE-t használók érdekében a CSS-t is "meg kell tisztítani" az esetleges kártékony kódoktól. Annak idején szinte az összes hazai e-mail szolgáltató webes felülete támadható volt ebből az irányból szimplán azért mert a CSS-re nem tekintettek mint potenciális támadási felületre. - És ez talán gy is van jól. Bármikor futtathatsz szkriptet amiből megváltoztatod a stíluslap részleteit. A JS és a CSS elválasztása mellett ugyanazon érvek szólnak mint a HTML és JS esetében.

Az, hogy jelenleg vannak olyan oldalak ahol nincs biztosítva a fallback annak a következménye, ha nem követik az elterjedt fejlesztési irányelveket. Például a diszkrét JS használatakor egyből szem elé kerül a JS mentes HTML önálló működésének kérdése.
11

Egyesek az XMLHttpRequest

kuka · 2011. Már. 16. (Sze), 11.48
Egyesek az XMLHttpRequest esetét szokták felhozni mint jó példát, hogy lám, a Microsoft feltalálta, de a W3C inkább kitalált helyette egy hasonlót, csak azért, hogy ne pont a Microsoft műve legyen a szabvány.

Ez szerintem is jó példa, csakhogy arra, hogy milyen távol áll a Microsoft elképzelése a szabványosítható elképzeléstől:
  • az, hogy verziótól függően ActiveXObject('Msxml2.XMLHTTP.6.0'), ActiveXObject('Msxml2.XMLHTTP.3.0'), ActiveXObject('Msxml2.XMLHTTP') vagy ActiveXObject('Microsoft.XMLHTTP')-val hozzák létre az AJAX objektumot, szabványban elfogadhatatlan
  • az, hogy a paraméterben egy zárt forrású fejlesztést folytató cég neve vagy betűjele kell legyen, szabványban elfogadhatatlan
Szerintem ha a Microsoft az újításokat azért vezetné be, hogy azok a szabványok közé kerüljenek, kicsit át kellene gondolja őket. Amíg ezt nem teszi, jogos a feltételezés, hogy csak azért újít, hogy hátrányba hozza a vetélytársakat.
12

XMLHttpRequest

Hidvégi Gábor · 2011. Már. 16. (Sze), 12.20
Az XMLHttpRequestet eredetileg nem arra találták ki, hogy weboldalak tartalmát szolgáljuk ki a segítségével, ezért régen ActiveX vezérlőként lehetett beágyazni és elérni. Viszont találékony emberek felismerték a benne levő lehetőséget, el is kezdett villámgyorsan elterjedni.

Az Internet Explorer 7.0 megjelenése óta viszont natív objektumként lehet elérni, így az általad leírtak nem állják meg a helyüket egyáltalán.
13

Az XMLHttpRequestet

kuka · 2011. Már. 16. (Sze), 12.43
Az XMLHttpRequestet eredetileg nem arra találták ki, hogy weboldalak tartalmát szolgáljuk ki a segítségével
Ennek most mihez van köze?
Az Internet Explorer 7.0 megjelenése óta viszont natív objektumként lehet elérni, így az általad leírtak nem állják meg a helyüket egyáltalán.
Ennek most mihez van köze?

Azt írtam, hogy amit a Microsoft újít azt nem olyan formában hozza létre amit szabványba lehetne foglalni.

Mire te a mondatoddal csak alátámasztottad, hogy a Microsoftnál egy objektum példányosítása verziónként változik.
14

A következőt írod: "jó

Hidvégi Gábor · 2011. Már. 16. (Sze), 13.07
A következőt írod:

"jó példa, csakhogy arra, hogy milyen távol áll a Microsoft elképzelése a szabványosítható elképzeléstől
az, hogy verziótól függően " ... más azonosítóval ... " hozzák létre az AJAX objektumot, szabványban elfogadhatatlan"

Erre válaszoltam azt, hogy:
"Az XMLHttpRequestet eredetileg nem arra találták ki, hogy weboldalak tartalmát szolgáljuk ki a segítségével"
Magyarul nem volt célja a Microsoftnak a szabványosítás.

Utána ezt írod:
"az, hogy a paraméterben egy zárt forrású fejlesztést folytató cég neve vagy betűjele kell legyen, szabványban elfogadhatatlan"

És erre válaszoltam, hogy
"Az Internet Explorer 7.0 megjelenése óta viszont natív objektumként lehet elérni" ti. az XMLHttpRequest objektumot.

Így már érthető, hogy az általad leírtak miért nem állják meg a helyüket? Az XMLHttpRequest szabványban sosem volt szó az ActiveX objektum példányosításáról, az csak amiatt kell, hogy IE6 alatt is működjön a dolog, magyarul fallback script.
15

Magyarul nem volt célja a

kuka · 2011. Már. 16. (Sze), 13.31
Magyarul nem volt célja a Microsoftnak a szabványosítás.
Szóval úgy értetted.

Én egy szót sem szóltam a Microsoft céljairól, azt írtam, hogy önjelölt Microsoft-védők mit állítanak az XMLHttpRequest keletkezéséről és mivel vádolnak másokat.

A többit illetően legyen neked igazad. Ha válaszolnék rá, előbb-utóbb csak a moderátoroknak adnék munkát.
16

Nem arra találták ki

vbence · 2011. Már. 16. (Sze), 13.34
Az XMLHttpRequestet eredetileg nem arra találták ki, hogy weboldalak tartalmát szolgáljuk ki a segítségével


A wikipédia szerint pont erre találták ki (Outlook Web Access). De ezt a kérdést félretéve: Beépítettek egy új funkciót a böngészőjükbe, ami csak a saját böngészőjükben működő másik technológián (ActiveX) működik, ami pedig a saját platformhoz kötött (a szép emlékű maces MSIE-ben természetesen nincs ActiveX). - Ez nélkülöz az átjárhatóság, szabványosítás iránti minden igényt.

Más kérdés hogy ez üzletileg védhető döntés, hiszen azóta sem ment csődbe az MS, de szakmailag nem. Csak egy káros mentalitás iskolapéldája.
19

"A wikipédia szerint pont

Hidvégi Gábor · 2011. Már. 16. (Sze), 14.52
"A wikipédia szerint pont erre találták ki (Outlook Web Access)." Ebben tévedtem, nem jártam utána megfelelően. Abból indultam ki, hogy az MSXML része, tehát alapvetően XML alapú kommunikációra használták.
18

"Szerintem ha a Microsoft az

Hidvégi Gábor · 2011. Már. 16. (Sze), 14.50
"Szerintem ha a Microsoft az újításokat azért vezetné be, hogy azok a szabványok közé kerüljenek, kicsit át kellene gondolja őket. Amíg ezt nem teszi, jogos a feltételezés, hogy csak azért újít, hogy hátrányba hozza a vetélytársakat."

Mégis, mit vársz egy piaci alapokon működő cégtől? Amíg a legfőbb feladatuk a részvényeseik kifizetése, nem nagyon fognak jótékonykodni.

Az Apple ugyanezt csinálja a Webkittel, a kommentek között pont a Microsofttal példálóznak, hogy vajon ők is ugyanarra a sorsra akarnak-e jutni.
20

Úgy látom, meddő vita

vbence · 2011. Már. 16. (Sze), 15.57
A hozzászólásaink érdemi részére nem reagálsz, csak újabb és újabb példákat hozol fel párhuzamosan az álláspontod védelmében.

Persze, lehet így is meg úgy is nyereséget elkönyvelni. Ez egyáltalán nem tesz valamit korrekté, erkölcsileg helyessé (lásd US hitelválság). Ettől a termék még rossz minőségű termék, a hozzáállás meg elítélendő. (De ezt a hozzászólásod előtt már leírtam, nem reagáltál rá).

Az MS folyamatosan a törvényesség határán táncol az erőfölényével való visszaéléssel. Néha elmarasztalja őket a bíróság, néha nem. A leghíresebb esett épp az IE-vel kapcsolatos. Az hogy kézzel lábbal tiltakoznak a nyílt és szabványos technológiákkal szemben csak ennek az üzleti stratégiának másik megnyilvánulása. Ez az amiért nem kéne szidnunk az IE-t? Nem értem, ez miért jelent jó pontot mellette, nem értem miért nem kell ugyanazzal a mércével tekintenünk rá, mint az összes versenytárra.

Igen, az Apple sem ártatlan, de nem a WebKittel kapcsolatban. Ők az iOS alapú eszözeikkel vannak monopol helyzetben és igyekszenek kihozni belőle a maximumot - nem ritkán megkérdőjelezhető eszközökkel. Az dézett webkit példa pedig pontosan a helyes módszert pldázza:

Amíg nincs szabványba iktatva egy tulajdonág addig vendor-specifikus előtaggal látják el, nem pedig a szabványos névteret szemetelik tele nem szabványos elemekkel. Pont ez az ahogy csinálni kellene. (Pl jó ideig -moz-opacity volt a Mozilla böngészőiben, amíg nem támogatták hivatalosan CSS megfelelő inkarnációját).

Az hogy új funkcióval látják el a böngészőjüket, és mindezt technikailag korrekten teszik nem nevezném a pozícióval való visszaélésnek. Különösen, hogy a WebKit nincs is igazán abban a pozícióban, hogy diktáljon.
21

Microsoft

Hidvégi Gábor · 2011. Már. 16. (Sze), 21.58
Ne haragudj, de a hozzászólásaitoknak nincs érdemi része, semmi újat nem mondotok.

A blogposzt arról szól, hogy milyen technológiákat vezetett be a Microsoft, amelyekkel előrébb jutott a web. Erre én azt írtam, hogy ez így van, és van több olyan elfelejtett technológia, amik segítségével még előrébb lennénk, de azokat elkaszálták a hozzá nem értő emberek, vagy soha nem is terjedtek el, mert nem vették sokan a fáradságot, hogy utánajárjanak.

A Microsoft mindig is híres volt a gyenge kódjairól, érdemes a Wikipédia szócikkét elolvasni. Továbbá, mint említettem, piaci alapú cég, és versenytársaikkal mindig is agresszíven bántak, minden területen monopóliumra törekednek.

Ezek után arról vitatkozni, hogy szembemennek a szabványokkal vagy saját elképzeléseiket kényszerítik az emberre, teljesen fölösleges. Ők ilyenek és kész. Kikerülhetetlenek, ezért meg kell tanulni együttélni velük, és kihozni a legtöbbet abból, amit adnak.

A böngészőjük hibás, de ha az ember egyszer megtalálja a megoldást (és mivel programozók vagyunk, a javítást csak egyszer kell megírnunk), onnantól kezdve ezeket transzparensen tudjuk kezelni.

var ajax = new XMLHttpRequest();

vagy

var ajax = new ActiveXObject(pickRecentProgID(["Msxml2.XMLHTTP.6.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP"]));

Kit érdekel, miután megírtuk a függvényt, ami eldönti, melyikre van szükségünk, és meghívja a megfelelő programrészletet?

De a lényeg a lényeg: vannak dolgok, amit ők is jól csinálnak, és amikor kritizáljuk őket, azokat is meg illik említeni.
22

Te azt állítod, hogy az

Joó Ádám · 2011. Már. 16. (Sze), 22.19
Te azt állítod, hogy az újításai érdemtelenül lettek elfeledve. Mi pedig azt, hogy azért, mert olyan a hozzáállása, amilyen.
23

Erre én azt írtam, hogy ez

vbence · 2011. Már. 16. (Sze), 22.57
Erre én azt írtam, hogy ez így van, és van több olyan elfelejtett technológia, amik segítségével még előrébb lennénk


Ezt cáfoltam meg a 10es hozzászólásban (legalább is ez lett volna a szándékom), úgy tűnik nem volt benne érdemi rész és ezért nem reagáltál rá.

Én ilyen színvonalú vitában nem szeretnék tovább résztvenni.

(A posztot pedig inkább nem minősteném.)