Node JS, de toekomst voor het web?

De meeste webshops worden in de programmeertaal PHP ontwikkeld, maar sinds 2011 wordt ook Node JS regelmatig gebruikt voor webontwikkeling. Deze programmeertaal is in het leven gebracht door Google. De bedoeling van Google was om een snelle internetbrowser te ontwikkelen; Google Chrome. Als je nu deze website bezoekt via Chrome, dan maak je dus ook gebruik van een applicatie die gebaseerd is op Node JS.

Node JS kan je ook voor het ontwikkelen van websites gebruiken, dit resulteert in high performance websites. Onderstaand leg ik je uit wat de voordelen zijn van node JS, en waarom het sneller is dan de traditionele talen die nu gebruikt worden. Daarnaast geef ik wat redenen waarom je je volgende concept eventueel in Node JS kan laten ontwikkelen.

Wat is Node JS?

Zoals gezegd, Node JS is een programmeertaal die gebruikt wordt voor Google Chrome. Deze taal maakt gebruik van de V8 Engine. Je moet hier niet denken aan een 8 cilinder motor, maar dit is puur de naam die Google aan hun programmeertaal heeft gegeven. Je hoeft hierover verder weinig te weten, behalve dat de V8 Engine supersnel is.

Het is mogelijk om deze V8 Engine op een webserver te installeren, waarmee je web applicaties kunt maken die sneller processen kunnen afhandelen dan de traditionele programmeertalen. Op deze V8 Engine is het alleen mogelijk om Node JS te draaien.

Meerdere taken tegelijkertijd

Node JS kan meerdere taken tegelijkertijd uitvoeren, een traditionele programmeertaal kan dit niet. In vakjargon noemen we dit synchroon of asynchroon programmeren. Een voorbeeld:

Traditionele programmeertaal

Stel je wilt op de A4 van Leiden naar Amsterdam rijden rond het spitsuur en je hebt maar 1 rijstrook. Dat is niet fijn, het zal heel lang duren om in Amsterdam te komen. Maar wat nou als er een ongeluk gebeurd op die rijstrook? Al het verkeer loopt vast omdat je moet wachten tot de hulpdiensten komen. Uiteraard zijn er binnen de traditionele programmeertalen andere mogelijkheden om dit op te lossen, je kunt bijvoorbeeld 1 vluchtstrook openzetten.  

Node JS

Wat nou als de A4 van Leiden naar Amsterdam 128 rijbanen zou hebben? Dan zou er nooit een file ontstaan, en ben je binnen vijftien minuten in Amsterdam. Dat is Node JS; deze programmeertaal stelt je in staat om meerdere taken tegelijkertijd uit te voeren. Dit wordt in vakjargon ook wel ‘non blocking’ genoemd, oftewel er staat geen file als er op rijbaan 33 een ongeluk gebeurd.  Het verkeer kan via de andere 127 rijbanen doorrijden.

1

Hierboven zie je een figuur hoe vaak er een aanvraag is gedaan naar bijvoorbeeld Node JS. Zoals je ziet kan hij 3614 aanvragen per seconden afhandelen. Node JS is veel sneller dan de andere talen.

Nadelen van Node JS

De meeste softwarepakketten zijn geschreven in de programmeertaal PHP. Dus softwarepakketten zoals Magento, WordPress, Opencart etcetera zijn allemaal niet te gebruiken. Dit komt omdat deze pakketten een andere taal gebruiken. Wellicht zal jij je afvragen, waarom maakt men deze pakketten dan niet in Node JS?

Deze pakketten zijn allemaal geschreven voordat node JS bestond. Node JS is een nieuwe techniek en heeft nog niet het label “Stabiel”. De traditionele programmeertalen; zoals bijvoorbeeld PHP bestaan al 24 jaar, terwijl node JS nu pas een hype begint te worden. Maar de techniek groeit snel door, en zeer snel zal Node JS volwassen worden.

Node JS gebruiken binnen jouw organisatie?

Nu je weet wat Node JS is, zal ik hier uitleggen hoe je deze taal binnen jouw situatie kunt gebruiken.

  1. Software die veel rekenkracht vraagt

Als je bijvoorbeeld veel data moet verwerken, en dit nog moet berekenen is Node JS de ideale oplossing. Wanneer je een zwaar proces uitvoert op een webbrowser merk je dat de pagina meestal lang moet laden. Met Node JS heb je dit probleem niet en ziet de eindgebruiker direct een status.

  1. Realtime websites

Node JS is ideaal voor realtime websites. Denk bijvoorbeeld aan het ontwikkelen van een chat applicatie o.i.d. Wij hebben bijvoorbeeld een veilingsite ontwikkeld wat real-time biedingen moet tonen op de website. Dit hebben wij middels Node JS gerealiseerd.

  1. Snelle API’s ontwikkelen

Een API is een manier om data beschikbaar te maken voor een externe partij. Met Node JS kun je snelle API’s ontwikkelen. Dit komt omdat er meerdere aanvragen tegelijkertijd afgehandeld kunnen worden. Als je dit met een traditionele programmeertaal doet zal de performance wat minder zijn tegenover Node JS.

  1. Bouwen van scrapers 

Met Node JS kun je scrapers bouwen die content van andere websites haalt. Dit kan uiteraard ook met andere programmeertalen, maar omdat Node JS meerdere taken tegelijkertijd kan afhandelen wordt deze data zeer snel opgehaald.

Conclusie

Ik hoop dat je wat meer weet over deze nieuwe techniek. Als je nu een nieuw concept wilt lanceren overweeg dan eens om Node JS te gebruiken. Node JS kan namelijk veel processen tegelijkertijd afhandelen en je kunt makkelijk real-time applicaties ontwikkelen. Ik weet zeker dat Node JS de nieuwe populaire taal zal worden. Veel componenten kunnen namelijk snel ontwikkeld worden. De tijd zal het leren.

4 Reacties

Op wat voor server zijn de performance tests gedaan? Zo te zien is in die test overigens alleen PHP 5.6 gebruikt. PHP 7 is vele malen sneller en presteert in de meeste benchmarks beter van HHVM. Ik ben wel benieuwd wat Node.js met het geheugengebruik van de server doet.

Het is inderdaad een interessante ontwikkeling. Je zou verwachten dat Google als ontwikkelaar van deze taal standaard rekening zou houden met bepaalde zaken die de snelheid bevorderen. Je voorbeeldsite via de pagespeed insights geeft aan dat dit nog niet standaard in node.js is: https://developers.google.com/speed/pagespeed/insights/?url=https%3A%2F%2Fwww.cheapveilingen.nl

Of zie ik dat verkeerd?

@Daniel. De website Cheapveilingen.nl is ontwikkeld met PHP, wij hebben onze bieding engine ontwikkeld in node JS icm socket io. Ik heb dit niet in het artikel geplaatst anders wordt het te ingewikkeld. Er is ook een MVC framework voor Node JS namelijk Sails , persoonlijk vind ik dit handig om tools in te ontwikkelen. Maar om complete websites te ontwikkelen gebruik ik liever nog Laravel.

@ Ronald
Idd is PHP 7 vele male sneller dan 5.6, maar volgens mij blijft node JS stukken sneller dan PHP omdat het gebruik maakt van JIT compiler. Daarnaast heb ik even gegoogled en zag dat HHVM nog steeds beter presteert dan PHP 7. Je zou in PHP wel jobs kunnen maken, dan krijg je hetzelfde effect als node JS…

De performance is een leuke vraag… Zelf wou ik bijvoorbeeld afbeeldingen van een externe site binnenhalen, maar dit liet mijn computer crashen omdat Node JS veel verbindingen tegelijkertijd opent. Ik heb dit opgelost door Node JS synchroon te laten werken dmv de async module. Dus om op je vraag terug te komen, ja performance kan een issue zijn, maar je moet dit goed oppakken door de concepten binnen Node goed te begrijpen (asynchroon programmeren, module async, callbacks, jobs etc)

Er staan nog wel een aantal onjuistheden in dit artikel:
Node.js is geen programmeertaal, maar een JavaScript runtime gebaseerd op Google’s V8 Javascript Engine.
Verder is Google Chrome ook absoluut niet in Node.js of JavaScript geschreven, wel delen ze allebei Google’s V8 JavaScript engine.

Bovendien is Node.js single threaded, operaties worden wel asynchroon uitgevoerd, maar dus niet op verschillende threads. Iedereen zal dus wel over diezelfde rijbaan gaan, maar je wordt niet opgehouden door de auto’s die voor je rijden (non blocking i/o).

Verder zijn programmeertalen als Go en Java vaak nog veel sneller dan Node.js omdat code geschreven in die talen wordt gecompileerd naar bytecode of machine code, in plaats van dat er een interpreter gebruikt wordt zoals met PHP en Node.js.

Plaats een reactie

Uw e-mailadres wordt niet op de site getoond.

terug