dimecres, 10 de setembre del 2014

Evolució de la programació

La idea de la selecció natural de Darwin és, sens dubte, una de les idees més importants de la història de la ciència.Potent com és,  explica gran part de les complexitats intrínseques a la biologia de manera que molts es pregunten si el mateix, alguna idea podria ser utilitzat per explicar el canvi cultural.
 Hi ha centenars de llenguatges de programació, però no són només mecanismes separats per més del mateix - cada idioma deixa una empremta en l'evolució tecnològica i ara els científics han après com fer el seguiment que cap avall.
El mateix Darwin es va interessar per la relació entre el canvi natural i  el que ha provocat per ell mateix. Tot i que moltes idees de la biologia evolutiva s'han aplicat en l'estudi dels canvis culturals, encara hi ha molt debat sobre si els fenòmens naturals i culturals evolucionen de manera similar.
Una de les raons per les quals el debat persisteix és que no és fàcil de comparar i dir definitivament on i com els dos difereixen, perquè l'evolució cultural i la innovació tecnològica no s'han modelat tan extensament com el canvi biològic. Això es deu principalment a que els fenòmens culturals no tenen un "genoma" que serveixi com una mesura de canvi, amb l'excepció del llenguatge natural perquè els investigadors en lingüística formal han ideat més de diverses mètriques que representen la gramatical, la fonètica, l'ortogràfica i canvis semàntics.
Altres fenòmens culturals, com la innovació tecnològica, són molt més difícils de quantificar i mesurar adequadament.
És per això que Sergi Valverde i Ricard Solé de l'Institut de Santa Fe, han construït un model evolutiu basat en grafs de llenguatges de programació. L'objectiu era formular una teoria general de la innovació tecnològica és a dir, per respondre a preguntes com "què impulsa el progrés tecnològic", "per què no s'adapten algunes idees i altres moren ràpidament", etc, l'evolució dels llenguatges de programació és un bon indicador de la dinàmica d'innovació i per tant serveix com un bon punt de partida.
Valverde i Solé van mostrejar 347 llenguatges de programació que abasta el període comprès entre 1952, és a dir, des de quan es va redactar la primera peça de codi, fins al 2010. Algunes d'aquestes llengües encara existeixen avui en dia, molts d'ells van morir, i el model podria donar algunes pistes sobre les raons.
El model en si, es basa en una idea simple: les llengües s'influeixen entre si; la tasca era localitzar les influències, a partir dels primers als últims llenguatges de programació, i d'alguna manera el mesurament de la influència global que se li pugui atribuir a cada un d'ells. La influència es mesura d'acord a la interrelació dels dos idiomes posteriors influenciats així com aquells que van venir abans. Una idea simple, però els resultats semblen ser sensibles almenys en termes del que ja se sap sobre els llenguatges de programació.
En primer lloc, idiomes representats  com a subgraphs d'acord al seu llinatge d'influència. El subgrup més gran està format per 197 comandes de procediment. El seu llinatge s'inicia des Speedcoding que és, la llengua més antiga a la base de dades i un avantpassat directe de Fortran, un llenguatge que encara s'utilitza avui en dia en la computació científica.
El següent subgraf , que es major, es compon de llenguatges declaratius, els orígens estan associats amb el llançament de la intel·ligència artificial en els anys 50. La diferència entre els dos és que les llengües de procediment són més adequats per a l'enginyeria  de manera que, es lliguen més a prop dels detalls específics del maquinari utilitzat. Mentre que els llenguatges declaratius, el llinatge estrelles amb IPL i es treu amb Lisp de manera quepermeten als programadors escriure codi en termes del domini científic, sense tenir en compte com  treballa a l'interior la pròpia màquina.
Alguns historiadors de la ciència associada a la programació de procediment amb la idea d'una màquina de Turing, va establir les bases d'un ordinador digital, i la programació declarativa amb el càlcul lambda, un formalisme de funcions computables  de fet, tots dos dels quals arriben al mateix propòsit de definir el que és computable, però difereixen en els nivells d'abstracció conceptual.
La majoria dels llenguatges de programació moderns són una barreja dels dos paradigmes. En algun moment dels anys 80 una altre barreja va permetre crear un nou llenguatge que està orientat a objectes que pren el millor dels dos mons - i gràcies a això, tenim Python, Perl, Java, C i altres llenguatges de programació principals.
Però a més des de  l'agrupació adequatelly modelar, s'expliquen fàcilment  llenguatges de programació, el model de Valverde i de Solé ofereix algunes idees noves també. Una observació important és que els les puntes d'influència van clarament de ser declaratius a llenguatges imperatius, però no a l'inrevés. En altres paraules, el model suggereix que els llenguatges de programació  que estan influenciats en gran mesura de Fortran, no estaven clarament afectats per aquest últim per  si mateixos.
D'altra banda, alguns dels llinatges van des de la primera dècada de la codificació fins a l'actualitat. Això suggereix que algunes de les primeres idees en computació no eren embrions inútils sinó innovacions que estaven per davant del seu temps.
Però el veritable mèrit del model de Valverde i de Solé és que la simple idea d'arbres influència, es pot estendre a molts altres interessos de la innovació tecnològica i cultural de manera que, els llenguatges de programació, només serveixen com a exemple d'un canvi molt dinàmic en el camp de les idees.
 

Cap comentari:

Publica un comentari a l'entrada

Aquest és un blog amb moderador dels comentaris. Per tant, no apareixen immediatament