Met componenten zet Google zich in voor een revolutie in webontwikkeling

Tijdens de Google I / O-conferentie deze week lobbyde het bedrijf krachtig voor ontwikkelaars om een ​​nieuw programmeermodel te gebruiken, een model dat volgens het bedrijf het radicaal eenvoudiger zou maken om webapplicaties te bouwen.

In meerdere sessies tijdens de conferentie spraken Google-ingenieurs over Web Components, een evoluerende World Wide Web Consortium (W3C) -standaard die is ontworpen om complexe webpagina's te helpen organiseren door een mechanisme te bieden om ze samen te stellen met behulp van kleine, enkelvoudige componenten.

“Webcomponenten veranderen het webplatform volledig. Dit is geen overdrijving. Dit verandert eigenlijk alles ', zei Matthew McNulty, een technische manager van Google, tijdens een presentatie op de conferentie in San Francisco.

De standaard kan belangrijk zijn omdat 'het een nieuwe wereld introduceert waarin componenten van verschillende leveranciers samen kunnen leven op dezelfde pagina. Apps kunnen worden gemaakt op basis van onderdelen op een enorme plank, ”McNulty. 'Het gaat over composabiliteit. Het geeft je net genoeg van een container dat het web te componeren wordt. ”

Google heeft gewerkt aan een eigen bibliotheek, genaamd Polymer, die het gemakkelijker maakt om webcomponenten te gebruiken en uit te breiden. "Polymer doet al het harde werk om van [Web Components] een samenhangend systeem te maken", zei McNulty.

"Het idee achter Polymer is om gebruik te maken van de Web Components-standaard", zegt Al Hilwa, IDC-onderzoeksprogramma-directeur voor softwareontwikkeling.

Hilwa merkte op dat Polymer een poging is om geavanceerde uitbreidbaarheid naar het webplatform te brengen, net zoals de Java Enterprise Edition en Microsoft .Net ontwikkelaars in staat stellen componenten te delen en snel applicaties te bouwen met behulp van het werk van anderen.

Hoewel er sinds 2010 aan Web Components wordt gewerkt, lijkt de technologie nu vaart te krijgen.

Google's Chrome 36, dat over een paar weken wordt verzonden en nu klaar is in het bètakanaal, ondersteunt webcomponenten. Het is de eerste browser die dit doet.

'Dit is een mijlpaal in webontwikkeling', zei Eric Bildeman, een Google-ingenieur die in het Chrome-team werkt, tijdens een andere presentatie over de technologie.

In veel opzichten levert Web Components eindelijk de geavanceerde coderingstools en -technieken waar ontwikkelaars in andere talen al lang van genieten, zoals objecten, sjablonen en gegevensbinding (hoewel de gegevensbinding wordt aangeboden door Polymer, niet door Web Components zelf).

Ondanks het bijna universele gebruik in het afgelopen decennium, is HTML, dat het basisopmaakformaat biedt voor het bouwen van webpagina's, niet erg geavanceerd wat betreft het helpen van ontwikkelaars bij het bouwen van complexe webapplicaties,.

Zo is er in HTML geen enkele gestandaardiseerde manier om extra elementen in een webpagina te laden zonder hulp van externe technologieën zoals PHP of Apache-modules. Zowel JavaScript als CSS (Cascading Style Sheets) bieden al lang de mogelijkheid om externe bestanden in te roepen wanneer een browser een webpagina weergeeft.

De recente opkomst van HTML5 heeft veel ondersteuning geboden voor geavanceerde technologie, zoals lokale opslag, geolocatie en semantische tagging. Maar webcomponenten zijn speciaal ontworpen om ontwikkelaars productiever te maken, zei Bildeman.

Web Components vereist echter een andere manier van denken over het bouwen van web-apps, zei Bildeman.

Web Components is eigenlijk een overkoepelende term, die vier verschillende specificaties omvat die, wanneer ze samen worden gebruikt, de basis vormen voor het bouwen van samengestelde webpagina's.

Misschien is de kerntechnologie voor webcomponenten een importtag voor HTML. Hoewel het eenvoudig klinkt, kan de HTML-importtag ontwikkelaars redden van wat bekend staat als dependency hell, waarin ze in de hoofdtekst van een pagina alle bibliotheken moeten declareren die nodig zijn om de code uit te voeren.

In plaats daarvan kunnen ontwikkelaars die informatie insluiten in een component en de pagina de component laten aanroepen. Het onderdeel kan dan ook door andere pagina's worden gebruikt.

Met de import-tag kunnen ontwikkelaars hun eigen elementen definiëren, die vervolgens door de browser kunnen worden aangeroepen.

Gebruikers kunnen hun eigen elementen schrijven, die van anderen gebruiken of zelfs de elementen die anderen hebben gemaakt uitbreiden met nieuwe functies. Elementen kunnen ook verbindingen met andere bronnen op het web bevatten door te wikkelen met externe API's (interface-aanroepen van applicatieprogrammering).

'Er is nu een logische scheiding. Het gaat om het opdelen van het probleem, dus het is niet langer alleen een hoop JavaScript, HTML en CSS waarvan je hoopt dat het zal samenwerken, "zei Bildeman.

Naast Google lijken andere makers van browsers de technologie goed te bekijken.

Mozilla heeft al een aantal functies toegevoegd om webcomponenten te ondersteunen, en Apple en Microsoft lijken de mogelijkheid te onderzoeken om ondersteuning in hun browsers op te nemen. Opera, omdat het de Google Chrome Blink-layout-engine gebruikt, ondersteunt standaard webcomponenten.

Google heeft Web Components getest in zijn eigen activiteiten. De Polymer-site maakt gebruik van componenten. De Google-site voor het documenteren van de voortgang van Chrome-ontwikkeling gebruikt ook componenten om gegevens uit een database op te halen en op het scherm weer te geven.

Het ChromeOS-besturingssysteem, gebruikt in Google Chromebooks, gebruikt webcomponenten om het virtuele toetsenbord en de mediaspeler van stroom te voorzien.

De interesse in webcomponenten lijkt ook elders te groeien. Een aantal componentregisters waar ontwikkelaars hun eigen componenten kunnen gebruiken en bijdragen zijn verschenen, waaronder Custom Elements, Component Kitchen en WebComponents.org.

'Dit ecosysteem is nog maar net begonnen', zei McNulty.

Word lid van de Network World-gemeenschappen op Facebook en LinkedIn om commentaar te geven op onderwerpen die voorop staan.