Grau Multimèdia – UOC Universitat Oberta de Catalunya
Laboratori de programació creativa Grau Multimèdia – UOC

Dossier — IDEs

Joan Soler-Adillon

IDEs

Introducció: Què són?

L’acrònim IDE significa ‘Integrated Development Environment’, és a dir: Entorn Integrat de Desenvolupament. Es tracta de programes que ens faciliten l’ús de llenguatges de programació, tot anant més enllà que els editors de codi font revisats en un post anterior [enllaç]. En general, inclouen l’editor de text però hi afegeixen un compilador i un ‘debugger’ (sistema de depuració d’errors), entre altres característiques. De fet, actualment la línia que separa els IDEs dels editors de codi pot ser molt fina, degut a les funcionalitats que es van afegint als darrers. Per exemple, Brackets, que apareix a totes les llistes d’editors de codi (inclòs el nostre podi del post anteriorment mencionat) i és presentat com a tal a la seva pròpia web, té prou funcionalitats per ser considerat un IDE, i apareix també a les llistes d’aquests.

Sigui com sigui, en principi l’IDE és un entorn més complex i més potent que els editors de codi, i alhora acostuma a ser més enfocat a un treball concret en certs contextos o llenguatges. Per tant, torna a ser qüestió de preferències personals i tipus de feina que es fa. Generalment, un editor servirà per treball amb un ventall més ampli, i l’IDE per anar més de cara a barraca amb un llenguatge determinat.

Recursos

Com sempre en aquesta mena de coses, la millor manera de començar a buscar possibles IDE amb els que treballar és fer una cerca, a partir de les quals apareixeran les inevitables llistes dels X millors, en general o per a algun entorn o programa en concret.

Hi ha alguns IDE que són especialment populars entre la comunitat de creadors amb codi (Processing com a número 1), i juntament amb aquests, hi ha moltes altres eines generalistes, de les que n’escollirem dues per completar el podi com al post sobre editors de codi: Eclipse i Visual Studio. Aquest són els entorns que revisarem en aquest post, esperant que l’anàlisi de tres IDEs conformi una imatge prou àmplia de les possibilitats existents, a partir de la qual us podreu fer una idea de quina és la millor opció en el vostre cas. Perquè, de fet, a excepció feta de les particularitats de Processing, tots els IDEs comparteixen característiques i s’acaben diferenciant, a vegades, pel detall o la idoneïtat per a un projecte en particular. El motiu de triar-ne un nombre petit torna a ser el mateix que amb el post d’anàlisi dels editors de codi: Com que de llistes llargues en trobareu un munt, optem per fer una selecció petit i dedicar una mica més d’espai a analitzar els IDEs triats. Si en voleu d’altres, IntelliJ IDEA, QtCreator, CodeBlocks… i a mirar llistes!

Dit això, us fem una petita selecció d’aquestes llistes pels que vulgueu augmentar opcions:

 

El podi

A partir d’aquí, ens centrem en la nostra tria del podi, que com hem dit està feta pensant tant en el nostre context: Programació creativa. I anirem de més senzill i orientat a artistes a més professional. De Processing a Visual Studio passant per Eclipse.

PROCESSING

  • Desenvolupador:       The Processing Foundation
  • Llicència:                    GPL, LGPL (software lliure)
  • Preu:                           Gratuït, però es poden fer donacions al projecte per ajudar a mantenir-lo.
  • Primera versió de:    2001
  • Sistemes operatius:   Mac, Linux, Windows
  • Web:                           https://processing.org/

By Stiegenaufgang – Own work, CC0,
https://commons.wikimedia.org/w/index.php?curid=32776797

Processing és un entorn i llenguatge de programació iniciat el 2001 al Massatchussets Institute of Technology (MIT) pels llavors estudiants Casey Reas i Ben Fry. Estava inspirat en Design By Numbers, del seu professor i mentor John Maeda, i tenia la intenció d’ampliar-ne la funcionalitat. Val a dir que l’experiment va reeixir sobradament.

Es tracta d’una versió simplificada de Java (és un llenguatge de programació) però també d’un IDE, ja que aporta l’entorn mateix on desenvolupar aquest llenguatge. I sense dubte una de les grans virtuts de Processing és la seva simplicitat: Baixar, descomprimir… i ja podem programar! Ni plugins, ni instal·lacions complexes… res de res. Una meravella si us voleu estalviar tota la feina extra que comporten els IDEs que descriurem a continuació.

Processing anomena els seus programes ‘sketch’ (esbós), perquè inicialment es va pensar com a entorn per a fer petits esbossos algorítmics, per passar després a entorns més potents. Però l’entorn va anar creixent tant que ben aviat es va convertir en una eina que té molt més potencial que no quedar-se amb un generador d’esbossos. I llevat de tasques molt concretes o particularment intenses pel que fa a necessitats computacionals, pot fer gairebé de tot, com es pot veure fent-ne cerques o anant a la secció ‘Exhibition’ de la seva pàgina web.

De Processing n’hem parlat abastament en aquest blog, pel que us referim aquí a aquests posts on podeu trobar-ne informació sobre la darrera versió, o la versió JavaScript, sobre tutorials de la mà del gran Shiffman o en català, una magnífica web de per trobar exemples de codi online o una bibliografia.

Plugins/extensions

Les extensions de Processing són les llibreries, que s’instal·len via menú amb el programa mateix. N’hi ha moltíssimes, i es divideixen en dues categories principales: Core i contributed. Les primeres són un petit número de llibreries mantinguda per Processing Foundation, i que sempre estan al dia (e.g. les de so i vídeo). La resta, van al ritme que poden els desenvolupadors, i pot passar que una nova versió de Processing en converteixi unes quantes en obsoletes, almenys durant un temps. Per tant, sempre cal mirar-les bé i provar-les abans de decidir fer-les servir en un projecte.

Les llibreries de so i vídeo són bàsiques, i us recomanem fer-les servir. És important tenir en compte que la de so és molt nova, i durant anys els usuaris de Processing han fet servir Minim, pel que trobareu moltíssims exemples i tutorials online que a l’hora de fer anar so fan servir aquesta. Una altra llibreria molt útil i prou senzilla és la de OSC, que permet comunicar Processing amb altres programes, com Max/Msp or Pure Data, Open Frameworks, etc. I finalment, la llibreria SimpleOpenNii és un bon recurs per connectar Processing amb Kinect.

Tot i això, us recomanem veure’n la llista completa a la pàgina de Processing i provar, segons amb què estigueu treballant, les que us pugin fer més servei.

Pros

  • És molt senzill, en el bon sentit de la paraula
  • És codi pur i dur. Per tant, aprenent Processing no s’està aprenent un llenguatge sui generis, sinó a programar de veritat, amb la sintaxi de Java.
  • Hi ha una immensa comunitat que l’hi dona suport, i no ha parat de créixer des que es va crear.
  •  En Dan Shiffman. Tenir en Shifmann al teu equip és com tenir en Messi. Tens mitja feina feta. Entre altres moltes coses, crea uns materials didàctics insuperables.

Contres

  • El seu bucle continu, i la seva manera de funcionar en general, posen una mica (o molt) nerviosos els programadors hardcore.
  • És Java simplificat i, per tant, és Java.
  • Si voleu fer gràfics molt potents o visió per ordinador complexa, us topareu amb els seus límits.

Conclusió

Sens dubte, Processing és una gran opció per aprendre a programar, i per seguir programant quan ja se n’ha après. Si el que us interessa és fer codi, obtenir resultats, i el que heu de fer ho podeu fer amb Processing, per què no?

Recursos externs

En trobareu moltíssims, en part perquè és una plataforma molt utilitzada en el context educatiu. Aquí en fem només una selecció gourmet:

  • La pàgina del projecte és el primer gran recurs: Per baixar el programa, veure’n la documentació, trobar exemples, tutorials…
  • La pàgina del gran Dan Shiffman. Tot, tot el que necessiteu, ho fa ell. I ho fa molt bé.
  • I si voleu quelcom en la nostra llengua, el meu tutorial de Processing en català.
  • OpenProcessing: Aquest magnífic recurs acaba de rebre un rentat de cara i s’ha actualitzat, just quan molts començàvem a veure’ns forçats a abandonar-lo. Aquí trobareu centenars d’exemples amb el codi font. Val molt la pena passejar-s’hi per descobrir què podeu fer amb Processing.

 

ECLIPSE

  • Desenvolupador:       Eclipse Foundation
  • Llicència:                    Eclipse Public Licence (software lliure)
  • Primera versió de:    Novembre de 2001
  • Sistemes operatius:   Mac, Linux, Windows
  • Pàgina del projecte: http://www.eclipse.org/

By Amr Eladawy – Own work, EPL,
https://commons.wikimedia.org/w/index.php?curid=41280177

 

Aquest IDE està pensat per a treballar amb Java, i és una gran opció si voleu fer feina amb aquest llenguatge de programació, tot i que també se’n poden afegir d’altres via plugins, com ara C++, JavaScript, Python o PHP entre d’altres.

Eclipse és un software veterà, i com a tal ha anat afinant molt la seva funcionalitat. Essent software lliure, és una opció molt bona pels que voleu anar més enllà dels límits que imposa un entorn com Processing. Us aportarà tot allò que aporten els IDEs més complerts: autocompletar codi, accés molt eficient als arxius del projecte, facilitat per provar el codi, correcció de sintaxi, etc.

Un dels seus punts forts, a més d’una comunitat d’usuaris àmplia, és el gran número de plugins que té, pel que la seva funcionalitat es pot ampliar fortament quan les necessitats específiques del projecte ho demanin. I segurament el punt més feble és que està lluny de ser un entorn on és senzill iniciar-se, i això fa que l’arrencada pels usuaris novells pugui ser un pèl feixuga.

Plugins/extensions

Dins la web d’Eclipse, anomenen ‘solutions’ a les extensions de les que disposa la plataforma, i en llisten… 17661! (a l’hora de redactar aquest text). I, com no, en trobareu llistes i llistes (dels 7 millors o dels 144(!).

Aquí dependrà molt de les vostres necessitats específiques, o del projecte dins el qual us integreu, ja que un dels maldecaps que sovint giren al voltant d’un projecte amb Eclipse és que tothom treballi amb la mateixa versió del software i els mateixos plugins instal·lats, per tal que el treball en equip funcioni sense problemes.

Sigui com sigui, tal com podeu imaginar, amb tal nombre de plugins n’hi ha per tots els gustos. Des de canvi d’aspecte de la interfície d’Eclipse, o afegir nous llenguatges de programació fins als més específics que vulgueu.

Pros

  • Una plataforma molt versàtil, amb moltíssimes extensions
  • Un projecte molt consolidat, i per tant amb un ecosistema important al voltant

Contres

  • La corba d’aprenentatge per usuaris novells és força dura
  • No té la interfície d’usuari més user-friendly de la història
  • Li estan sortint competidors que adrecen aquests dos problemes

Conclusió

Eclipse és un gran recurs per programar amb Java (i altres llenguatges) quan Processing se us queda petit, o voleu fer-vos amb una eina molt més professional (i.e. molt més usada en entorns professionals, i que us farà quedar bé davant un programador hardcore que busca col·laboradors). És una eina excel·lent si el que busqueu és aquesta versatilitat, i podeu dedicar el temps que demana per entrar-hi a fons. 

Recursos externs

D’entre el molt que trobareu posant Eclipse a google, us fem una petita tria. Aneu amb compte amb les cerques, però: Com passa amb els programes més veterans, podeu anar a petar a una explicació de com funcionava una versió que ja és molt antiga comparat amb l’actual, així que sempre mireu dates i versions abans de posar-vos a llegir a fons!

VISUAL STUDIO

  • Desenvolupador:       Microsoft
  • Llicència:                    Freemium
  • Preu:                           Le versions Visual Studio Community i Visual Studio Code so gratuïtes, mentre que les Professional i Enterprise son de pagament. Els preus varien segons el tipus de llicència (https://www.visualstudio.com/vs/pricing/).
  • Primera versió de:    Febrer, 1997
  • Sistemes operatius:   Windows; i també Mac i Linux per la versió Code.
  • Web:                           https://www.visualstudio.com/

By Source (WP:NFCC#4), Fair use,
https://en.wikipedia.org/w/index.php?curid=44331177

Visual Studio (AKA Microsof Visual Studio) és el gran veterà dels IDEs. Iniciat quan Microsoft s’estava fent més fort, ha estat i és un programa de referència en aquest camp, i s’ha sabut adaptar als temps (i a la competència) fent coses tan poc ‘microsoft’ com versions lliures i open source o versions per Mac i Linux.

Com tot IDE, té un gran número d’extensions, i una bona comunicata d’usuaris, tot i que al ser un software propietari no està envoltat del mateix tipus de comunitat creadora de recursos lliures, sinó que el pes del suport el porta l’empresa responsable del software. I entre el que ja porta i les extensions, us pot servir per treballar virtualment en qualsevol llenguatge de programació.

Com us podeu suposar, les versions més completes són les de pagament (e.g. Visual Studio Code és de fet més aviat un editor de codi que un IDE pròpiament). Sigui com sigui, és una bona opció pel que voleu un entorn totalment ‘pro’. En definitiva, Visual Studio defineix què és un IDE, així que tot el que hem dit genèricament dels IDEs es pot aplicar a aquest cas.

Plugins/Extensions

Visual Studio té, com és d’esperar per un projecte d’aquetes dimensions, un gran nombre de plugins i extensions que podeu trobar aquí. Com en el cas d’Eclipse, n’hi han moltíssims i per tots els gustos, is realment del que es tracta és de trobar els adients per a cada projecte (i per la versió de l’IDE amb la que s’està treballant).

I també, és clar de llistes de ‘best’ i ‘must have en trobareu moltes (e.g. https://blog.rendle.io/my-essential-visual-studio-extensions/ o http://dipendrashekhawat.com/10-visual-studio-extensions-you-must-have/) amb plugins que van des del canvi d’aspecte de la interfície al nivell de més gran detall d’especialització, passant per treball amb web o connexió amb GitHub.

Pros

  • És un gran veterà, i l’entorn de referència en molts contextos
  • Té un molt important ecosistema d’extensions al voltant
  • Té Microsoft darrera, i per tant expectatives de seguir estant a primera línia.
  • Hi ha força exemples i versions en castellà, si el vostre anglès no és molt fort

Contres

  • És software propietari i car en les versions més potents
  • És de Microsoft, si podem fer servir això com a contra…

Conclusió

Torna a ser qüestió de gustos, però a grans trets, si voleu anar més enllà d’Eclipse o voleu centrar-vos molt en C++ i desenvolupar apps professionals, aquesta pot ser una molt bona opció.

Recursos externs

Com amb Eclipse: Compte amb les versions i anys abans de submergir-vos en un tutorial! A més, al ser un entorn que permet treballar en pràcticament tots els llenguatges, més que tutorials pel programa en sí, el que trobareu normalment són tutorials específics per aquest o aquell llenguatge de programació. I tingueu en compte que, al ser de Microsoft i pagament, no hi ha el mateix entusiasme per part d’usuaris a crear recursos gratuïts per fer-se amb el control del programa com passa amb els exemples del software lliure.

Sigui com sigui, per començar a familiaritzar-s’hi proposem:

 

Comentaris finals:

Com va passar amb el post dels editors de codi, no hi ha una solució màgica o un IDE que es mengi tots els altres. D’entre els tres que hem analitzat, depèn molt de si voleu treballar en un context d’art i disseny (Processing), o en un entorn més professionalitzat, de programador hardcore, per entendre’ns. En aquest cas, si voleu moure-us en un entorn open source, Eclipse és el vostre amic. Si això us és igual i/o voleu treballar amb llenguatges poc idonis per Eclipse, Visual Studio pot ser la opció si no us importa comprar-ne la llicència o treballar amb les versions més bàsiques. I evidentment, hi ha moltes altres opcions a l’abast. El que interessa és saber de què va el tema, informar-se més a fons respecte el projecte que esteu pensant dur a terme, i fer al tria. Happy coding!