Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Je kunt ook een cookievrije versie van de website bezoeken met minder functionaliteit. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , reacties: 49, views: 17.773 •
Submitter: SlaSauS

Mozilla heeft aangekondigd samen met Samsung aan een nieuwe geavanceerde browserengine genaamd Servo te werken. De engine moet geoptimaliseerd worden voor de nieuwste hardware, terwijl het gebruik van Mozilla's eigen programmeertaal Rust voor meer veiligheid moet zorgen.

Mozilla deed de aankondiging op het Mozilla Blog. Met de nieuwe engine willen de bedrijven klaar zijn voor het gebruik van de nieuwste hardware en techniek en ook wordt de engine geoptimaliseerd voor gebruik in combinatie met multicoreprocessors. De engine wordt niet gebaseerd op een bestaande engine, maar wordt nieuw geschreven. Mozilla's Firefox maakt op dit moment gebruik van Gecko, een browserengine die al bestaat sinds 1997.

De engine wordt geschreven in de programmeertaal Rust, een taal die Mozilla zelf ontwikkeld heeft met het oog op veiligheid. De bedrijven denken hiermee de oorzaak van veel beveiligingsproblemen op te lossen. Mozilla en Samsung kondigen aan zowel Rust als Servo uit te brengen voor ARM-hardware. Een klein begin, in de vorm van compileermogelijkheden, heeft Mozilla gepubliceerd op Github.

De aankondiging valt samen met het bereiken van een nieuwe versie van Rust, met versienummer 0.6. Mozilla kondigt aan samen met Samsung het komende jaar de eerste grote revisie van Rust door te voeren, waarbij de libraries opgeschoond, uitgebreid en gedocumenteerd zullen worden. Ook worden de tools gebruiksvriendelijker gemaakt en moet de programmeertaal sneller worden. Het bedrijf wil met Rust dezelfde niches vullen waar C++ momenteel de koploper is, met name door lichtgewichte primitieven voor parallellisatie te implementeren.

Reacties (49)

Weer een nieuwe engine. Ik juich dit schoorvoetend toe.
De engine wordt niet gebaseerd op een bestaande engine, maar wordt nieuw geschreven.
Erg goed voor de innovatie lijkt me, maar als developer kan ik niet ontkennen dat ik een beetje zenuwachtig wordt van het idee met nog meer truukjes te moeten komen. :P
De engine wordt geschreven in de programmeertaal Rust, een taal die Mozilla zelf ontwikkeld heeft met het oog op veiligheid.
Iets te maken met security through obscurity? Of zie ik dat verkeerd? Lijkt me onhandig voor devs die mee willen gaan werken. Iets met het wiel en al uitgevonden. Maar ik kan niet ontkennen dat ze een punt hebben.

[Reactie gewijzigd door Redsandro op 3 april 2013 20:46]

Sluit ik me volledig bij aan. Wordt al gek van alle huidige browsers met alle engines die er achter hangen. Als ze het uitrollen zodat het Gecko gaat vervangen zal het misschien nog meevallen. :?
Zelfs als het gecko niet vervangt, een extra engine zorgt juist voor meer standaardisatie en dat betekend alleen maar minder truukjes uit halen. Natuurlijk, even in het begin kan het betekenen dat er meer verschillen zijn, maar alle spelers behalve de dominante speler hebben baat bij standaardisatie en hoe meer kleine speler d'r dus zijn, des te beter.

En sowieso, nieuw geschreven code door ervaren programmeurs is altijd beter. Laat je het doen door programmeurs die geen ervaring hebben, of ga je halve stukken code overnemen of ouderwetse structuren overnemen voor backward compability, ja dan kan er van alles mis gaan, maar indien je je het economisch en tijd technisch kunt veroorloven dan is het uitermate nuttig om eens in x jaar gewoon alles het raam uit te gooien (of op z'n minst component per component wat mozilla tot nu toe wel eens deed). Het is ook niet zonder reden dat chrome (veel nieuwe code, ook al bestond bijvoorbeeld de html engine webkit al wel) zo vreselijk efficiŽnt was (en dat was niet eens alleen door ervaren brwoser-programmeurs gedaan).
Iets te maken met security through obscurity? Of zie ik dat verkeerd? Lijkt me onhandig voor devs die mee willen gaan werken. Iets met het wiel en al uitgevonden. Maar ik kan niet ontkennen dat ze een punt hebben.
Ik ga rust later eens bekijken, maar voor veel devs maakt de programmeer taal waarin ze werken totaal niks uit. Bij het bedrijf waar ik momenteel werk leerde ik ook een volledig nieuwe taal in de eerste week dat ik daar kwam, maar programeren blijft programeren, en zolang het een same-level taal is, is dat nooit een probleem (same level in de zin van dat een C programmeur niet plotseling in php kan werken, maar een echte php programmeur geen serieus probleem heeft om met ruby te gaan werken ofzo). En trouwens, dat idee van obscurity klopt natuurlijk voor geen meter, want alles zal open source zijn ;-) Nee, het gebruik van een andere taal is vooral handig omdat je bepaalde security principes en features regelrecht op het niveau van de taal kunt definiŽren waardoor veel risico's niet eens kunnen ontstaan (wat dan vaak wel ten koste van programmeer gemak gaat, maar dat is het dan wel op zich waard).

[Reactie gewijzigd door David Mulder op 3 april 2013 23:09]

Zelfs als het gecko niet vervangt, een extra engine zorgt juist voor meer standaardisatie en dat betekend alleen maar minder truukjes uit halen. Natuurlijk, even in het begin kan het betekenen dat er meer verschillen zijn, maar alle spelers behalve de dominante speler hebben baat bij standaardisatie en hoe meer kleine speler d'r dus zijn, des te beter.
Aanvullend op waarom verschillende engines juist ook voor webdevelopers op de lange termijn belangrijk zijn.

De geschiedenis heeft ons met IE6 laten zien wat er kan gebeuren als een engine de markt overheerst, namelijk totaal gebrek innovatie of het volgen van standaarden zo gauw men eenmaal aan de top is. IE6 heeft de hele webdeveloper scene absurd veel tijd gekost aan work-arounds en innovatie serieus afgeremd. Het heeft ons bijna 10 jaar gekost om ons uit deze situatie te verlossen. Eigenlijk pas sinds Microsoft onder druk van Firefox en Chrome weer is gaan innoveren en het marktaandeel van IE6 nu pas voor veel websites laag genoeg ligt om het te kunnen negeren.

Verder waarom men "niet gewoon een standaard kan maken waar iedereen zich aan houdt". Het W3C standaardiseert, een browsermaker implementeert. Hierdoor heeft het W3C minder gevoel voor wat wel en wat niet in de praktijk haalbaar is. In het verleden heeft dit geleid tot standaarden die niet geheel en niet precies zoals het W3C het bedoeld had door browsermakers zijn overgenomen (vaak waren standaarden ook voor meerdere interpretaties vatbaar). Dit leidde o.a. tot irritatie bij de webdeveloper die de standaard probeerde te hanteren en erachter kwam dat het in elke browser weer net even anders of niet werkte.

Het succes van een standaard kun je meten aan het aantal engines dat deze geÔmplementeerd heeft, daarom is de huidige aanpak gebaseerd op het eerst in de praktijk uitproberen van nieuwe functies, alvorens ze te standaardiseren. Pas als diverse browsermakers succesvol een nieuwe functie hebben weten te implementeren en deze ook overal hetzelfde werkt, wordt de zaak gelijk getrokken in de vorm van een standaard en komt de nieuwe functie in de stabiele releases van browsers [1] [2].

Met andere woorden, goed nieuws dus voor webdevelopers en de gehele internet community dat er een compleet van scratch opnieuw ontworpen engine wordt ontwikkeld die bijdraagt aan de gezondheid van het eco-systeem.

/edit
Overigens lees ik net in een post over het vandaag ook publiekelijk bekend gemaakte Blink [3] dat Chromium, Opera en Mozilla niet meer met vendor prefixes werken maar experimentele features via een aparte setting in de browser beschikbaar maken.

[1] http://www.chromium.org/blink#vendor-prefixes
[2] http://lists.w3.org/Archi...apps/2012OctDec/0731.html
[3] http://www.brucelawson.co.uk/2013/hello-blink/

[Reactie gewijzigd door SlaSauS op 4 april 2013 04:49]

Mensen vergeten dat een nieuwe engine niet altijd beter is! Dit kan goed maar ook totaal fout uitpakken.
Nee, maar veel bedrijven blijven jaren lang vast houden aan legacy code in hun producten om dat het een belangrijl deel is. Meestal is het aantal mensen wat daadwerkelijk weet wat het doet klein en brengt het bergen problemen met zich mee.

Je eindproduct is dan nieuwe code die voor de helft uit workarounds bestaat.

Uiteindelijk zul je toch echt moeten inzien dat je alleen een beter product kunt af leveren door de oude troep weg te gooien en iets nieuws te maken. Ja dat brengt weer nieuwe problemen met zich mee, maar meestal kun je daar structurele oplossingen voor verzinnen en is het op zijn minst beter te onderhouden.
Een mooi voorbeeld daarbij is de auto-industrie. Een compleet nieuw model ontwikkelen kost, pak 'm beet, 3 jaar. En dat model gaat een paar jaar meer, zeg vier jaar. Halverwege de modelcyclus komt er meestal een flinke make-over, facelift genoemd. Die facelift wordt doorgaans door een ander team gedaan dan het team dat nieuwe modellen ontwikkeld, want die is inmiddels met een nieuw model bezig.

Zo zou het ook bij software moeten werken. Bij de grote jongens (Microsoft, Adobe, Oracle enzo) zal het wel zo werken, maar bij de kleinere bedrijven is daar simpelweg het geld niet voor. Die hebben simpelweg de tijd en het geld niet om tegelijkertijd bugfixes en noodzakelijke updates voor bestaande versies uit te brengen, en tegelijkertijd compleet nieuwe versies te ontwikkelen.

Mozilla zit in een redelijk 'comfortabele' positie wat dat betreft, die krijgen redelijk wat geld van Google en nu dus Samsung. Maar toch zit er een vrij lange periode tussen major updates (hoewel dat door de nieuwe versienummering een beetje verdoezeld wordt).

Een ander voorbeeld is GIMP, die brengen 1 ŗ 2 keer per jaar een update uit, maar tussen major updates zit jaaaaren.
Ik denk niet dat Rust op security through obsurity is gebaseerd. In een taal als c zijn buffer overruns enorm simpel te veroorzaken door onoplettendheid van de programmeur. In een taal als java wordt dat al een stuk lastiger. Het is maar net waar de ontwerpers van de taal mee rekening hebben gehouden. Misschien lever je met Rust in op performance tov c maar win je aan veiligheid.
Ik ben hier erg over te spreken. Persoonlijk ligt mijn voorkeur bij Firefox, maar ik vind de prestaties van de Android-versies zwaar onder de maat. Zelfs op mijn Galaxy S3 loopt Firefox niet altijd even vlot. Misschien dat er een geoptimaliseerde versie komt voor Samsung toestellen. Dat zou mooi zijn.
Speaking of Samsung, ik vind die native browser op hun Androidversie wel de relaxtste van alle die ik geprobeerd heb. Firefox en zelfs Chrome zijn wat trager en doen zwaarder aan.
Om maar offtopic te happen:
Ben helemaal blij met Dolphin browser for Android.

Review op Tom's Hardware kwam tot de opmerkelijke ranking:
Als beste de onbekendere mobile only browsers
Dan de Android stock browser
En daarachter pas de grote browser merken

Dus eigenlijk wel logisch dat Mozilla en Samsung met een nieuwe, beter geoptimaliseerde browser willen komen.
Weer? Behalve Trident, Gecko en Webkit is er niet veel dat het echt heeft gemaakt...
Hier is de source van Rust https://github.com/mozilla/rust en hier van Servo https://github.com/mozilla/servo

Dus nee, geen security through obscurity....
Ik ben allesbehalve een programmeur. Wat is het voordeel van een nieuwe(re) programmeertaal voor veiligheid?

Thanks guys!

[Reactie gewijzigd door ADQ op 3 april 2013 21:24]

C++ heeft bijvoorbeeld snel last van buffer overflows (wat vaak gebruikt wordt voor exploits) wanneer je dit niet goed afvangt. C# heeft hier bijvoorbeeld geen last van. De kans is groot dat Rust hier ook geen last van heeft.
Buffer overflows is meer iets van c dan c++. Buffer overruns ontstaan met name bij fixed size buffers en met c-strings waarin je altijd moest nadenken over de extra '\0' op het eind. Als je gewoon std::vector en std::string gebruikt zie ik weinig gevaar. Lijkt me ook moeilijk om programmeurs te vinden voor een Mozilla dialect, laat staan optimized compilers. Nee geen goed idee wmb van Mozilla.
De taal maakt concurrency/parrelisme ook een stuk makkelijker en wordt gemaakt boven op LLVM dus heeft al een goed geoptimaliseerde basis.
Sorry, maar C++ heeft last van slechte programmeurs.
Een taal kan je dwingen bepaalde methodes te hanteren.
Zo maakt PHP je lui en dwingt C je tot nadenken over hoe lang een variabele is en hoeveel geheugen je wilt. Dit heeft allerlei security implicaties. Rust doet geheugenbeheer (en welk onderdeel tot welk stukje data toegang heeft en wanneer) nog weer anders, en volgens Mozilla is dat kennelijk beter. Ik ken de taal niet maar hij ziet er wel mooi leesbaar uit.
Pfff... Als webontwikkelaar ben ik van de mening dat er al veel te veel van deze engines zijn ťn dat ze per browser te veel verschillen. Is het echt te veel gevraagd om gewoon 1 rechtlijnige engine te maken?
Wat een gezeur over incompatibiliteit. Daar is toch een standaard voor ontwikkeld? Willen ze een kans maken, dan moeten ze die fatsoenlijk ondersteunen, dus dat zullen ze heus wel proberen.
Voor een hoop ontwikkelaars/testers is dit een dagelijkse nachtmerrie. We maken graag functionaliteit, en testen dit graag in 1 keer.

Browser incompatibiliteit dwingt ons alles meerdere keren te testen, en meer bezig te zijn met uitzonderingen (consistente page-breaks bij afdrukken vanuit verschillende browsers is een hel) dan met de functionaliteit.
Vanuit een concurrentie-standpunt zou ik zeggen dat meer engines niet meer dan normaal is. Van de andere kant is het voor ontwikkelaars echter weer dat hoe meer engines er zijn, hoe meer je rekening moet houden met allerlei kleine afwijkingen die per engine/browser verschillen. Ik kom nu op m'n werk al regelmatig tegen dat bepaalde zaken wel in Chrome en FF werken, maar niet in Internet Explorer, of andersom, of met andere browsers, en ik ben niet eens een programmeur :+ Hoe meer engines > hoe meer je rekening moet houden met van alles > hoe meer kans op fouten > hoe meer werk in foutopsporing > meer tijd > meer geld > etc.
Een programmeur heeft hier ook geen last van, PHP draait server sided en werkt dus in elke browser hetzelfde ;) Alleen scripters (designers) die met CSS (en in bepaalde mate ook javascript) werken hebben hier last van.
Helaas is dat vaak dezelfde persoon. Diegene die de server side en client side code schrijft
Ik ben nooit zo weg van de kwaliteit die Samsung op software gebied aflevert. Samsung Tizen, mwah is niets bijzonders en ziet er ook niet goed uit. Samsung Android skin is weinig vernieuwend en is ook nog eens erg langzaam. Samsung Wallet is een kopie van de Apple Wallet.
Samsung is ongeveer 100x meer dan wat jij nu aangeeft. Verdiep je eens wat meer in Samsung en dan zal je zien dat het VEEL MEER is dan mobiele telefonie.
Jippie, nog een browser... hebben we er niet genoeg?
Engine != browser

Internet Explorer heeft bijvoorbeeld verschillende engines gehad, een naamloze, Tasman, SpyGlass en nu Trident. En eigenlijk is 3 engines (Trident, Gecko en Webkit) te weinig.
Waarom is Microsoft zo vaak van Engine verandert?

Niet zeker over eigen zaak?
Ben ik nou gek of is de reden:
"Beter geschikt voor nieuwere hardware" echt een vreemde keuze?
Vooral als Samsung een onder andere mobiele telefoon fabrikant. Wiens hardware dus per telefoon kan verschillen (ARM, Samsung, Intel als producent van alleen de processor al).
Zal het dan niet veel beter zijn een programmeertaal te maken die zichzelf kan aanpassen aan verbeterde architecturen veel beter zijn?
Want de hardware zal alleen maar meer veranderen, dus ik snap nooit echt het doel van een niet adaptieve taal die zich richt op deze generatie hardware. Of bestaat zoiets al?
Of snap ik niet goed hoe programmeertalen worden gemaakt? Want in dat opzicht ben ik een redelijke leek.
Dat is niet zozeer een vreemde keuze. Ik denk dat ze vooral doelen op het feit dat moderne hardware parallel werkt, en een taal als C++ je niet helpt in solide parallelle code schrijven.

Oude C++ omzetten naar parallel geeft een grote kans op fouten, welke onveilige situaties opleveren. En Rust is ontworpen met parallelle systemen in gedachten.

Zo gek dus nog niet. Of het het waard is momenteel, geen idee. Maar eeuwig doorgaan met oude code, welke voor oude systemen is geschreven, is ook niet ideaal.
De engine moet geoptimaliseerd worden voor "tomorrow’s faster, multi-core, heterogeneous computing architectures". In dat opzicht is het anders dan de nu in gebruik zijnde browserengines, die zijn initieel niet ontworpen voor deze nieuwe hardware. Het gebruik van de programmeertaal Rust moet zorgen voor meer veiligheid, en is niet specifiek op deze generatie hardware.
Samsung wil met Tizen af van Google, of in ieder geval een goed alternatief hebben. En als je dan een speciaal gebouwde browser precies voor je eigen hardware en eigen software hebt, los van een Google product, is dat een situatie die Samsung graag ondersteunt.
En met de voorsprong welke Chrome qua aantal users heeft ov FireFox is de stap van Mozilla ook logisch.
Maar WebKit is niet gebonden aan een Google-product (wel andersom). WebKit wordt al gebruikt door Apple, BlackBerry, Nokia, Adobe, en is ook embedded in tal van non-browser applicaties (bijvoorbeeld Skype, via de Qt bindings). Al die bedrijven gebruiken WebKit, en ze zijn daarvoor allemaal niet afhankelijk van Google.

Ik kan begrijpen dat Samsung niet afhankelijk wil zijn van Google, maar op geen enkele wijze geeft me dat inzicht in waarom ze dan een eigen rendering engine gaan bouwen :s
Samsumg gebruikt voorlopig dan ook gewoon WebKit. Ze maken geen eigen rendering engine maar gaan samenwerken met mozilla. Mozilla is hier al een tijdje mee bezig als research, Servo is een engine met een nieuwe architectuur die het mogelijk maakt om veel zaken parallel te berekenen wat belangrijk is voor de toekomstige cpu's.
Gecko is best aan een vervanger toe, hoewel het een stuk beter is dan hoe hij vroeger was is gecko misschien wel aan een opvolger toe.
Leuk dat Samsung zich hier bij aansluit. Rust ziet er goed uit, een mooie krachtige en snelle taal die een hoop bugs voorkomt en parallel programmeren een stukje makkelijker maakt. Dat laat de architectuur van Servo ook goed zien die veel meer tegelijk kan doen dan wat er bij de huidige engines mogelijk is.

[Reactie gewijzigd door EviL_Me op 3 april 2013 22:09]

Ik ben benieuwd wat er van gaat komen, een nieuwe engine is altijd welkom, zeker nu Presto gaat verdwijnen. Al vraag ik me wel af of dit ook Gecko gaat vervangen?

Op dit item kan niet meer gereageerd worden.



Populair:Apple iPhone 6DestinyAssassin's Creed UnityFIFA 15Nexus 6Call of Duty: Advanced WarfareApple WatchWorld of Warcraft: Warlords of Draenor, PC (Windows)Microsoft Xbox OneiPhone

© 1998 - 2014 Tweakers.net B.V. Tweakers is onderdeel van De Persgroep en partner van Computable, Autotrack en Carsom.nl Hosting door True

Beste nieuwssite en prijsvergelijker van het jaar 2013