Grado de Multimedia – UOC Universitat Oberta de Catalunya
Laboratorio de programacion creativa Grado de Multimedia – UOC

Dosier — IDEs

Joan Soler-Adillon

IDEs

Introduccion: Qué son?

El acrónimo IDE significa ‘Integrated Development Environment’, es decir: Entorno Integrado de Desarrollo. Se trata de programas que nos facilitan el uso de lenguajes de programación, yendo más allá de que los editores de código fuente revisados ​​en un post anterior [enlace]. En general, incluyen el editor de texto pero añaden un compilador y un ‘debugger’ (sistema de depuración de errores), entre otras características. De hecho, actualmente la línea que separa los IDEs de los editores de código puede ser muy fina, debido a las funcionalidades que se van añadiendo los últimos. Por ejemplo, Brackets, que aparece en todas las listas de editores de código (incluido nuestro podio del post anteriormente mencionado) y es presentado como tal en su propia web, tiene suficiente funcionalidades para ser considerado un IDE, y aparece también en las listas de los mismos.

Sea como fuere, en principio el IDE es un entorno más complejo y más potente que los editores de código, al tiempo suele ser más enfocado a un trabajo concreto en ciertos contextos o lenguajes. Por lo tanto, vuelve a ser cuestión de preferencias personales y tipo de trabajo que se hace. Generalmente, un editor servirá para trabajo con un abanico más amplio, y el IDE para ir más de cara a barraca con un lenguaje determinado.

 

Recursos

Como siempre en este tipo de cosas, la mejor manera de empezar a buscar posibles IDE con los que trabajar es hacer una búsqueda, a partir de las cuales aparecerán las inevitables listas de los X mejores, en general o para algún entorno o programa en concreto .

Hay algunos IDE que son especialmente populares entre la comunidad de creadores con código (Processing como número 1), y junto con estos, hay muchas otras herramientas generalistas, de las que escogeremos dos para completar el podio como en el post sobre editores de código: Eclipse y Visual Studio. Estos son los entornos que revisaremos en este post, esperando que el análisis de tres IDEs conforme una imagen bastante amplia de las posibilidades existentes, a partir de la cual os podréis hacer una idea de cuál es la mejor opción en su caso. Porque, de hecho, a excepción de las particularidades de Processing, todos los IDEs comparten características y acaban diferenciando, a veces, por el detalle o la idoneidad para un proyecto en particular. El motivo de elegir un número pequeño vuelve a ser el mismo que con el post de análisis de los editores de código: Como de listas largas en encontrará un montón, optamos por hacer una selección pequeño y dedicar un poco más de espacio analizar los IDEs elegidos. Si desea otros, IntelliJ IDEA, QtCreator, CodeBlocks… ¡y a mirar listas!

Dicho esto, os hacemos una pequeña selección de estas listas por los que desea aumentar opciones:

 

El podio

A partir de aquí, nos centramos en nuestra elección del podio, que como hemos dicho está hecha pensando tanto en nuestro contexto: Programación creativa. Y vamos más sencillo y orientado a artistas en más profesional. De Processing Visual Studio pasando por Eclipse.

PROCESSING

  • Desarrollador:              The Processing Foundation
  • Licencia:                        GPL, LGPL (software lliure)
  • Precio:                            Gratuït, però es poden fer donacions al projecte per ajudar a mantenir-lo.
  • Primera versión :         2001
  • Sistemas operativos:   Mac, Linux, Windows
  • Web:                               https://processing.org/

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

Processing es un entorno y lenguaje de programación iniciado en 2001 en el Massatchussets Institute of Technology (MIT) por los entonces estudiantes Casey Reas y Ben Fry. Estaba inspirado en Design By Numbers, de su profesor y mentor John Maeda, y tenía la intención de ampliar su funcionalidad. Cabe decir que el experimento tuvo éxito sobradamente.

Se trata de una versión simplificada de Java (es un lenguaje de programación) pero también de un IDE, ya que aporta el entorno mismo donde desarrollar este lenguaje. Y sin duda una de las grandes virtudes de Processing es su simplicidad: Bajar, descomprimir … y ya podemos programar! Ni plugins, ni instalaciones complejas … nada de nada. Una maravilla si quiere ahorrar todo el trabajo extra que conllevan los IDEs que describiremos a continuación.

Processing llama sus programas ‘sketch’ (esbozo), porque inicialmente se pensó como entorno para hacer pequeños bocetos algorítmicos, para pasar después a entornos más potentes. Pero el entorno fue creciendo tanto que pronto se convirtió en una herramienta que tiene mucho más potencial que no quedarse con un generador de bocetos. Y salvo tareas muy concretas o particularmente intensas en cuanto a necesidades computacionales, puede hacer casi de todo, como se puede ver haciendo búsquedas o yendo a la sección ‘Exhibition’ de su página web.

De Processing hemos hablado ampliamente en este blog, por lo que os referimos aquí a estos posts donde podrá encontrar información sobre la última versión, o la versión JavaScript, sobre tutoriales de la mano del gran Shiffman o en castellaon, una magnífica web de para encontrar ejemplos de código online o una bibliografía.

Plugins/extensions

Las extensiones de Processing son las librerías, que se instalan vía menú con el programa mismo. Hay muchísimas, y se dividen en dos categorías principales: Core y contributed. Las primeras son un pequeño número de librerías mantenida por Processing Foundation, y que siempre están al día (e.g. las de sonido y vídeo). El resto, van al ritmo que pueden los desarrolladores, y puede ocurrir que una nueva versión de Processing en convierta unas cuantas en obsoletas, al menos durante un tiempo. Por lo tanto, siempre hay que mirar bien y probarlas antes de decidir utilizarlas en un proyecto.

Las librerías de sonido y vídeo son básicas, y se recomienda usarlas. Es importante tener en cuenta que la de sonido es muy nueva, y durante años los usuarios de Processing han utilizado Minim, por lo que encontrará muchísimos ejemplos y tutoriales online que a la hora de manejar sonido usan esta. Otra librería muy útil y bastante sencilla es la de OSC, que permite comunicar Processing con otros programas, como Max / Msp oro Pure Data, Open Frameworks, etc. Y finalmente, la librería SimpleOpenNii es un buen recurso para conectar Processing con Kinect.

Sin embargo, se recomienda ver la lista completa en la página de Processing y probar, según con que esté trabajando, las que os puedan hacer más servicio.

Pros

  • Es muy sencillo, en el buen sentido de la palabra
  • Es código puro y duro. Por lo tanto, aprendiendo Processing no se está aprendiendo un lenguaje sui generis, sino a programar de verdad, con la sintaxis de Java.
  • Hay una inmensa comunidad que le da apoyo, y no ha parado de crecer desde que se creó.
  • Dan Shiffman. Tener en Shifmann a tu equipo es como tener en Messi. Tienes media trabajo hecho. Entre otras muchas cosas, crea unos materiales didácticos insuperables.

Contres

  • Su bucle continuo, y su manera de funcionar en general, ponen un poco (o mucho) nerviosos a los programadores hardcore.
  • Es Java simplificado y, por tanto, es Java..
  • Si desea hacer gráficos muy potentes o visión por ordenador compleja, os encontraréis con sus límites.

Conclusión

Sin duda, Processing es una gran opción para aprender a programar, y para seguir programando cuando ya se ha aprendido. Si lo que le interesa es hacer código, obtener resultados, y lo que necesita hacer lo puede hacer con Processing, ¿por qué no?

Recursos externs

Encontrareis muchísimos, en parte porque es una plataforma muy utilizada en el contexto educativo. Aquí hacemos sólo una selección gourmet::

  • La página del proyecto es el primer gran recurso: Para bajar el programa, ver la documentación, encontrar ejemplos, tutoriales …
  • La página del gran Dan Shiffman. Todo, todo lo que necesita, lo hace él. Y lo hace muy bien.
  • Y si queréis algo en castellano, aquí está mi tutorial.
  • OpenProcessing: Este magnífico recurso acaba de recibir un lavado de cara y se ha actualizado, justo cuando muchos empezábamos a vernos forzados a abandonarlo. Aquí encontrará cientos de ejemplos con el código fuente. Vale la pena pasear por descubrir qué puede hacer con Processing.

 

ECLIPSE

  • Desarrollador:             Eclipse Foundation
  • Licencia:                       Eclipse Public Licence (software lliure)
  • Primera versión:         Noviembre, 2001
  • Sistemas operativos:  Mac, Linux, Windows
  • Web:                              http://www.eclipse.org/

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

 

Este IDE está pensado para trabajar con Java, y es una gran opción si desea trabajar con este lenguaje de programación, aunque también se pueden añadir otros vía plugins, como C ++, JavaScript, Python o PHP entre otros.

Eclipse es un software veterano, y como tal ha ido afinando mucho su funcionalidad. Siendo software libre, es una opción muy buena para los que desea ir más allá de los límites que impone un entorno como Processing. Os aportará todo lo que aportan los IDEs más completos: autocompletar código, acceso muy eficiente a los archivos del proyecto, facilidad para probar el código, corrección de sintaxis, etc.

Uno de sus puntos fuertes, además de una comunidad de usuarios amplia, es el gran número de plugins que tiene, por lo que su funcionalidad se puede ampliar fuertemente cuando las necesidades específicas del proyecto lo soliciten. Y seguramente el punto más débil es que está lejos de ser un entorno donde es sencillo iniciarse, y esto hace que el arranque para aquellos que usan pueda ser un poco duro.

Plugins/extensions

En la web de Eclipse, llaman ‘solutions’ en las extensiones de las que dispone la plataforma, y ​​en listan … 17661! (A la hora de redactar este texto). Y, como no, encontrará listas y listas (de los 7 mejores o los 144 (!)).

Aquí dependerá mucho de sus necesidades específicas, o del proyecto en el que os integráis, ya que uno de los dolores de cabeza que a menudo giran en torno a un proyecto con Eclipse es que todo el mundo trabaje con la misma versión del software y los mismos plugins instalados lados, para que el trabajo en equipo funcione sin problemas.

Sea como sea, tal como se puede imaginar, con tal número de plugins hay para todos los gustos. Desde cambio de aspecto de la interfaz de Eclipse, o añadir nuevos lenguajes de programación hasta los más específico que queráis.

Pros

  • Una plataforma muy versátil, con muchísimas extensiones
  • Un proyecto muy consolidado, y por tanto con un ecosistema importante alrededor

Contras

  • La curva de aprendizaje para usuarios nuevos es bastante dura
  • No tiene la interfaz de usuario más user-friendly de la historia
  • Le están saliendo competidores que dirigen estos dos problemas

Conclusión

Eclipse es un gran recurso para programar con Java (y otros lenguajes) cuando Processing se le queda pequeño, o queréis haceros con una herramienta mucho más profesional (ie mucho más usada en entornos profesionales, y que le hará quedar bien ante un programador hardcore que busca colaboradores). Es una herramienta excelente si lo que buscas es esta versatilidad, y puede dedicar el tiempo que pide para entrar a fondo. 

Recursos externos

De entre lo mucho que encontrará poniendo Eclipse en google, os hacemos una pequeña selección. Tenga cuidado con las búsquedas, pero: Como ocurre con los programas más veteranos, puede ir a parar a una explicación de cómo funcionaba una versión que ya es muy antigua comparado con el actual, así que siempre mirad fechas y versiones antes de poneros a leer a fondo.

VISUAL STUDIO

  • Dessarrollador:           Microsoft
  • Licencia:                       Freemium
  • Precio:                           Las versiones Visual Studio Community y Visual Studio Code sonido gratuitas, mientras que las Profesional y Enterprise son de pago. Los precios varían según el tipo de licencia (https://www.visualstudio.com/vs/pricing/).
  • Primera versión:         Febrero, 1997
  • Sistemas operativos:   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) es el gran veterano de los IDEs. Iniciado cuando Microsoft se estaba haciendo más fuerte, ha sido y es un programa de referencia en este campo, y se ha sabido adaptar a los tiempos (y la competencia) haciendo cosas tan poco ‘microsoft’ como versiones libres y open source o versiones para Mac y Linux.

Como todo IDE, tiene un gran número de extensiones, y una buena comunicados de usuarios, aunque al ser un software propietario no está rodeado del mismo tipo de comunidad creadora de recursos libres, sino que el peso del soporte lo lleva el empresa responsable del software. Y entre lo que ya lleva y las extensiones, os puede servir para trabajar virtualmente en cualquier lenguaje de programación.

Como se puede suponer, las versiones más completas son las de pago (e.g. Visual Studio Code es de hecho más bien un editor de código que un IDE propiamente). Sea como sea, es una buena opción para el que desea un entorno totalmente ‘pro’. En definitiva, Visual Studio define qué es un IDE, así que todo lo dicho genéricamente los IDEs se puede aplicar a este caso.

Plugins/Extensions

Visual Studio tiene, como es de esperar para un proyecto de estos dimensiones, un gran número de plugins y extensiones que pueden encontrar aquí. Como en el caso de Eclipse, los hay muchísimos y para todos los gustos, is realmente lo que se trata es de encontrar los adecuados para cada proyecto (y por la versión del IDE con la que se está trabajando).

Y también, claro de listas de ‘best’ y ‘must have en encontrará muchas (eg https://blog.rendle.io/my-essential-visual-studio-extensions/ o http://dipendrashekhawat.com/10-visual-studio-extensiones-you-must-have/) con plugins que van desde el cambio de aspecto de la interfaz en el nivel de mayor detalle de especialización, pasando por trebajo con web o conexión con GitHub.

Pros

  • Es un gran veterano, y el entorno de referencia en muchos contextos
  • Tiene alrededor un importante ecosistema de extensiones
  • Tiene Microsoft detrás, y ​​por tanto expectativas de seguir estando en primera línea
  • Hay bastantes ejemplos y versiones en castellano, si el inglés no es vuestro punto fuerte

Contras

  • Es software propietario y caro en las versiones más potentes
  • Es de Microsoft…

Conclusión

Vuelve a ser cuestión de gustos, pero a grandes rasgos, si desea ir más allá de Eclipse o desea centrarse mucho en C ++ y desarrollar apps profesionales, esta puede ser una muy buena opción.

Recursos externos

Como con Eclipse: Cuidado con las versiones y años antes de sumergirse en un tutorial! Además, al ser un entorno que permite trabajar en prácticamente todos los lenguajes, más que tutoriales por el programa en sí, lo que encontrará normalmente son tutoriales específicos para este o aquel lenguaje de programación. Y tenga en cuenta que, al ser de Microsoft y pago, no hay el mismo entusiasmo por parte de usuarios crear recursos gratuitos para hacerse con el control del programa como ocurre con los ejemplos del software libre.

Sea como fuere, para empezar a familiarizarse proponemos::

 

Comentarios finales:

Como ocurrió con el post de los editores de código, no hay una solución mágica o un IDE que se coma todos los demás. De entre los tres que hemos analizado, depende mucho de si desea trabajar en un contexto de arte y diseño (Processing), o en un entorno más profesionalizado, de programador hardcore, para entendernos. En este caso, si desea moverse en un entorno Open Source, Eclipse es su amigo. Si esto es igual y / o desea trabajar con lenguajes poco idóneos para Eclipse, Visual Studio puede ser la opción si no te importa comprar la licencia o trabajar con las versiones más básicas. Y evidentemente, hay muchas otras opciones a su alcance. Lo que interesa es saber de qué va el tema, informarse más a fondo respecto al proyecto que está pensando llevar a cabo, y hacer a elección. Happy coding!