Introducció
Lev Manovich va definir els nous mitjans segons cinc principis bàsics: representació digital, modularitat, automatització, variabilitat i transcodificació.
D’aquests principis la representació digital és la condició de possibilitat de tota la resta; si no haguéssim estat capaços de codificar numèricament la informació, no seria possible la revolució digital com l’entenem.
La codificació de la informació, la transformació del llenguatge natural a dades numèriques que l’ordinador pot interpretar, és la base dels llenguatges de programació. Aquests llenguatges permeten comunicar a la màquina la informació en un format que pot interpretar i programar determinades accions amb un objectiu determinat.
Els llenguatges de programació permeten reproduir les relacions que s’estableixen entre els objectes per a automatitzar processos amb un objectiu concret.
Tipus de llenguatges de programació
Un llenguatge de programació és un idioma artificial dissenyat per a expressar processos que poden ser reproduïts per màquines. Es fan servir per a crear programes que controlen el comportament físic i lògic d’una màquina i per a expressar algorismes amb precisió.
En diem llenguatge perquè està format per un conjunt de símbols, regles sintàctiques i semàntiques que en defineixen l’estructura i el significat dels elements i expressions.
Des de la creació dels primers llenguatges s’han formalitzat diferents classificacions que, a l’hora de la veritat, s’entrecreuen. Classifiquem els llenguatges de programació segons el nivell d’abstracció, segons la forma d’execució i de processar ordres, segons el paradigma de programació que usen, etc.
Una de les classificacions més útils és aquella que classifica els llenguatges segons el paradigma de programació. Tot seguit enumerarem alguns dels paradigmes més importants:
Paradigma imperatiu. Descriu la programació com a una seqüència d’instruccions o ordres que canvien l’estat d’un programa. Es basa en les ordres condicionals que permeten al programa reprendre un bloc d’ordres determinat si es compleix una condició. Aquests van ser els primers llenguatges de programació i és el paradigma en què es basa el llenguatge màquina (0 i 1). Encara hi ha molts llenguatges que usen aquests principis. Un dels inconvenients principals és la falta de flexibilitat a causa de la seqüencialitat de les instruccions. En aquest paradigma s’inclou el paradigma procedimental i és el contrari del paradigma declaratiu.
Paradigma funcional/estructurat. La programació es divideix en blocs (procediments i funcions) que es poden comunicar entre si o no. Cada funció recull un procediment tancat i es podria entendre com un petit programa en si mateix. Les funcions permeten, mitjançant la subdivisió dels processos en petites accions, l’aprofitament del codi per a altres objectius o en altres parts d’un programa.
Altres paradigmes interessants són el paradigma orientat a objectes, el paradigma lògic i el paradigma funcional.
Una altra gran classificació important és entre els llenguatges interpretats i els llenguatges compilats:
Llenguatges interpretats. La màquina només entén el llenguatge binari. Els llenguatges interpretats són aquells que per definició no estan escrits en codi binari i que requereixen un programa auxiliar (l’intèrpret) que tradueix el llenguatge per tal que la màquina el pugui processar i executar.
Exemples: BASIC, MADLAB, PHP, Perl, etc.
Llenguatges compilats. En aquests llenguatges, un programa annex anomenat compilador fa el procés de transformació a un llenguatge intel·ligible per a la màquina, abans de la finalització del programa. L’arxiu resultant es pot executar sense la necessitat de cap altre programa intermediari; és el que s’anomena arxiu executable.
Exemples: C, C++, Cobol, ADA, Pascal, etc.
Els llenguatges compilats tenen el gran avantatge que no necessiten cap suport extern per a executar-se; no obstant això, són menys flexibles, ja que cada modificació en el codi, o en les fonts del programa, implica necessàriament una recompilació del programa per a aplicar els canvis.
Els llenguatges de programació més usats
El C és un llenguatge de programació orientat a la implementació de sistemes operatius, concretament UNIX. El C és un dels llenguatges més eficients quant a codi resultant i és el llenguatge més popular per a crear programari de sistemes. És un llenguatge molt adaptable ja que treballa tant a baix nivell com a alt nivell de manera que permet un alt control sobre la màquina.
Manual de C: http://www.fismat.umich.mx/mn1/manual/
Història: http://www.faqs.org/docs/artu/c_evolution.html
El PHP és un llenguatge de programació basat en scripts en el servidor, creat originàriament per al desenvolupament de contingut dinàmic a la web. Va ser un dels primers llenguatges que es podien incorporar en un document HTML. El servidor interpreta el codi i genera la pàgina web resultant.
Informació del grup PHP: http://es2.php.net/
Manual i preguntes més freqüents de PHP: http://us.php.net/manual/en/faq.general.php
Curs en català de PHP: http://ca.programacionweb.net/cursos/curso.php?num=10
Curs de PHP: http://www.phpya.com.ar/
Recull de cursos de PHP: http://www.aulaclic.net/cursos/mostrar.php?id=25&texto=PHP&clase=c
Història del llenguatge: http://www.php.net/history
El Python és un llenguatge de programació interpretat, centrat a produir un codi net i llegible amb una sintaxi molt clara; això el fa especialment interessant per a introduir-se en el món de la programació ja que, si bé és molt senzill començar a programar amb Python, les opcions de programació avançada són també molt interessants.
És un llenguatge de programació multiparadigma: orientació a objectes, programació imperativa, etc., i també és multiplataforma. Està publicat amb una llicència oberta.
El Java és un llenguatge de programació que deriva principalment de C i C++, s’ha de compilar i es pot executar en qualsevol arquitectura gràcies a la màquina virtual Java (JVM). El Java és un llenguatge de propòsit general basat en classes i orientat a objectes. La principal virtut del codi Java és que és compilat independentment de la màquina on s’hagi d’executar, cosa que permet el que s’anomena WORA (write once, run anywhere). Actualment és un dels llenguatges més usats amb més de deu milions d’usuaris i s’usa principalment per a crear aplicacions de client-servidor en web.
Web per a desenvolupadors en Java: http://learncodethehardway.org/
Especificació del llenguatge: http://docs.oracle.com/javase/specs/
Història: http://www.cad.com.mx/historia_del_lenguaje_java.htm
Classificació de llenguatges més usats: http://blog.uchceu.es/informatica/indice-tiboe-ranking-de-lenguajes-de-programacion-mas-utilizados/
Actualment el nombre de llenguatges disponibles està en evolució constant. De mica en mica els llenguatges evolucionen i donen lloc a nous llenguatges enfocats a tasques concretes: la programació visual, la programació per a sistemes operatius mòbils, l’art, etc.
Alguns exemples més són Processing, Ruby i JavaScript.
Recursos per a aprendre a programar de manera gratuïta a la Xarxa
Avui dia hi ha molts portals dedicats a oferir de manera gratuïta cursos de programació i espais per a practicar de manera interactiva amb un servidor que verifica el codi i ens ajuda a aprendre a programar en els diferents llenguatges de programació disponible.
La majoria permeten crear un perfil personal i fer un seguiment de l’evolució i dels cursos que es fan:
CodeAcademy: http://www.codecademy.com/#!/exercises/0
Google Code University: http://code.google.com/edu/
Mozilla Developer Network: https://developer.mozilla.org/en-US/learn
Khan Academy: https://www.khanacademy.org/cs/tutorials/programming-basics
EloquentJavascript: http://eloquentjavascript.net/
LearnRuby: http://rubykoans.com/
Codeschool: http://www.codeschool.com/