<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>javascript &#8211; Smals Research</title>
	<atom:link href="https://www.smalsresearch.be/tag/javascript/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.smalsresearch.be</link>
	<description></description>
	<lastBuildDate>Thu, 09 Apr 2026 12:19:37 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://www.smalsresearch.be/wp-content/uploads/2026/01/cropped-cropped-Smals_Research-32x32.png</url>
	<title>javascript &#8211; Smals Research</title>
	<link>https://www.smalsresearch.be</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>De &#8216;Vortex&#8217; van Enablers</title>
		<link>https://www.smalsresearch.be/de-vortex-van-enablers/</link>
		
		<dc:creator><![CDATA[Koen Vanderkimpen]]></dc:creator>
		<pubDate>Tue, 21 Feb 2017 08:14:01 +0000</pubDate>
				<category><![CDATA[[NL]]]></category>
		<category><![CDATA[Blog post]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[cloud computing]]></category>
		<category><![CDATA[Container]]></category>
		<category><![CDATA[EDA]]></category>
		<category><![CDATA[egov]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[microservices]]></category>
		<category><![CDATA[PaaS]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[rest]]></category>
		<category><![CDATA[SOA]]></category>
		<category><![CDATA[Software architectures]]></category>
		<category><![CDATA[software design]]></category>
		<category><![CDATA[software engineering]]></category>
		<category><![CDATA[vortex]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<guid isPermaLink="false">/?p=10419</guid>

					<description><![CDATA[In de software engineering wereld zijn de voorbije jaren, en nu nog altijd, een aantal indrukwekkende evoluties aan de gang. Verschillende technologieën samen bieden nu nieuwe perspectieven en kunnen de business transformeren. In deze blog een korte opsomming van een aantal van deze ontwikkelingen. Later kunnen we inzoomen op de impact ervan op de business. [&#8230;]]]></description>
										<content:encoded><![CDATA[<p style="text-align: justify;">In de software engineering wereld zijn de voorbije jaren, en nu nog altijd, een aantal indrukwekkende evoluties aan de gang. Verschillende technologieën samen bieden nu nieuwe perspectieven en kunnen de business transformeren. In deze blog een korte opsomming van een aantal van deze ontwikkelingen. Later kunnen we inzoomen op de impact ervan op de business.</p>
<p style="text-align: justify;"><span id="more-10419"></span></p>
<h1 style="text-align: justify;">&#8220;Digitale Transformatie&#8221;</h1>
<p style="text-align: justify;">Wanneer men het tegenwoordig heeft over <a href="https://www.infoworld.com/article/3152507/it-strategy/the-5-myths-of-digital-transformation.html">bovenstaand buzzword</a>, zal men steevast een aantal technologische evoluties opsommen die een verregaande impact op onze wereld hebben, en bijgevolg ook op de business, (in het bijzonder de IT business). We denken dan <a href="/analytics-behind-the-scenes-humans-and-computers-versus-big-data/">Big Data + Analytics</a>, <a href="/ce-quun-reseau-social-peut-nous-apprendre/">Sociale Media</a>, <a href="/cloud-metaforen-elektriciteit-goud/">Cloud</a> en <a href="/van-chipkaart-naar-smartphone-naar-arm/">Mobile</a>; de zogenaamde &#8220;<a href="https://www.gartner.com/technology/research/nexus-of-forces/">Nexus of Forces</a>&#8220;.</p>
<p style="text-align: justify;">Het is wel waar dat deze <em>nexus</em> nogal wat furore maakt, maar die kan dat, doordat er, onderliggend, een aantal andere technologische evoluties spelen, die het de software engineering wereld mogelijk maken om al deze krachten voldoende te ondersteunen. Evoluties die, als het ware, ervoor zorgen dat de software die deze nexus draaiende houdt, kan worden gebouwd en ontplooid op een beheersbare manier, zonder dat ontwikkelaars ten onder gaan aan de groeiende complexiteit. Een aantal van die evoluties vatten we hier nu samen onder de noemer <em><strong>&#8220;Vortex of Enablers&#8221;</strong></em>. (Over vele van deze technologieën hadden we het reeds eerder &#8211; volg de links voor meer informatie.)</p>
<h1 style="text-align: justify;">Enablers 1 en 2: Verregaande Virtualisatie met Cloud &amp; Containers</h1>
<p style="text-align: justify;"><img decoding="async" class="alignleft wp-image-10540" src="/wp-content/uploads/2017/02/containers-300x225.png" alt="" width="184" height="140" />De <a href="/de-stille-cloud-machtsgreep/">Cloud</a> is niet meer weg te denken, maar welke technologie gaat er precies achter schuil? Oorspronkelijk werden er enorme sprongen voorwaarts gemaakt door het virtualiseren van machines, en infrastructuur in het algemeen (<a href="/as-a-service-een-waaier-aan-mogelijkheden/">IaaS</a>). Maar nu zien we de platformen pas echt ook voor ontwikkelaars tot wasdom komen. <a href="/productiviteitsverhoging-met-paas/">PaaS</a> platformen zijn, dankzij de verschroeiend harde introductie van Container technologie, uitgegroeid tot de <a href="https://www.docker.com/"><img fetchpriority="high" decoding="async" class="alignright size-medium wp-image-10538" src="/wp-content/uploads/2017/01/moby-300x192.png" alt="" width="300" height="192" srcset="https://www.smalsresearch.be/wp-content/uploads/2017/01/moby-300x192.png 300w, https://www.smalsresearch.be/wp-content/uploads/2017/01/moby.png 525w" sizes="(max-width: 300px) 100vw, 300px" /></a>virtualisatiekeuze bij uitstek. Het worden nu zelfs vaker en vaker in de eerste plaats &#8220;<a href="/disruptie-in-de-cloud-stack-caas/">Container Platformen</a>&#8220;. Momenteel zijn Containers niet meer weg te denken uit Software Engineering, en ze zijn ook een belangrijke enabler voor <a href="https://en.wikipedia.org/wiki/DevOps">DevOps</a>. Maar het verhaal zal hier nog niet eindigen. Aan de horizon duikt reeds een nog hoger niveau van virtualisatie op: het zogenaamde <a href="https://en.wikipedia.org/wiki/Serverless_computing">Serverless Computing</a> (zie ook onze <a href="/radar/approaches-radar-2017/">research radar</a>).</p>
<h1 style="text-align: justify;">Enabler 3: MicroServices</h1>
<p style="text-align: justify;"><a href="/van-n-tier-naar-microservices/"><img decoding="async" class="alignleft size-thumbnail wp-image-9733" src="/wp-content/uploads/2016/06/logomicro-150x150.png" alt="" width="150" height="150" />MicroServices</a> zijn de manier bij uitstek waarmee we complexe IT systemen kunnen opdelen in vele kleinere en makkelijker onderhoudbare componenten. Ze zorgen ervoor dat we een verzameling van toepassingen kunnen bouwen die allemaal potentieel klant zijn van elkaar en elk hun stukje van het geheel uitvoeren. Daarnaast zijn ze typisch klein en onafhankelijk, waardoor ze ideaal zijn om uitgerold te worden via een container platform.</p>
<h1 style="text-align: justify;">Enabler 4: Event Driven Software Engineering</h1>
<p style="text-align: justify;"><img loading="lazy" decoding="async" class="alignleft size-thumbnail wp-image-9123" src="/wp-content/uploads/2015/10/event-150x150.png" alt="" width="150" height="150" />Over Events hadden we het al uitgebreid in <a href="/het-event-als-leidend-voorwerp-in-software-engineering/">vorige blogs</a>. In het algemeen merken we dat dit mechanisme aan populariteit wint om een dynamisch en snel veranderende wereld, die continu nieuwe data genereert, te kunnen vatten in IT.</p>
<p style="text-align: justify;">Events lenen zich dan ook heel goed voor het capteren van data: alles wat in een computersysteem binnenkomt, kan namelijk worden gezien als een Event, en het gebruik hiervan als <a href="/geavanceerd-event-driven-engineering/">primaire databron</a> is soms handiger dan wanneer men de ervan afgeleide data zou gaan bewaren. In een overheidscontext zien we bijvoorbeeld de notie van <a href="https://gcn.com/articles/2016/05/24/civic-moments.aspx">civic moments</a> aan belang winnen, hetgeen eigenlijk niet minder dan business Events zijn voor overheidstoepassingen.</p>
<h1 style="text-align: justify;">Enabler 5: Steeds Betere Web Raamwerken</h1>
<p style="text-align: justify;"><img loading="lazy" decoding="async" class="alignleft wp-image-7833" src="/wp-content/uploads/2014/12/html5_javascript_js-300x175.png" alt="" width="220" height="132" />Het venster dat de klant krijgt op een IT-toepassing, is de client. Het is dan ook enorm belangrijk dat deze goed is gebouwd en vooral handig is in gebruik. De meeste client toepassingen zijn momenteel webgebaseerd of mobiel, en ook in deze laatste categorie wint webtechnologie gestaag aan belang. Het trio <a href="/html-5-een-rijke-ervaring-zonder-plugins/">Html, Css en Javascript</a> blijft dan ook de manier bij uitstek om een eindgebruikerstoepassing te bouwen, en elk jaar zien we wel een <a href="/de-frameworks-blob/">nieuw raamwerk populair worden</a> in deze wereld; raamwerken die het makkelijker maken om sneller grotere, complexere en mooiere toepassingen te bouwen. Daarnaast wordt deze technologie ook steeds beter ondersteund door de technologie die er aan server-zijde bij komt: we krijgen haast onbeperkte schaalbaarheid en robuustheid wanneer we toestandsloze webtoepassingen gaan hosten op container platformen, gebruik makende van microservices als backend, op hun beurt ontsloten door (vaak <a href="/data-centric-it-met-rest/">RESTful</a>) API&#8217;s (en, waarom niet, werkend via <a href="/javascript-altijd-en-overal/">node.js</a>).</p>
<h1 style="text-align: justify;">Enabler 6: API&#8217;s</h1>
<p style="text-align: justify;"><img loading="lazy" decoding="async" class="alignleft size-thumbnail wp-image-10541" src="/wp-content/uploads/2017/02/api-150x150.png" alt="" width="150" height="150" />Het aanbieden van een degelijke API is de ideale manier om de functionaliteiten van een IT systeem beschikbaar te stellen aan andere. API&#8217;s hebben reeds een hele evolutie achter de rug: eerst waren er vooral (taal-specifieke) programmatorische API&#8217;s, daarna werden componenten steeds beter interoperationeel dankzij eerst SOAP-, en daarna REST-gebaseerde API&#8217;s. Momenteel zijn er heuse API Management platformen, die, naast beheer van API&#8217;s, ook voor de interoperabiliteit van heel wat communicatieprotocollen kunnen zorgen.</p>
<p style="text-align: justify;">Via API&#8217;s kan men een sterk hergebruik van data bekomen: gegevens die reeds verwerkt zijn door één toepassing, worden op die manier beschikbaar voor een hele resem andere; vaak zijn dit dan microservices, maar ook frequent client-toepassingen op het web. De API&#8217;s worden bovendien vaak ook aangeboden aan derde partijen en daarbij soms ook gemonetariseerd. Uiteindelijk <a href="/data-centric-it-met-rest/">ontstaat er een hele &#8220;API Economy&#8221;</a>: meer en meer toepassingen ontstaan eenvoudigweg doordat de data die ze nodig hebben, reeds beschikbaar is, en makkelijk consumeerbaar via zo&#8217;n API.</p>
<h1 style="text-align: justify;">De Vortex</h1>
<p style="text-align: justify;">De relaties tussen de verschillende opgesomde technologische evoluties hier beschreven, zijn duidelijk waar te nemen: dit blijkt reeds uit de tekst. Op dit moment hebben we dan ook een unieke smeltkroes: de effecten van deze <em>enablers</em> op software engineering versterken elkaar, en vormen zo het fundament van de vele zaken die er bovenop worden gebouwd: de digitale economie.</p>
<p style="text-align: justify;"><a href="/wp-content/uploads/2017/02/vortex.png"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-10542" src="/wp-content/uploads/2017/02/vortex.png" alt="" width="762" height="608" srcset="https://www.smalsresearch.be/wp-content/uploads/2017/02/vortex.png 762w, https://www.smalsresearch.be/wp-content/uploads/2017/02/vortex-300x239.png 300w" sizes="auto, (max-width: 762px) 100vw, 762px" /></a></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>De Frameworks Blob</title>
		<link>https://www.smalsresearch.be/de-frameworks-blob/</link>
					<comments>https://www.smalsresearch.be/de-frameworks-blob/#comments</comments>
		
		<dc:creator><![CDATA[Koen Vanderkimpen]]></dc:creator>
		<pubDate>Thu, 04 Dec 2014 08:45:54 +0000</pubDate>
				<category><![CDATA[Blog post]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[software design]]></category>
		<category><![CDATA[software engineering]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<guid isPermaLink="false">/?p=7671</guid>

					<description><![CDATA[Over de evolutie van Web Development. Tegenwoordig gebruikt men voor het bouwen van een website of web-applicatie technologie die heel anders is dan 20, 10, of zelfs 5 jaar geleden. Anderzijds zijn er een paar zaken nog altijd hetzelfde. Bovendien gebruikt men deze technologie om steeds nieuwe, en vaak complexere en mooiere sites en applicaties te bouwen [&#8230;]]]></description>
										<content:encoded><![CDATA[<h3>Over de evolutie van Web Development.</h3>
<p><a href="/wp-content/uploads/2014/12/blobjavascript.png"><img loading="lazy" decoding="async" class="alignleft wp-image-7834" src="/wp-content/uploads/2014/12/blobjavascript-150x150.png" alt="blobjavascript" width="182" height="150" srcset="https://www.smalsresearch.be/wp-content/uploads/2014/12/blobjavascript-300x248.png 300w, https://www.smalsresearch.be/wp-content/uploads/2014/12/blobjavascript.png 600w" sizes="auto, (max-width: 182px) 100vw, 182px" /></a>Tegenwoordig gebruikt men voor het bouwen van een website of web-applicatie technologie die heel anders is dan 20, 10, of zelfs 5 jaar geleden. Anderzijds zijn er een paar zaken nog altijd hetzelfde. Bovendien gebruikt men deze technologie om steeds nieuwe, en vaak complexere en mooiere sites en applicaties te bouwen &#8211; maar anderzijds maakt men ook nog altijd eenvoudige websites. In deze blo<del>b</del>g bespreken we een recente evolutie die al een handvol jaren komende is, we noemen deze de &#8220;Frameworks Blob&#8221;.</p>
<p><span id="more-7671"></span></p>
<h2>To Enterprise, or not to Enterprise?</h2>
<p>Wat het bouwen van websites en webapps betreft, volg ik al een tijdje welke zaken hip zijn, welke zaken uit de mode geraken, en welke zaken er in de nog aparte wereld van &#8220;Enterprise&#8221; development gebeuren. Naar mijn mening vindt er nu een interessante evolutie plaats: meer en meer professionele software huizen (&#8220;enterprises&#8221;, dus) gebruiken &#8211; of bekijken op z&#8217;n minst &#8211; technologie die minder als &#8220;Enterprise&#8221; technologie gezien wordt.</p>
<p>Maar wat is Enterprise technologie dan wel? Volgens <a href="https://en.wikipedia.org/wiki/Enterprise_software">de definitie</a> is het eigenlijk gewoon &#8216;technologie ontwikkeld op maat van bedrijven i.p.v. individuele gebruikers&#8217;. Waar velen van ons &#8211; of ik toch &#8211; echter aan denken wanneer we het woord &#8220;Enterprise-ready&#8221; horen vallen is: <em>matuur, stabiel, zwaar, complex, full-blown en moeilijk</em>. Kortom, technologie die, beter dan andere, goed werkt als ze goed gebruikt wordt, maar niet fijn is om goed te gebruiken.</p>
<h2>Anno 2010, <em>Blob as Usual</em></h2>
<p>Op onderstaand assenstelsel heb ik weergegeven op welke manier de meeste applicaties worden ontwikkeld. De horizontale as toont de complexiteit van de website of -app: links heb je de meest eenvoudige websites, rechts de meest complexe en &#8220;mastodontale&#8221; web-applicaties. Op de verticale as heb ik een aantal technologieën, talen, pakketten, methodologieën&#8230; kortom bouwstenen geplaatst die kunnen worden gebruikt om deze webprojecten mee te ontwikkelen. Bovenaan staan de eenvoudigste: zaken zoals Html, de elementaire bouwsteen van het web, en Javascript, een taal die men rechtstreeks in de browser kan gebruiken. Onderaan vinden we meer en meer &#8220;enterprisey&#8221; technologieën terug: zaken zoals SOAP, J2EE en &#8211; huiver &#8211; Cobol (<a href="https://stackoverflow.com/questions/2539745/cobol-web-development-hosting-resources">jawel, zelfs voor web 2.0</a>). Het is uiteraard voor discussie vatbaar waar welke bouwsteen juist op deze as thuishoort. Bovendien kunnen dergelijke technologieën en talen verschuiven op deze as: ze kunnen minder, of juist meer &#8220;enterprisey&#8221; worden, naarmate ze matuur worden.</p>
<p><a href="/wp-content/uploads/2014/11/blob1.png"><img loading="lazy" decoding="async" class="alignleft size-full wp-image-7693" src="/wp-content/uploads/2014/11/blob1.png" alt="blob1" width="744" height="454" srcset="https://www.smalsresearch.be/wp-content/uploads/2014/11/blob1.png 744w, https://www.smalsresearch.be/wp-content/uploads/2014/11/blob1-300x183.png 300w" sizes="auto, (max-width: 744px) 100vw, 744px" /></a></p>
<p>&nbsp;</p>
<p>De groene &#8220;Blob&#8221; tenslotte, is waar, volgens mij, het grootste gewicht van alle web development gebeurt: traditioneel en logischerwijs worden dus de meeste eenvoudige sites en applicaties met eerder eenvoudige technologieën gebouwd. Zware en complexe applicaties worden echter &#8211; vaak terecht &#8211; met enterprise-ready technologieën gebouwd. Business as Usual&#8230;</p>
<h2> Anno 2014, <em>the Blob deforms&#8230;</em></h2>
<p>Zoals in het begin reeds gezegd: meer en meer web development schuift weg van technologie die te &#8220;Enterprise&#8221; is, richting lichtere raamwerken die alles in het werk stellen om het bouwen van webapplicaties zo snel en eenvoudig mogelijk te maken. In de onderstaande figuur vertaalt zich dit in een verschuiven van de onderkant van de &#8220;blob&#8221; naar boven toe: dus ook voor complexere applicaties worden nu meer en meer lichtere en kleinere bouwstenen gebruikt.</p>
<p><a href="/wp-content/uploads/2014/11/blob2.png"><img loading="lazy" decoding="async" class="alignleft size-full wp-image-7692" src="/wp-content/uploads/2014/11/blob2.png" alt="blob2" width="742" height="454" srcset="https://www.smalsresearch.be/wp-content/uploads/2014/11/blob2.png 742w, https://www.smalsresearch.be/wp-content/uploads/2014/11/blob2-300x184.png 300w" sizes="auto, (max-width: 742px) 100vw, 742px" /></a></p>
<p>Wat we bovendien ook nog zien, is een soort van deformatie; een bochel op de blob, als het ware. Deze wordt veroorzaakt door de recente evolutie van de Javascript raamwerken, zoals <a href="https://angularjs.org/">AngularJS</a> en Meteor. Deze raamwerken baseren zich op de meest eenvoudige technologieën (Html, Javascript en Css), maar<img loading="lazy" decoding="async" class="alignright wp-image-7833 size-medium" src="/wp-content/uploads/2014/12/html5_javascript_js-300x175.png" alt="html5_javascript_js" width="300" height="175" /> bieden tegelijk een zeer krachtige ontwikkelaarservaring, waardoor men via weinig werk toch enorm veel resultaat kan boeken. Het zal dus niet verbazen dat steeds meer web-projecten van dit soort raamwerken gebruik maken, zeker als het gaat om het beheersen van complexiteit. En dat verklaart dus meteen de bult op de blob!</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Zal de blob in de toekomst nog op andere manieren vervormen? <a href="https://www.theguardian.com/lifeandstyle/gallery/2011/dec/04/santa-claus-around-world-pictures?index=20">De Kerstman kan het ons misschien vertellen&#8230;</a></p>
<p>Vrolijk Sinterklaasfeest  !</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.smalsresearch.be/de-frameworks-blob/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Javascript, altijd en overal?</title>
		<link>https://www.smalsresearch.be/javascript-altijd-en-overal/</link>
					<comments>https://www.smalsresearch.be/javascript-altijd-en-overal/#comments</comments>
		
		<dc:creator><![CDATA[Koen Vanderkimpen]]></dc:creator>
		<pubDate>Mon, 29 Sep 2014 12:59:44 +0000</pubDate>
				<category><![CDATA[Blog post]]></category>
		<category><![CDATA[angularjs]]></category>
		<category><![CDATA[backbone.js]]></category>
		<category><![CDATA[bootstrap.js]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[json]]></category>
		<category><![CDATA[meteor]]></category>
		<category><![CDATA[methodology]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[software engineering]]></category>
		<guid isPermaLink="false">/?p=7285</guid>

					<description><![CDATA[De opmars van Javascript de laatste jaren is onstopbaar. De taal speelt een steeds grotere rol in de browser, via webapplicaties en andere interactieve websites. Ook de webserver is ze nu aan het innemen, onder de naam Node.js. Ze wordt ook vaak in één adem genoemd met HTML 5 en CSS 3, de talen die samen het [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a href="/wp-content/uploads/2014/07/js5logo.png"><img loading="lazy" decoding="async" class="alignleft  wp-image-7394" src="/wp-content/uploads/2014/07/js5logo-300x300.png" alt="js5logo" width="146" height="146" srcset="https://www.smalsresearch.be/wp-content/uploads/2014/07/js5logo-300x300.png 300w, https://www.smalsresearch.be/wp-content/uploads/2014/07/js5logo-150x150.png 150w, https://www.smalsresearch.be/wp-content/uploads/2014/07/js5logo.png 512w" sizes="auto, (max-width: 146px) 100vw, 146px" /></a>De opmars van Javascript de laatste jaren is onstopbaar. De taal speelt een steeds grotere rol in de browser, via webapplicaties en andere interactieve websites. Ook de webserver is ze nu aan het innemen, onder de naam Node.js. Ze wordt ook vaak in één adem genoemd met HTML 5 en CSS 3, de talen die samen het nieuwe web vormen, maar zonder Javascript niet zoveel leven tonen. Een nieuwe grote groep van developers is ontstaan, die nagenoeg uitsluitend programmeren met deze drie talen.<span id="more-7285"></span></p>
<p>&nbsp;</p>
<p>Nochtans is Javascript qua programmeertaal niet meteen het neusje van de zalm&#8230; Een paar quotes:</p>
<ul>
<li>&#8220;JavaScript is a language with more than its share of bad parts.”</li>
<li>&#8220;Few classical programmers found prototypal inheritance to be acceptable, and classically inspired syntax obscures the language’s true prototypal nature. It is the worst of both worlds.”</li>
<li>“undefined and NaN are not constants. They are global variables, and you can change their values. That should not be possible, and yet it is. Don’t do it.</li>
</ul>
<p><span style="color: #181818;">(Uit: </span>Douglas Crockford, <a href="https://shop.oreilly.com/product/9780596517748.do">JavaScript: The Good Parts</a> )</p>
<p>Er zijn uiteraard ook goede delen aan Javascript (anders zou dat boek toch wel anders heten), maar al bij al zal Javascript geen schoonheidsprijzen in de wacht slepen. Het is een dynamisch getypeerde taal, met prototypische overerving, en het is erg gemakkelijk in Javascript om je programma heel onleesbaar te maken. Programmeurs die met een meer klassieke taal beginnen werken, zoals Java, en daarna pas Javascript leren, moeten typisch serieus wennen (en ontwennen)!</p>
<p><img loading="lazy" decoding="async" class="alignright wp-image-7393 size-full" src="/wp-content/uploads/2014/07/wb_piggy1.jpg" alt="PiggyBacking" width="138" height="140" />De twee talen zijn trouwens, ondanks de naam en enkele gelijkenissen (e.g. dat ze beide een C-achtige syntax hebben), niet gerelateerd (men zou kunnen zeggen: <a href="https://stackoverflow.com/questions/245062/whats-the-difference-between-javascript-and-java">Javascript en Java zijn zoals Parket en Park</a>). Javascript kreeg zijn naam indertijd van NetScape in de hoop op de toenmalige populariteit van Java te kunnen <a href="https://en.wikipedia.org/wiki/Piggybacking">piggybacken</a>.</p>
<p>Tegenwoordig zijn er ook al verschillende talen die de syntactische tekortkomingen van Javascript trachten op te vangen: het zijn talen die sterk op Javascript lijken, en er ook in worden vertaald wanneer het tijd wordt om de code uit te voeren. Voorbeelden zijn <a href="https://coffeescript.org/">CoffeeScript</a> en <a href="https://www.dartlang.org/">Dart</a>. Voorlopig zijn deze talen echter nog maar weinig in gebruik in vergelijking met het origineel.</p>
<p>Waarom is Javascript dan zo populair? Dat heeft een aantal redenen. De belangrijkste daarvan is de <a href="https://en.wikipedia.org/wiki/V8_(JavaScript_engine)">V8 engine</a>, die zijn intrede maakte in Google Chrome. Deze engine (hetgeen wat de code daadwerkelijk uitvoert) heeft de performantie van de taal naar een nieuw niveau geheven, en wordt trouwens ook gebruikt in <a href="https://nodejs.org/">node.js</a>. Daarnaast is het uiteraard zowat de enige taal die nog gebruikt wordt om code uit te voeren in de browser zelf (aan de &#8220;client side&#8221;), wat, in een goed gebouwde website, de server en het netwerk serieus kan ontlasten, terwijl er toch een mooie en interactieve site of applicatie wordt gepresenteerd.</p>
<p>Een paar positievere quotes:</p>
<ul>
<li><span style="color: #444444;">de wet van <a href="https://blog.codinghorror.com/the-principle-of-least-power/">Jeff Atwood</a>: &#8220;</span>any application that <em>can </em>be written in JavaScript, <em>will </em>eventually be written in JavaScript<span style="color: #444444;">&#8220;</span></li>
<li> “After some abandoned experiments with static compilation, we looked around and saw how successfully JIT techniques are being applied in the JavaScript space: Chrome’s V8 engine, in particular, has greatly pushed the status quo of JavaScript performance.” &#8211; anoniem</li>
</ul>
<p>Javascript viert volgend jaar al z&#8217;n twintigste verjaardag&#8230; De taal werd vrij snel populair in het begin en er werd zelfs een standaard voor geschreven. Toch keken &#8220;echte&#8221; developers een tijdlang neer op de taal. Een grote doorbraak kwam er dankzij AJAX (<a href="https://en.wikipedia.org/wiki/Ajax_(programming)">Asynchronous JavaScript and XML</a>), een technologie die toelaat om niet bij elke communicatie met de server opnieuw de volledige webpagina te moeten laden. Deze technologie heeft een beetje een evolutie gekend voorheen, maar kreeg voor het eerst haar naam in 2005. Sindsdien is de groei van Javascript als taal van het web niet meer te onderschatten.</p>
<p>AJAX op zijn beurt heeft geleid tot twee recentere ontwikkelingen die de dominantie van de taal nogmaals onderstrepen: moderne Javascript raamwerken (Frameworks) en server-side Javascript onder de vorm van Node.js.</p>
<h1>Frameworks</h1>
<p>Websites bouwen met interactieve en dynamische graphics was vroeger erg moeilijk, maar daar zijn nu Javascript raamwerken voor. Het begon vooral in 2006 met <a href="https://jquery.com/">JQuery</a>: een Javascript pakket dat het een stuk eenvoudiger maakte, en nog altijd doet, om mooie zaken op het scherm te presenteren. JQuery evolueert nog steeds, en is ondertussen geïntegreerd geraakt in tal van andere pakketten en frameworks. Niet in het minst ligt JQuery aan de basis van zowat alle recentere Javascript raamwerken die het ontwikkelingsgemak nog een stapje verder nemen.</p>
<h3>Bootstrap.js</h3>
<p>Bootstrap werd oorspronkelijk ontwikkeld door Twitter, en in 2011 open source gemaakt. Het bestaat uit een collectie aan tools voor het ondersteunen van het bouwen van websites en -apps, vooral gebaseerd op templates voor allerlei UI-elementen. De huidige versies hebben een goede ondersteuning voor responsive design en hanteren de mobile first strategie.</p>
<h3>Backbone.js</h3>
<p>Backbone bestaat al sinds 2010 als Javascript raamwerk en volgt iets dat lijkt op het model-view-controller (MVC) principe. Het ondersteunt en vereenvoudigt ook de verbinding via REST van de front-end met de backend van de te ontwikkelen site.</p>
<p>Het is vrij populair geworden en wordt momenteel zelfs in de core van Drupal 8, het populaire CMS, ingebouwd.</p>
<h3>AngularJS<a href="/wp-content/uploads/2014/07/angular.png"><img loading="lazy" decoding="async" class="alignright wp-image-7396 " src="/wp-content/uploads/2014/07/angular-300x300.png" alt="angular" width="200" height="200" srcset="https://www.smalsresearch.be/wp-content/uploads/2014/07/angular-300x300.png 300w, https://www.smalsresearch.be/wp-content/uploads/2014/07/angular-150x150.png 150w, https://www.smalsresearch.be/wp-content/uploads/2014/07/angular.png 500w" sizes="auto, (max-width: 200px) 100vw, 200px" /></a></h3>
<p>Angular is een raamwerk dat zich focust op het via Javascript uitbreiden van het html-model van een website. Zo kan je via eenvoudige, zelf gedefiniëerde extra sleutelwoorden in de html-pagina tonnen functionaliteit toevoegen zonder aan de overzichtelijkheid van het html-model te raken. Er wordt op die manier ook een heel niveau van herbruikbaarheid toegevoegd aan web-ontwikkeling.</p>
<h2>Node.js</h2>
<p>Voor de allereerste keer is Javascript niet alleen aan de client side, maar ook op de server enorm populair aan het worden. Dit komt doordat het gebruik van <a href="https://nodejs.org/">node.js</a> verschillende voordelen heeft:</p>
<ul>
<li>Efficiëntie en compatibiliteit: er moet niet langer telkens een vertaalslag worden uitgevoerd tussen de gegevens die op de server staan en degene in de browser: alles is in javascript, dus de manier waarop data wordt gerepresenteerd, is voor de client en de server hetzelfde (typisch gebeurt dit met <a style="font-style: normal;" href="https://en.wikipedia.org/wiki/JSON">json</a>). Voor de vertaalslag hoeft dus ook geen code meer te worden geschreven. Daarnaast is een node.js server ook vrij performant: één server kan zeer veel requests van clients tegelijk afhandelen.</li>
<li>Leercurve: Developers hoeven nog maar één programmeertaal te leren alvorens ze een volledige webapplicatie kunnen bouwen. Niet langer moeten ze een server-taal leren, zoals php of java, en daarnaast nog eens Javasript voor de client.</li>
</ul>
<p>Dit laatste heeft trouwens ook zijn impact op de Javascript frameworks: nu zijn er al frameworks die zich niet alleen op de client, maar op de volledige stack richten, puur in Javascript: <a href="https://www.meteor.com/">Meteor</a> is zo&#8217;n framework.</p>
<p>Zal Javascript verder <a href="https://news.dice.com/2013/05/13/javascript-is-eating-the-world-2/">de wereld veroveren</a> en misschien zelfs <a href="https://webapplog.com/php-vs-node-js/">php naar de kroon steken</a>? Dat is moeilijk te voorspellen, de wereld van web development verandert razend snel. Een Javascript framework dat vandaag populair is kan over een paar jaar al ouderwets lijken in vergelijking met nieuwere frameworks. We kunnen alleen maar besluiten dat we het door deze snelle evoluties allicht steeds makkelijker zullen hebben om goed werkende webapplicaties te ontwikkelen, en dat het gebruik van een modern Javascript framework, of eventueel zelfs van node.js, een te overwegen optie is bij quasi alle web projecten.</p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.smalsresearch.be/javascript-altijd-en-overal/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
	</channel>
</rss>
