JavaScript

De syntaxis van JavaScript vertoont overeenkomsten met de programmeertaal Java. Omdat beide talen het meest zichtbaar zijn op en rond de browser, maar vooral door de naamgeving, worden ze vaak met elkaar verward. De gelijkenis houdt daar echter op, want JavaScript heeft inhoudelijk meer gemeen met functionele programmeertalen, het biedt prototype-gebaseerde overerving en niet, zoals Java en de meeste objectgeoriënteerde talen, klasse-gebaseerde overerving.

De eerste versie van JavaScript werd in 1995 ontwikkeld door Brendan Eich van Netscape Communications Corporation voor gebruik in de Netscape Navigator. Aanvankelijk was de naam Mocha en vervolgens LiveScript. De taal werd hernoemd tot JavaScript in de tijd dat in de Netscape-browser ook ondersteuning voor Java-applets werd ingebouwd.

Met de introductie van JavaScript ontstonden de eerste mogelijkheden om webpagina's interactief te maken. Dit werd later Dynamic HTML genoemd.

Netscape heeft in een poging om JavaScript als een officiële norm erkend te krijgen en er toch zelf voldoende zeggingskracht over te behouden de taal laten goedkeuren door de European Computer Manufacturers Association (ECMA), waarbij de naam om redenen betreffende het merkrecht is gewijzigd in ECMAScript. De relevante ISO-standaard is ISO 16262 (International Organization for Standardization). De huidige versie van JavaScript is versie 2.1 (februari 2009).

Microsoft heeft een eigen implementatie van JavaScript ontwikkeld onder de naam JScript en Adobe heeft een eigen versie genaamd Actionscript die gebruikt wordt in Flash.

Tegenwoordig beleeft het gebruik van JavaScript weer een opleving, nu als onderdeel van AJAX-toepassingen.

Net als bij andere scripttalen is er een interpreter nodig om de geprogrammeerde opdrachten uit te voeren. De meeste moderne browsers beschikken over een eigen interpreter voor JavaScript. Het besturingssysteem Windows heeft een ingebouwde interpreter, het bestand jscript.dll.

Ook enkele e-mailprogramma's ondersteunen JavaScript in HTML-berichten.

JavaScript kan ook gebruikt worden voor server-side scripting. De webservers van Netscape waren de eerste die deze ondersteuning boden. Maar ook de webserver van Microsoft, IIS, ondersteunt JavaScript in Active Server Pages en ASP.NET. De laatste jaren maakt node.js een grote opgang.

Een JavaScript-framework is een library (bibliotheek) welke een aantal JavaScript-functies en widgets bevat voor het ontwikkelen van webapplicaties, waarbij vaak de nadruk ligt op AJAX.

Het Internet Mediatype of MIME voor JavaScript-code is application/javascript, hoewel het niet-officiële text/javascript vaker wordt gebruikt.

Asynchronous JavaScript and XML

Door gebruik te maken van XMLHttpRequest hoeft de webpagina niet opnieuw ververst te worden om nieuwe inhoud te krijgen. Google Suggest stelt bijvoorbeeld bij elke toetsaanslag een nieuwe reeks zoektermen voor zonder dat men de pagina hoeft te herladen. Zo'n pagina is te vergelijken met een applicatie die in de browser draait.

De technieken waaruit ajax is samengesteld bestaan al langer dan de term ajax zelf. Ajax als zodanig werd vooral goed mogelijk met de komst van het XMLHttpRequest-object (als eerste ingevoerd door Microsoft in Internet Explorer 5) en de mogelijkheid om vanuit JavaScript het HTML-DOM-model te benaderen (W3C-aanbeveling van 1998).

Het principe dat een pagina niet ververst hoeft te worden is al ouder. Dit kon bijvoorbeeld al met behulp van een hidden frame.

Diverse bedrijven hebben een toolkit ontwikkeld om het maken van ajax-applicaties te vereenvoudigen. Bijvoorbeeld Microsoft heeft "ASP.NET AJAX" (Codenaam Atlas) ontwikkeld dat als plugin voor Visual Studio werkt, maar ook los daarvan kan worden gebruikt en Google heeft de Google Web Toolkit ontwikkeld.

Daarnaast is er een groot aantal opensource-JavaScript-frameworks en toolkits, zoals Scriptaculous, Prototype, DWR en jQuery.

Dynamische webpagina

Het samenstellen (genereren) van een webpagina gebeurt door het uitvoeren van programmacode, bijvoorbeeld een scripttaal, zoals PHP, Perl of ASP. Heel vaak maakt het programma gebruik van een relationele database, bijvoorbeeld MySQL, om van hieruit de content en de opmaak van de webpagina op te halen. De door de database aangeleverde inhoud wordt vervolgens gecombineerd met de gewenste opmaak en zo wordt de gehele pagina in een fractie van een seconde gegenereerd tot een complete HTML-pagina. Tot slot wordt de webpagina verstuurd naar de bezoeker die de pagina in zijn browser had opgevraagd.

Wikipedia is een voorbeeld van een dynamische website, die gebruikmaakt van MediaWiki, een PHP-programma. De teksten van alle artikelen staan zonder HTML-opmaak in een MySQL-database, en pas wanneer een bezoeker een bepaalde pagina opvraagt (door bijvoorbeeld op een link te klikken) wordt er door een PHP-script een webpagina samengesteld in de lay-out van Wikipedia.

Bij grote websites zoals Wikipedia is het voordeel van dynamisch samengestelde pagina's dat er op serverruimte bespaard kan worden doordat elementen die op alle pagina's aanwezig zijn (bijvoorbeeld het menu aan de linkerkant) slechts één keer opgeslagen hoeven te worden en omdat de opmaak niet in de tekst zelf is opgenomen kan op een eenvoudige manier de opmaak van de gehele encyclopedie in één keer aangepast worden, mocht daar aanleiding toe zijn.

Een ander voordeel is het gebruiksgemak van een dynamische website; omdat de teksten in de database geen HTML-codes bevatten kunnen teksten op een natuurlijke intuïtieve manier geschreven en bewerkt worden, net als in een tekstverwerker. Daardoor kunnen zelfs mensen zonder enige programmeerervaring een bijdrage leveren aan Wikipedia, een weblog bijhouden of een mailtje sturen.

PHP

Aanvankelijk stonden de letters PHP voor Personal Home Page (de volledige naam was Personal Home Page/Forms Interpreter, PHP/FI). Sinds PHP 3.0 is de betekenis een recursief acroniem geworden: PHP: Hypertext Preprocessor. Deze naam geeft aan waar de taal meestal voor gebruikt wordt: informatie verwerken tot hypertext (meestal HyperText Markup Language (HTML) en Extensible HyperText Markup Language (XHTML)).

PHP is een scripttaal en is vergelijkbaar met Perl, Python en Ruby. Qua syntaxis lijkt PHP het meest op C. In tegenstelling tot C is het in PHP (met name PHP5) mogelijk objectgeoriënteerd te programmeren, net als in bijvoorbeeld Java en C++. Net als bij veel andere scripttalen moeten variabelen voorafgegaan worden door een dollarteken ('$'). Dit in tegenstelling tot talen als C, C++ en Java. Dit is overgenomen uit de scripttaal Perl, waarvan PHP mede is afgeleid. Naast server-side scripting kan PHP ook gebruikt worden via de opdrachtregel of in grafische applicaties, bijvoorbeeld met PHP-GTK (PHP met GTK+).

PHP maakt zowel object- als functiegeoriënteerd programmeren mogelijk. Oorspronkelijk was functiegeoriënteerd programmeren het belangrijkste, maar de aandacht verschuift steeds meer naar objectgeoriënteerd programmeren.

Een server-side scripting-taal, die hoofdzakelijk wordt gebruikt om op de webserver dynamische webpagina's te creëren, is voor de gebruiker onzichtbaar. Alleen het resultaat is zichtbaar en dat ziet eruit als een gewone HTML-pagina. De voordelen van PHP zijn: het is opensourcesoftware, het is zeer populair en makkelijk te leren en er is een brede ondersteuning mogelijk op het internet.

PHP werd in 1994 ontwikkeld door Rasmus Lerdorf. De eerste publieke versie werd uitgegeven in 1995, alsook versie 2. Zeev Suraski en Andi Gutmans, twee Israëlische ontwikkelaars aan de Technion IIT, herschreven de parser in 1997 en vormden de basis voor PHP 3 en veranderde hiermee de naam in PHP: Hypertext Preprocessor. Het ontwikkelteam bracht PHP/FI 2 officieel in november 1997 uit, na maanden van beta-tests. Hierna begon de publieke test van PHP 3 en in juni 1998 werd PHP 3 officieel uitgebracht. Suraski en Gutmans begonnen hierna met het herschrijven van de PHP parser, met de Zend Engine in 1999 als resultaat. Hiermee werd Zend Technologies opgericht in Ramat Gan, Israël.

Op 22 mei 2000 werd PHP 4, aangedreven door Zend Engine 1.0, uitgebracht. Op 13 juli 2004 werd PHP 5 uitgebracht, aangedreven door de nieuwe Zend Engine II.

Ondanks dat PHP 5 al sinds 2004 beschikbaar is, gebruiken veel webservers pas sinds begin 2007 PHP5, omdat eerdere versies niet stabiel genoeg waren. De meest recente stabiele versie is 5.4.0 (1 maart 2012). In deze versie zijn er ook veel bug-fixes gedaan. De belangrijkste kenmerken van PHP 5 zijn het verbeterde objectgeoriënteerd programmeren, de hogere snelheid, de mogelijkheid om SQLite aan te spreken en de vernieuwde Extensible Markup Language (XML)-bibliotheek.

PHP wordt veel gebruikt om op webservers dynamisch webpagina's te creëren. Andere bekende server-sidescripttalen zijn Java Server Pages (JSP), Coldfusion en Active Server Pages (ASP). De code van de pagina wordt op de webserver uitgevoerd en het resultaat wordt naar de computer van de bezoeker gestuurd en in de webbrowser getoond. Dit in tegenstelling tot client-side-scripting (zoals JavaScript), waarbij de webbrowser eerst de pagina van de webserver downloadt en vervolgens zelf (op de computer van de bezoeker) code uitvoert.

Wanneer een browser een PHP-document oproept, wordt op de server eerst de in het document opgenomen PHP-code uitgevoerd. Dit gebeurt door de PHP-interpreter (de PHP-engine). Het resultaat (meestal HTML) wordt door de webserver naar de browser gestuurd. PHP kan echter ook andere documenttypen, zoals afbeeldingen of XML, genereren. PHP-documenten hebben vaak de extensie .php, maar ook de oudere extensies worden nog (weliswaar sporadisch) gebruikt.

PHP ondersteunt ook diverse extensies die (in de Windows-versie) als aparte module geleverd worden. Alle documentatie is in de PHP-handleiding te vinden. Onder andere door de gemakkelijk bereikbare documentatie (centraal op een locatie) is PHP populair geworden onder webprogrammeurs.

PHP wordt vaak gebruikt in combinatie met het besturingssysteem Linux, de Apache webserver en de MySQL databasesoftware. Een dergelijke combinatie wordt afgekort tot LAMP. Het komt ook wel eens voor dat men Windows gebruikt in plaats van Linux. WAMP is hierbij de afkorting voor systemen die Windows gebruiken en er wordt wel eens de afkorting MAMP gebruikt voor de Apple Macintosh. Ook zijn er kant en klare programma's die een volledige WAMP omgeving installeren. Voorbeelden hiervan zijn WAMP en XAMPP.

PHP is erg populair en wordt voor allerlei webapplicaties gebruikt, zoals bulletinboards/forums, contentmanagementsystemen, blogs en Wiki's. Inmiddels worden ruim 26 miljoen websites gegenereerd met behulp van PHP.

PHP wordt vaak in combinatie met een relationele database gebruikt. De meest gebruikte relationele databases voor PHP zijn MySQL en PostgreSQL. Het is ook mogelijk om andere databases te gebruiken met PHP, zoals MongoDB en mSQL.

PHP wordt vanwege het lage instapniveau gezien als een van de makkelijkste webtalen en voorziet tegelijk in grote doorgroeimogelijkheden. Zo is het met PHP ook mogelijk objectgeoriënteerd (OO, Object Oriented) te programmeren. Bij OO programmeren (OOP) maakt men klassen van waaruit weer objecten gemaakt kunnen worden. De klassen zijn als het ware een recept, een beschrijving van het object. Een bouwplattegrond van een fiets is vergelijkbaar met een klasse en de fiets zelf is vergelijkbaar met een object. In de klasse zijn de onderdelen van de fiets beschreven (properties, bijvoorbeeld wielen en trappers) en de mogelijkheden van een fiets (methods, bijvoorbeeld fietsen, remmen, bellen, licht aandoen, op slot doen). Van een klasse kunnen dus verscheidene objecten (zij het met verschillende parameters) worden gemaakt. Zo zou je met dezelfde onderdelen bijvoorbeeld ook een ligfiets of een driewieler kunnen maken. Of tien soortgelijke fietsen met allemaal een verschillende kleur.

Active Server Pages

Bij statische webpagina's is tevoren in de vorm van bestanden met de HTML code aangemaakt, en dit verandert niet meer. Er staan een aantal webpagina's, in de vorm van evenzoveel bestanden in een map, op de webserver klaar. De gebruiker krijgt altijd een van de vaste, van enige tijd tevoren gemaakte webpagina's te zien. De webserver ontvangt telkens van de gebruiker een verzoek weer een van die klaarstaande webpagina's te leveren. Bij dynamische webpagina's worden dan elke keer door de webserver een pagina 'op maat' in elkaar gezet. Een programma maakt dus een nieuw bestand met HTML code. De webserver kan dan gebruik maken van de speciale wensen in het verzoek van de gebruiker. Bijvoorbeeld: de gebruiker wil een selectie uit het assortiment van een webwinkel. Ook kan er op de website informatie aangeboden worden die pas beschikbaar komt nadat de website al klaar is. In hetzelfde voorbeeld is de programmeur al naar huis, maar de winkelier zet de nieuwste artikelen in de database. Vanaf dat moment zijn dankzij de dynamische webpagina's de nieuwe artikelen in de webwinkel voor de gebruiker, als hij die opvraagt, zichtbaar.

Een aanwijzing dat ASP gebruikt wordt door de webserver is de extensie ".asp" in de URL. PHP, ASP en dergelijke zijn de server-sidescripttalen. Naast die keuze voor bijvoorbeeld ASP of PHP kan daarom nog gekozen worden voor een specifieke programmeertaal. Meestal is dat PERL, maar bij ASP is dat in de meeste gevallen VBScript omdat dit de standaardtaal in de Microsoft-omgeving is. Verder kan er standaard gekozen worden voor JScript. ASP kan in principe alle scripttalen ondersteunen als de desbetreffende interpreter op de webserver is geïnstalleerd. Er is bijvoorbeeld ook een interpreter voor Perlscript beschikbaar via ActiveState.

ASP wordt normaliter gebruikt met Windows. Er zijn echter ook goede implementaties van ASP beschikbaar voor Unix (en verwante) platforms, waaronder Linux.

Een database op de server wordt gebruikt om op een handige manier grote hoeveelheden gegevens op de slaan. De gegevens zijn dan snel te vinden. Met een gekoppelde database kan een webserver van een forum, een weblog of een nieuwsapplicatie worden gebouwd. Als database bij een webserver is Apache gangbaar, maar bij ASP wordt vaak ook de database van Microsoft gebruikt: IIS. Voor de communicatie met de database heeft ASP standaard ADODB-componenten beschikbaar in plaats van het populaire MySQL.

Met behulp van ASP kan de webserver een session-Cookie (internet) op de pc van de gebruiker zetten. Zo'n cookie geeft de webserver veel mogelijkheden om gegevens van die bezoeker bij te houden. Een deel van de gebruikers staat niet alles toe, en regelt dat door middel van strenge of minder strenge privacyinstellingen. Als de webserver van de gebruiker cookies terug ontvangt, kunnen de gegevens daaruit door de webserver worden bewaard, bijvoorbeeld als tijdelijke sessievariabelen om te weten of een bezoeker al is ingelogd.

Het Microsoft.XMLDOM component geeft ASP de mogelijkheid om ook met XML te werken.

Het gebruik van VBScript in ASP-pagina's is heel eenvoudig. De interpreter vervangt alle code die zich tussen de <% en %> bevindt. In onderstaand voorbeeld wordt Response.Write Now() dynamisch vervangen door de huidige tijd van de server.

Voordat je JScript kunt gebruiken in ASP pagina's moet de interpreter weten dat je in JScript gaat schrijven. Dit kun je voor je hele applicatie instellen, of individueel op elke pagina. Mocht je JScript in willen stellen voor je hele applicatie, stel dan de Default ASP Language in op het App Options tabblad van de IIS snap-in.

Vanaf 2002 ontwikkelt Microsoft in plaats van ASP een opvolger daarvan: ASP.Net. ASP.NET is een taal welke gebaseerd is op ASP, maar veel meer mogelijkheden heeft. Er wordt met ASP.NET gewerkt binnen het .NET-framework. Enkele concurrenten zijn: PHP (open source), Java Server Pages (JSP), Coldfusion en Ruby on Rails.

In tegenstelling tot de populaire LAMP combinatie van open source programma's moet voor het gebruik van ASP worden betaald.

Voor het publiceren van een website wordt de combinatie van vier gratis open source programma's bekend als LAMP al lange tijd het meest gebruikt.[1] PHP heeft in LAMP de functie die ASP heeft in het alternatief van Microsoft (ASP in combinatie met Windows en IIS). De discussie PHP versus ASP(.NET) woedt al jaren.