Browser war újratöltve?

http://webkit.org/specs/
A WebKit oldalán megtalálhatóak azok a kiterjesztések, amelyeket az Apple hozzáadott a WebKithez a szabványokon felül. Kérdés, hogy ez vajon mennyire jó nekünk? (afaik a többi böngésző oldalán is megvannak ezek a kiterjesztések)
Elkezdheti implementálni a többi böngésző, és akkor kb. ugyanott vagyunk, mint a böngészőháború idején, ahol a böngészőszállítók egymással versenyezve találták fel a blinket, marquee-t meg hasonlókat.

Mi a jobb nekünk vajon? Ha az érdekeltek csoportokba tömörülnek, és akár öszvérmegoldásokat dolgoznak ki szabványok formájában, vagy ha a cégek maguk az úttörők, és ezzel késztetik a többi céget fejlesztésre? A mostani helyzet alapján aki nem képes tartani az iramot, az ­– szabvány ide vagy oda – lassabban fejleszt.
Másrészről viszont a böngészőháború idején voltak olyan megoldások, amelyek, bár szerintem remek ötletek voltak, sose lettek szabványosak. Itt gondolok például az Internet Explorerben (igen, abban) a CSS filterekre meg a CSS-be ágyazott JavaScript kifejezésekre. Lehet szeretni vagy nem szeretni, de az előbbi olyan lehetőségeket adott (volna) a webfejlesztők kezébe, amelyek a CSS3-ból még mindig hiányoznak (és valószínűleg sose lesznek benne), az utóbbi pedig olyan problémákra is többé-kevésbé rugalmas megoldást nyújtott, amelyeket a W3C a szabvány kibővítésével orvosolt (pl. min-width), vagy amelyeket a webfejlesztő mai napig jQuery után nyúlva old meg.

Szerintem mostanra, hogy a webfejlesztők részéről egyre nagyobb igény van az innovációra, szerintem az alulról szerveződő böngészőháború akár eredményesebb is lehet, mint a szabványok közös meghatározása. Persze ehhez arra lenne szükség, hogy ha egy szereplő valahogy implementál valamit, akkor azt rögtön publikálja, és egy másik szereplő semmi esetre se implementálja azt másképp – ami könnyen lehet, hiú ábránddá teszi ezt a gerillamódszerekkel történő szabványosítást.

Másik történet, hogy én, aki jóval inkább a webfejlesztők közé tartozom inkább óvakodok szállítóspecifikus kódok felhasználásától, de ha a szállítók felvennék a kesztyűt, amit egymás elé dobtak, és implementálnák egymás kiterjesztéseit, remek lenne fejlesztői szempontból.

Hozzászólások

Vagy inkább a sok webes marhaság helyett vissza lehetne térni a desktop alkalmazások fejlesztéséhez ott, ahol nem indokolt a web és máris meg lenne oldva egy csomó fasság és nem kellene feltalálni azt, amit az elmeúlt 30 évben már megoldottak.

----------------
Lvl86 Troll

A vékonykliensekkel és a mobil internet fejlődésével egyre több alkalmazásnál indokolttá válik a web használata.

Tény, a webes szabványok fejlődésével elég sok dolog hasonlít a meleg víz feltalálásához, de mivel jelenleg a trend a cloud, ez „így van rendjén”, és igenis meg kell oldani, hogy a Javascript többszálú legyen, tudjon bytecode-ot futtatni, és legyen lehetőség szerint interoperábilis a böngészőben futó webes alkalmazás az eszköz egyéb részeivel.

Esetleg a böngészőket más nyelvek futtatására is alkalmassá tesszük, és akkor máris bővülnek a lehetőségeink…


<script type="text/perl" language="Perl" version="5">
use strict;
use Whatever; #itt a böngésző megkérdi, hogy telepítsük-e a whatevert, ha nincs fent…
...
</script>

A végén tényleg a böngésző lesz az oprendszer, de a lényeg szerintem az, hogy működjön…

int getRandomNumber() { // ←ez itt már az aláírásom
	return 4;//szabályos kockadobással választva.
}		//garantáltan véletlenszerű. xkcd

Ez a cloud computing ezért tegyünk mindent át a HTTP-re ez az egyik legnagyobb ökörség, amit mostanság kitaláltak.

Nézzünk mondjuk egy ügyviteli rendszert. Általában fix, hogy hol melyik gépeken használják. Miért ne lehetne desktop alkalmazás a kliens? UI készlet adott, kommunikáció megoldott, stb. Működést meg mindkét esetben meg kell írni.

Hatékonyabbra, megbízhatóbbra, gyorsabban, szopásmentesebben, karbantarthatóbban meg lehet írni.

Nem azzal van bajom, hogy fejlődjenek a böngészők. Azzal van bajom, hogy olyan miatt fejlődnek a böngészők, ami miatt sok esetben felesleges lenne.

"Esetleg a böngészőket más nyelvek futtatására is alkalmassá tesszük"

Attól még az alapvető probléma adott: egy alapvetően dokumentum-leíró nyelvbe próbálunk belenyomorítani egy alkalmazás felületét egy olyan protokolon, amit alapvetően nem eseményvezérelt, oda-vissza kommunikációra terveztek, hanem dokumentumok kiszolgálására.

----------------
Lvl86 Troll

A protokoll valóban probléma, a létező megoldások pedig erősen hackszagúak. Másrészről viszont a dokumentumleíró nyelvünk szerintem alkalmas interfészek leírására (az is tekinthető dokumentumnak).

Ebből adódóan ami működőképes verzió lenne, az a böngészők felkészítése más protokollok támogatására. Belerakhatunk új nyelveket (mint pl. a perl támogatásának – talán túl vad… – ötlete), de a JavaScript is kibővíthető lehetne, hogy lehetővé tegyük benne HTTP-n kívül más protokollok használatát/implementálását.


<script type="text/javascript">
var socket = new Socket();
socket.connect(server, port);
socket.oneverythingisperfectandlifeisbeautiful = function() {
 //lets get to work...
}
</script>
int getRandomNumber() { // ←ez itt már az aláírásom
	return 4;//szabályos kockadobással választva.
}		//garantáltan véletlenszerű. xkcd

Idevágó A List Apart cikket olvastad? Eric Meyerre lehet érdemes lenne hallgatni, de én is veled értek egyet, óvakodjunk a böngésző specifikus előtagoktól és kódoktól.

Most átfutottam, kb. ismert a tartalma.

Ami nekem bejövős lenne:
Valamelyik böngészőben megjelenik – mondjuk – a border-radius. Ahelyett, hogy kiírná, hogy -webkit-border-radius (ami a webkit-variánsok túlburjánzásának köszönhetően szerintem félreérthető is lehet), simán marad border-radius, és esetleg odabiggyeszt még egy verziót, mivel szerintem a többi böngésző inkább implementálna a többi böngésző innovációját, ha az böngészőagnosztikusan lenne jelölve.

Utána lehetne követni az ezzel foglalkozó weboldalakon, hogy mondjuk a border-radius első változatát már a böngészők x %-a támogatja – ugyanúgy, ahogy szerintem jelenleg a „filter” CSS-tulajdonságot is támogatja részlegesen a Firefox (nem, nem próbáltam, egyébként az átlátszóságra gondolok), pedig nem ők találták ki.

int getRandomNumber() { // ←ez itt már az aláírásom
	return 4;//szabályos kockadobással választva.
}		//garantáltan véletlenszerű. xkcd