{"id":401,"date":"2013-03-18T09:54:45","date_gmt":"2013-03-18T09:54:45","guid":{"rendered":"http:\/\/multimedia.uoc.edu\/blogs\/fem\/?p=401"},"modified":"2013-08-28T07:21:14","modified_gmt":"2013-08-28T07:21:14","slug":"la-programacion-en-la-web","status":"publish","type":"post","link":"http:\/\/multimedia.uoc.edu\/blogs\/fem\/la-programacion-en-la-web\/","title":{"rendered":"La programaci\u00f3 a la web"},"content":{"rendered":"<p>Fa uns anys, cap a la d\u00e8cada dels noranta, per a crear una p\u00e0gina web n\u2019hi havia prou de tenir alguns coneixements d\u2019HTML, un editor de text, un client FTP, un lloc per a allotjar la p\u00e0gina i un contingut per publicar. L\u2019HTML era senzill, no feia falta aprendre gaires coses, per\u00f2, en canvi, els resultats eren m\u00e9s aviat pobres i dif\u00edcils de mantenir. Hi havia poques opcions de fer la p\u00e0gina atractiva i encara menys de fer-la interactiva. El codi HTML es barrejava amb el contingut. El manteniment consistia a editar l\u2019arxiu HTML i tornar-lo a pujar al servidor. Sovint la interacci\u00f3 es limitava a oferir un formulari de contacte que obria el client de correu electr\u00f2nic de l\u2019ordinador per enviar un missatge. Llavors tot era nou i fant\u00e0stic i per cada millora que arribava s\u2019obria un m\u00f3n de possibilitats davant el desenvolupador.<a title=\"\" href=\"#_ftn1\">[1]<\/a> Un pas en favor de la interacci\u00f3 amb l\u2019usuari va ser aconseguir que el formulari de contacte envi\u00e9s el correu directament, sense haver d\u2019obrir cap programa de l\u2019usuari. Hi havia llocs web que oferien la possibilitat d\u2019usar un programa que s\u2019encarregava de la gesti\u00f3 d\u2019aquest correu.<\/p>\n<p>La web va anar avan\u00e7ant, HTML va ser cada vegada m\u00e9s complet i, per qu\u00e8 no s\u2019ha de dir, m\u00e9s complex, i la possibilitat de fer programes que facilitessin la interacci\u00f3 amb l\u2019usuari va ser cada vegada m\u00e9s gran. Aviat, en els formularis de contacte es van poder trobar petits programes que s\u2019encarregaven de comprovar que les dades que escrivia l\u2019usuari es corresponien amb el que se li demanava. No grans coses, per\u00f2 s\u00ed comprovar que una adre\u00e7a de correu electr\u00f2nic tenia una arrova (@), que un tel\u00e8fon nom\u00e9s contenia nombres o que un codi postal eren exactament cinc d\u00edgits.<\/p>\n<p>Avui \u00e9s estrany trobar alg\u00fa que faci les p\u00e0gines web a m\u00e0 directament, escrivint alhora codi i contingut. D\u2019una banda, els gestors de contingut ajuden a fer que tenir una p\u00e0gina web sigui ben senzill. Aix\u00ed, una persona que vulgui crear la seva pr\u00f2pia web solament ha d\u2019anar a un servei gratu\u00eft de gesti\u00f3 de continguts (com <a href=\"http:\/\/wordpress.org\">WordPress<\/a> o <a href=\"http:\/\/blogger.com\">Blogger<\/a>) i escriure-hi el que vulgui, usant un camp d\u2019un formulari que fa l\u2019efecte de ser un senzill editor de textos. D\u2019altra banda, en els grans desenvolupaments, en qu\u00e8 cal escriure una gran quantitat de l\u00ednies de codi, \u00e9s impensable fer-ho sense l\u2019ajuda d\u2019un bon editor i barrejant codi i contingut.<\/p>\n<p>Si b\u00e9 una persona que vulgui tenir la seva pr\u00f2pia p\u00e0gina web com a passatemps pot usar gestors de continguts gratu\u00efts, una empresa, per petita que sigui, no ho hauria de fer. Per poc que vulguem mantenir una imatge distintiva, hem de modificar l\u2019aparen\u00e7a de la web per adaptar-la a les nostres necessitats. I aqu\u00ed, quan volem adaptar un gestor de continguts a les nostres necessitats, \u00e9s quan comencem a necessitar uns conceptes de programaci\u00f3.<\/p>\n<p>Ens estem avan\u00e7ant, per\u00f2. Fa temps que no cal la programaci\u00f3 a la web. Fa un parell de par\u00e0grafs explic\u00e0vem que, ja fa uns quants anys, hi havia webs que oferien el servei d\u2019enviar correus electr\u00f2nics a partir d\u2019un formulari web, de manera que la web no havia d\u2019obrir cap aplicaci\u00f3 de l\u2019usuari per poder-ho fer. Aquests petits programes se solien fer en <a href=\"http:\/\/es.wikipedia.org\/wiki\/Perl\">Perl<\/a> i eren un primer pas en la creaci\u00f3 de webs m\u00e9s properes als usuaris.<\/p>\n<p>Un pas endavant va ser la incorporaci\u00f3 de <a href=\"http:\/\/es.wikipedia.org\/wiki\/Javascript\">JavaScript<\/a> als navegadors. Al principi JavaScript s\u2019usava per a validar les dades introdu\u00efdes en els formularis, tractar les galetes (<i>cookies<\/i>), obrir alguns enlla\u00e7os en una finestra \u201cretallada\u201d i poca cosa m\u00e9s, per\u00f2 despr\u00e9s de l\u2019aparici\u00f3 d\u2019AJAX, JavaScript es va convertir en una pe\u00e7a fonamental de la majoria d\u2019aplicacions web.<\/p>\n<p><a href=\"http:\/\/es.wikipedia.org\/wiki\/AJAX\">AJAX<\/a>\u00a0(<i>asynchronous JavaScript and XML<\/i>) \u00e9s una t\u00e8cnica de desenvolupament web usada per a crear aplicacions interactives. Una part de l\u2019aplicaci\u00f3 s\u2019executa en el client (el navegador) amb JavaScript i una altra part en el servidor amb diferents llenguatges de programaci\u00f3. La comunicaci\u00f3 entre el client i el servidor \u00e9s as\u00edncrona, cosa que permet baixar les dades en segon pla perqu\u00e8 el client les tingui disponibles quan les necessiti. Aix\u00ed, mentre l\u2019usuari llegeix la informaci\u00f3 que hi ha a la p\u00e0gina, les dades que necessitar\u00e0 es van baixant de manera que quan les necessiti les tingui preparades i no s\u2019hagi d\u2019esperar.<\/p>\n<p>Una gran aplicaci\u00f3 web que va usar AJAX des del principi va ser Gmail. La seva aparici\u00f3 va ser un gran salt qualitatiu quant a correu web, i l\u2019\u00fas intensiu que fa d\u2019AJAX fa que l\u2019experi\u00e8ncia de l\u2019usuari sigui molt bona. Avui dia gaireb\u00e9 totes les aplicacions web usen AJAX en major o menor grau, obtenen les dades d\u2019una base de dades que \u00e9s al servidor i les usen adequadament en el client.<\/p>\n<p>En el client, el llenguatge de programaci\u00f3 m\u00e9s usat \u00e9s JavaScript, per\u00f2 no \u00e9s l\u2019\u00fanic. <a href=\"http:\/\/www.java.com\/es\/\">Java<\/a>, <a href=\"http:\/\/es.wikipedia.org\/wiki\/ActionScript\">ActionScript<\/a> (Flash) i darrerament <a href=\"http:\/\/processing.org\/\">Processing<\/a> s\u00f3n llenguatges de programaci\u00f3 que es poden usar en el navegador. La gran difer\u00e8ncia entre JavaScript i els altres \u00e9s que JavaScript s\u2019executa directament en el navegador, mentre que els altres necessiten un connector (<i>plug-in<\/i>), que s\u2019ha de baixar a part, per a poder-se executar.<\/p>\n<p>Quant al servidor, la varietat \u00e9s molt m\u00e9s gran. PHP, Java, Ruby, ASP.NET<a title=\"\" href=\"#_ftn2\">[2]<\/a>, Perl, Python s\u00f3n alguns dels llenguatges de programaci\u00f3 que es poden usar per a crear aplicacions web. De tots plegats, segurament el m\u00e9s popular \u00e9s PHP perqu\u00e8, entre altres motius, permet incrustar codi dins de p\u00e0gines HTML, s\u2019assembla a altres llenguatges de programaci\u00f3 estructurada com C i Perl i es pot usar en la majoria dels servidors web. La import\u00e0ncia de PHP a la web es pot veure tenint en compte que llocs com Wikipedia, Facebook o WordPress usen PHP en el seu desenvolupament.<\/p>\n<p>Per acabar, tornem un moment a l\u2019empresa que vol tenir una p\u00e0gina web. Encara que pugui usar un sistema de gesti\u00f3 de continguts gratu\u00eft (com WordPress, Drupal o Joomla!), haur\u00e0 d\u2019adaptar aquest sistema a les seves necessitats i adequar les plantilles a la imatge de l\u2019empresa. Per a aquesta tasca li caldr\u00e0 disposar dels serveis, entre d\u2019altres, d\u2019un programador web que domini el llenguatge de programaci\u00f3 amb qu\u00e8 est\u00e0 fet el sistema, a m\u00e9s de JavaScript.<\/p>\n<hr align=\"left\" size=\"1\" width=\"33%\" \/>\n<p id=\"_ftn1\">[1]. A la pr\u00e0ctica, aix\u00f2 encara passa. Per exemple, cada novetat de CSS implantada en els navegadors representa una nova possibilitat per als desenvolupadors per a fer noves coses.<\/p>\n<p id=\"_ftn2\">\u001b[2] ASP.NET no \u00e9s un llenguatge de programaci\u00f3, sin\u00f3 m\u00e9s aviat un entorn de treball (<i>framework<\/i>) per a aplicacions web de Microsoft que permet escriure programes per al servidor en diversos llenguatges com Visual Basic .NET, C#, Delphi, C++ o Cobol. ASP.NET proporciona components desenvolupats per facilitar el desenvolupament d&#8217;aplicacions web.<\/p>\n<p><\/p>","protected":false},"excerpt":{"rendered":"<p>Fa uns anys, cap a la d\u00e8cada dels noranta, per a crear una p\u00e0gina web n\u2019hi havia prou de tenir alguns coneixements d\u2019HTML, un editor de text, un client FTP, un lloc per a allotjar la p\u00e0gina i un contingut per publicar. L\u2019HTML era senzill, no feia falta aprendre gaires coses, per\u00f2, en canvi, els &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/multimedia.uoc.edu\/blogs\/fem\/la-programacion-en-la-web\/\" class=\"more-link\">Continua llegint <span class=\"screen-reader-text\">\u00abLa programaci\u00f3 a la web\u00bb<\/span><\/a><\/p>\n","protected":false},"author":42,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10,11],"tags":[],"class_list":["post-401","post","type-post","status-publish","format-standard","hentry","category-fundamentals","category-technologies","entry"],"_links":{"self":[{"href":"http:\/\/multimedia.uoc.edu\/blogs\/fem\/wp-json\/wp\/v2\/posts\/401","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/multimedia.uoc.edu\/blogs\/fem\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/multimedia.uoc.edu\/blogs\/fem\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/multimedia.uoc.edu\/blogs\/fem\/wp-json\/wp\/v2\/users\/42"}],"replies":[{"embeddable":true,"href":"http:\/\/multimedia.uoc.edu\/blogs\/fem\/wp-json\/wp\/v2\/comments?post=401"}],"version-history":[{"count":5,"href":"http:\/\/multimedia.uoc.edu\/blogs\/fem\/wp-json\/wp\/v2\/posts\/401\/revisions"}],"predecessor-version":[{"id":517,"href":"http:\/\/multimedia.uoc.edu\/blogs\/fem\/wp-json\/wp\/v2\/posts\/401\/revisions\/517"}],"wp:attachment":[{"href":"http:\/\/multimedia.uoc.edu\/blogs\/fem\/wp-json\/wp\/v2\/media?parent=401"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/multimedia.uoc.edu\/blogs\/fem\/wp-json\/wp\/v2\/categories?post=401"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/multimedia.uoc.edu\/blogs\/fem\/wp-json\/wp\/v2\/tags?post=401"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}