# La Web 2.0 i les tecnologies que la fan possible/Llenguatges de servidor, PHP i Ruby

Com ja he explicat, l'estructura de la World Wide Web està basada en una arquitectura client-servidor. Qualsevol ordinador connectat a Internet i amb un navegador pot ser un client, que fa peticions de pàgines web, les rep dels servidors i les disposa al navegador. Una màquina servidor enlloc de necessitar un navegador per realitzar peticions necessita un programa que rebi aquestes peticions, les processi i enviï la pàgina demanada al navegador de l'ordinador client. Aquests programes s'anomenen programes servidors.
Els dos més utilitzats avui en dia són l'Apache i el Microsoft IIS. L'Apache és multiplataforma, és a dir, es pot instalar a Windows, Mac OS, GNU/Linux i altres sistemes Unix, i a més és programari de codi obert, de manera que qualsevol pot aportar millores al codi d'aquest. L'IIS, en canvi, és programari propietari i tan sols està disponible per a la plataforma Windows, la qual cosa li està fent perdre molt mercat perquè la tendència actual és migrar els servidors a GNU/Linux per la falta de seguretat que presenten els servidors Windows.
Els primers servidors HTTP, no els esmentats ara, es limitaven a enviar als ordinadors clients els documents igual com els tenien als seus discs durs. Era l'anomenada Web 1.0, concebuda com una gran biblioteca virtual. Però aviat es va tindre la necessitat de dinamitzar aquestes pàgines perquè interaccionessin amb l'usuari i va ser per això que es va començar a programar al costat del servidor amb programes CGI.
Aquests programes eren usualment escrits en C o Perl i responien a les dades que els introduïen els usuaris amb els formularis que ja havien aparegut amb la segona versió de l'HTML. Aquests programes es comunicaven amb el servidor amb un estàndard anomenat CGI, acrònim de Common Gateway Interface, i és per això que s'anomenen així. Tot i ser un gran avenç tecnològic, al poder dinamitzar les primeres pàgines web, aquests programes presentaven problemes greus de seguretat i sobrecarregaven amb excés la màquina servidor al tractar cada visita com un procés independent.
Això es solucionà amb l'entrada del Java al camp dels servidors web. Es desenvoluparen els servlets Java, objectes que permetien gestionar totes les peticions d'execució de codi del servidor web sense importar la quantitat de clients que se connectaven al mateix temps des d'un sol procés i impedien que el programa servidor pogués executar programes instal·lats al sistema operatiu de la màquina, millorant així la seguretat. Sun, l'empresa que desenvolupa Java, també va apostar pels applets que s'executaven al navegador de l'usuari, al costat del client, i que es podien comunicar amb els servlets per rebre i enviar informació. Actualment els applets Java han estat desplaçats per les animacions Flash, que costen molt menys de carregar. Tot i així, aquests primers encara són usats en algunes ocasions per realitzar aplicacions web mol complexes com poden ser jocs online en 3D.
Els servlets Java també han sigut un poc desplaçats pel llenguatge PHP i la tecnologia ASP i ara estan més destinats a projectes molt complexos als que aquests no arriben. El llenguatge PHP, que va nàixer com un conjunt d'eines que servien inicialment per dinamitzar certs aspectes de la pàgina del seu autor, ha evolucionat fins a convertir-se en la millor opció de llenguatge del costat del servidor d'avui en dia. En destaca la seua facilitat i presenta moltes diferències respecte als programes CGI (és a dir, que es comunicaven amb el programa servidor mitjançant aquest estàndard) i els servlets, la principal avantatge d'aquestes és que es pot combinar amb el llenguatge (X)HTML, donant lloc a les pàgines de servidor.
El competidor més destacat de PHP és l'ASP (Active Server Pages), una tecnologia propietària de Microsoft que permet executar al costat del servidor llenguatges com el VBScript i el JScript per també crear pàgines de servidor. El VBScript (Visual Basic Script) és una variació del llenguatge Visual Basic que pot servir tant per crear pàgines web (sota ASP), com ser executada en un entorn Windows o, fins i tot, com un llenguatge similar al JavaScript que tan sols pot ser executat per Internet Explorer. Per el que fa al JScript, ja he parlat d'ell; és la implementació propietària que fa Microsoft de l'estàndard ECMAScript i que es pot fer servir tant a aquest navegador com a un servidor amb ASP (cal especificar-ho amb un atribut HTML no estandarditzat). Tant ASP com VBScript i JScript han estat inclosos dins la nova plataforma .NET de Microsoft, i és per això que recentment han sofert alguns canvis.
Quan una d'aquestes pàgines de servidor és demanada per un ordinador client, el servidor enlloc d'enviar-li directament al navegador com passava amb la Web 1.0, l'entrega abans a un intèrpret perquè extregui les porcions de codi que no siguin (X)HTML, és a dir, que siguin del llenguatge del servidor utilitzat i executa les tasques descrites en aquest, normalment modificant les pròpies pàgines i preparant-les per a ser enviades al navegador. El client no rep el codi que s'ha executat al servidor, sinó el resultat.
També és possible generar contingut dinàmic que no sigui (X)HTML. Són moltes les extensions que s'han desenvolupat per a PHP i ASP que permeten crear i modificar arxius de naturaleses tan diferents com imatges, documents PDF o animacions vectorials Flash.
Aquest és el cas de les imatges creades dinàmicament que utilitzen molts llocs per tal de comprovar si l'usuari que està emplenant la pàgina és una persona o si és un robot. Es demana que s'ompli un camp més del formulari amb les lletres que apareixen a la imatge d'una manera distorsionada, i d'aquesta manera s'evita que programes automatitzats, que no són capaços de comprendre-les, omplin els formularis amb contingut publicitari (SPAM) o per a evitar la creació automatitzada de comptes d'usuari. Això presenta problemes per als discapacitats visuals que els imposa barreres al no poder veure aquestes imatges. Els llocs que les incorporen, però, també disposen d'una versió sonora, també difícil de trencar per als robots informàtics.
A més, els programes de servidor poden accedir al sistema de fitxers de la màquina servidor per informar a l'usuari de quins són els seus arxius i carpetes. També permeten modificar qualsevol d'aquests arxius, esborrar-los o crear-ne de nous.
Un altre ús molt important que se'ls hi ha donat ha sigut connectar-los a sistemes gestors de bases de dades per tal de seleccionar-les, treballar amb elles i enviar-les, a través del servidor, al navegador de l'ordinador client. Entre els gestors de bases de dades relacionals (RDBMS) més utilitzats en l'àmbit web, es troben el MySQL (lliure i el més utilitzat en PHP), el Oracle (sobretot utilitzat amb Java, propietari) i Microsoft SQL (propietari i molt utilitzat en ASP). També destaquen altres ofertes lliures com Firebird o PostgreSQL.
Tots els anteriors suporten, en major o menor mesura, el llenguatge de consulta SQL que permet crear, modificar i eliminar taules de la base de dades i inserir i recuperar dades de les seues files. Per tant, el seu coneixement és imprescindible per a qualsevol webmestre que vulgui manejar bases de dades des del llenguatge de servidor que utilitzi.
^ Segons Netcraft, el gener de 2008 Apache és el servidor més utilitzat de món, amb un 50,61% d'ús, seguit del IIS amb un 35,81%. URL: http://news.netcraft.com/archives/2008/01/28/january_2008_web_server_survey.html
^ Microsoft SQL utilitza una extensió propietària del SQL anomenada Transact-SQL o simplement T-SQL.

## PHP

http://es.wikipedia.org/wiki/Php
PHP (acrònim recursiu de PHP Hipertext Pre-processor) és un llenguatge de programació interpretat que normalment s'ha utilitzat per al desenvolupament de pàgines web al costat del servidor, i és, en aquest camp, el més utilitzat. Tot i així, també ha estat utilitzat més recentment per a realitzar aplicacions d'escriptori amb interfície gràfica en entorns Gnome i KDE (usuals en plataformes Unix com GNU/Linux).
El llenguatge fou creat inicialment per Rasmus Lerdorf l'any 1994 com a un conjunt de programes CGI programats en llenguatge C utilitzats per a ús personal. Va posar l'eina a disposició pública l'any 1995 i no va tardar a aparèixer una comunitat d'usuaris disposats a continuar el treball. L'any 1997 es presentà PHP/FI, la segona versió de PHP al qual se li ajuntava l'interpretador de formularis (Form Interpereter) del mateix autor.
El mateix any dos dels programadors de l'àmplia comunitat que estava aplegant el PHP, Zeev Suraski i Andi Gutmans, reescrigueren el codi de l'analitzador sintàctic del PHP, i basant-se en aquest, la tercera versió de PHP va ser presentada el 1998.
L'any 1999 els mateixos programadors anuncien PHP 4.0, la versió més extensa fins aquell moment de PHP. Aquesta incorporava un nou motor, el Zend Engine que tenia més rendiment i reconeixia nous elements sintàctics del llenguatge. El nom de Zend prové de dels noms dels dos programadors (Zeev i Andy).
La versió 5 tardà molt més en aparèixer, ja que no ho va fer fins al 2004, però les novetats que incorporava foren notables. Presentava una nova versió del motor del llenguatge, el Zend Engine 2, que presentava noves funcionalitats com un millor suport per a la programació orientada a objectes, per al MySQL, per a l'XML i per al SOAP, a més del control d'excepcions, de noves funcions, etc.
^ Els acrònims recursius són molt utilitzats en informàtica i es caracteritzen per incloure en el seu significat el mateix acrònim. En aquest cas, la P inicial de PHP fa referència a ell mateix, a PHP.

## Ruby

Ruby també és un llenguatge de programació interpretat on tots els tipus de dada són un objecte, incloses les classes, i totes les funcions són mètodes, inclòs les creades per l'usuari fora de les classes, que passen a ser mètodes de l'objecte arrel Object.
Està pensat per a la productivitat del programador i no de la màquina. És un llenguatge simple però molt poderós.
A l'exemple es pot observar com es defineixen dos Arrays (dos variables/objectes amb múltiples valors) i llavors es resten, cosa molt poc comú en els altres llenguatges de programació (tant en PHP com en JavaScript tan sols es poden restar nombres).
El llenguatge escriuria a la pàgina, per tant, el següent missatge:
El llenguatge fou creat per el programador japonès Yukihiro "Matz" Matsumoto, qui va començar a treballar en ell el 1993 i el presentà el 1995. Tot i així, no ha tingut èxit fins que va sortir el framework per a Ruby anomenat Ruby on Rails el 2005.
Ruby on Rails és un marc de treball que permet desenvolupar aplicacions web molt àgilment, aportant noves funcions al llenguatge Ruby enfocades a separar les dades, el disseny i el codi (la programació). A més, està molt ben integrat amb la llibreria Prototype de JavaScript.
^ Els frameworks o marcs de treball són llibreries escrites en un llenguatge específic que li aporta objectes i funcions al programador que li permeten construir les seues pròpies aplicacions i que el mateix llenguatge no li aporta.