Azok alapján, amit a Microsoft az utóbbi tizenöt évben művel, zéró elvárásunk lehet a programmal kapcsolatban. Aztán majd legfeljebb pozitívan csalódunk : ) (de ebben nem hiszek).
A felhasználókat ez abszolút nem érdekli. Egy újabb táblázat, amit bújhatunk fejlesztés közben, hogy mit használhatunk és mit nem? Akkor inkább maradok a jó öreg ES 1.3-nál, ott nem kell ilyenen agyalni, legfeljebb nem egy, hanem két sorban oldom meg a feladatot. Nem oszt, nem szoroz.
Nyilván nem a felhasználóknak van. Viszont jó látni, hogy lassan bekerülnek a nyelvbe a régen várt dolgok (natív Promise, generátorok, Object.observe, stb). Nyilván ezek nélkül is lehet működő alkalmazásokat írni, de produktivitás szempontjából nagyon nem mindegy.
Akárhogy nézem a táblázatot, alig pár sor van benne, ami minden böngészőben meg lett valósítva, így viszont tele kell pakolni if-ekkel a kódot, hogy ha tudni akarom, az adott böngésző mit tud és mit nem.
Produktivitásban sem látok olyan egetrengető különbséget, ami miatt tényleg érdemes rájuk várni. Iterators and generators
handleResults( i for ( i in obj ) if ( i > 3 ) );
function handleResults( results ) { for ( let i in results ) // ... }
versus
for (var i in obj) { if (i > 3) { handleResults(i); } }
De mivel egy helyen van csak a feltétel, ami csak egyszer van vizsgálva, nem kell telerakni a kódot, akár hányszor is hasznánám az adott szolgáltatást.
A fenti táblázatból nagyjából csak a beépített objektumok kiterjesztéseit lehet polyfillel megvalósítani. Amit meg nem, azt addig nem érdemes használni, amíg legalább 90-95%-os elterjedtsége nem lesz a megvalósításnak. De ha ezek meg nagyjából ugyanolyan vicc-kategóriájúak, mint a generátorok vagy az iterátorok, akkor jogosan merülhet fel a kérdés, hogy minek áldozunk rájuk időt? Nincsenek ezeknél égetőbb problémák? Vagy ez is csak a böngészőgyártók marketingje, hogy lehessen szidni a konkurenciát, mert azok még nem valósítottak meg valami látszatdolgot?
A két példa nem ekvivalens, az array/generator comprehension egy filter + map-nek felel meg.
Egyébként a különböző transpilerek/compilerek pont arra valók, hogy elfedjék a böngészők közti különbségeket, így gyakorlatilag nem kell megvárni amíg a különböző nyelvi elemek natív támogatást kapnak a böngészőkben (ami sajnos alsó hangon is jópár év).
Produktivitás szempontjából pedig igenis számít (már amennyiben lehet egy ilyen szubjektív területen állást foglalni), hogy map, filter, fold, stb konstrukciókat, vagy összekuszált for ciklusokat használsz.
Ráakasztod a fájl mentésére. Fut egy folyamat, például Gulp vagy Grunt vagy hasonló, ami figyeli a fájlokat, illetve könyvtárakat. Amikor egy fájl megváltozik, akkor lefut a fordító, teljesen automatikusan.
In the coming months, swathes of IE legacy were deleted from the new engine. Gone were document modes. Removed was the subsystem responsible for emulating IE8 layout quirks. VBScript eliminated. Remnants like attachEvent, X-UA-Compatible, currentStyle were all purged from the new engine.
Díjazom a Microsoft igyekezetét, ugyanis hibái ellenére az utóbbi időben tényleg összekapta magát, és sok esetben jobban teljesít, mint a vetélytársai. A Firefox a memóriát zabálja, a Chrome a háttértárat, stb.
Egy teljesen újragondolt böngésző a hitelét vesztett márkát elhagyva újra az élvonalba tudna kerülni, feltéve hogy hajlandóak végre multiplatformra dolgozni. Linuxon nekem nagyon hiányzik egy megbízható böngésző. A Firefoxot robosztusnak és lassúnak érzem, a Chromium meg sokszor bugosnak mutatkozik. Bár lehet, hogy ez a Xubuntu hibája.
Fölösleges erőlködés
Feature-ök tekintetében az IE
Kevés
Nyilván nem a felhasználóknak
Promise
, generátorok,Object.observe
, stb). Nyilván ezek nélkül is lehet működő alkalmazásokat írni, de produktivitás szempontjából nagyon nem mindegy.Akárhogy nézem a táblázatot,
Produktivitásban sem látok olyan egetrengető különbséget, ami miatt tényleg érdemes rájuk várni.
Iterators and generators
function handleResults( results ) {
for ( let i in results )
// ...
}
versus
if (i > 3) {
handleResults(i);
}
}
function handleResult( result ) {
// ...
}
tele kell pakolni if-ekkel a
Ezért vannak a design patternek, mint a Facade, Proxy, Adapter valamint JS esetén Polyfill, hogy ne kelljen.
Tehát nem if-eket használsz,
Egyszer
A fenti generátoros példát
Sehogy
A fenti táblázatból nagyjából
Generátor
function handleResults( results ) {
for ( let i in results )
// ...
}
Ez pontosan annyira átlátható, mint a következő:
function handleResult(result) {
//
}
Ráadásul még többet is kell gépelni (két for ciklus). Ez tényleg előrelépés. De végülis illeszkedik a <div id="footer"> -> <footer> átmenetbe.
A két példa nem ekvivalens,
Egyébként a különböző transpilerek/compilerek pont arra valók, hogy elfedjék a böngészők közti különbségeket, így gyakorlatilag nem kell megvárni amíg a különböző nyelvi elemek natív támogatást kapnak a böngészőkben (ami sajnos alsó hangon is jópár év).
Produktivitás szempontjából pedig igenis számít (már amennyiben lehet egy ilyen szubjektív területen állást foglalni), hogy map, filter, fold, stb konstrukciókat, vagy összekuszált for ciklusokat használsz.
Egyébként a különböző
Ráakasztod
Inside Microsoft’s New
Multiplatform
Egy teljesen újragondolt böngésző a hitelét vesztett márkát elhagyva újra az élvonalba tudna kerülni, feltéve hogy hajlandóak végre multiplatformra dolgozni. Linuxon nekem nagyon hiányzik egy megbízható böngésző. A Firefoxot robosztusnak és lassúnak érzem, a Chromium meg sokszor bugosnak mutatkozik. Bár lehet, hogy ez a Xubuntu hibája.
A lényeg, hogy már várom, és kíváncsi vagyok.