El código, los símbolos e instrucciones que dictan cómo se va a comportar una máquina al ejecutar un programa, puede ser un dolor de cabeza para cualquiera que no tenga conocimientos y se enfrente a un fragmento cualquiera. Puede serlo hasta para los programadores experimentados.
Preparar el código de forma correcta para ejecutarlo en un entorno seguro requiere de un ritual propio. Los sistemas operativos ya cuentan con editores de texto preinstalados, pero sus capacidades son muy limitadas. Es importante tener claro que elegir un editor adecuado es crucial a la hora de programar, así como que no todos son aconsejables para todos los niveles.
Aún así, el mundo de los editores de texto es una enorme jungla. Algunos cuentan con interfaces gráficas elaboradas, que resultan más intuitivas y que permiten trabajar en grandes proyectos (aquí entrarían los grandes entornos de desarrollo integrado o IDEs). Por otra parte hay otros que son minimalistas y básicos en su concepción, que recompensarán a aquellos que tengan la paciencia de vérselas con una curva de aprendizaje elevada.
Algunos de estos editores están dirigidos a plataformas y lenguajes específicos, mientras que otros tienen un propósito más general cuyas funcionalidades se pueden ampliar mediante plugins que aumentan su capacidad de trabajo.
Ahora supongamos que estás empezando a programar y que te hallas en el punto de tenerte que decidir por un editor. Probablemente ya te hayan recomendado alguno pero, por si decides explorar por tu cuenta, vamos a darte una serie de diferencias entre editores e IDEs que esperamos te ayuden a tener una idea más clara de qué puede ajustarse mejor a tus necesidades.
Editores de código fuente
En esta categoría entrarían programas como Atom o Sublime Text. Atom es gratuito y teóricamente Sublime Text cuesta dinero, si bien puedes mantener la versión de evaluación ad infinitum.
Cuando abres Atom o Sublime Text por primera vez te da la impresión de estar ante una especie de bloc de notas sofisticado. Es cuando empiezas a trabajar con ellos te das cuenta de que sus funcionalidades van mucho más allá.
Para empezar, los dos vienen equipados de serie con resaltado de sintaxis para prácticamente cualquier lenguaje de programación con el que se pueda trabajar. Esto puede parecer algo trivial cuando estás empezando, pero una vez que conoces bien un lenguaje y tienes claro cómo debería ser el código escrito para él, es fundamental para que el código se pueda leer e interpretar en un golpe de vista (y más cuando alguien no ha tenido la cortesía de comentarlo, volvemos a ello).
Tanto Atom como Sublime Text cuentan con un ecosistema de paquetes para extender sus capacidades. Ambos cuentan con un amplio panorama, ofreciendo soluciones que van desde mejorar el procesado de textos a plantillas HTML, integración con GitHub, herramientas de control de calidad del código y mucho más.
Son recomendables si ya se tiene algo de experiencia trabajando con un lenguaje concreto, ya que para terminar de afinar sus habilidades será necesario instalar algún paquete (por ejemplo uno para la ejecución de código y un depurador, aunque de esto hablaremos luego). Por tanto, hay que tener más o menos claro lo que se está buscando.
Entornos de desarrollo integrado o IDEs
Los IDE suelen ser la primera experiencia con editores dedicados de la mayoría de programadores. Se recomiendan siempre en todos los cursos de desarrollo de aplicaciones (recomiendo Eclipse) o de páginas web, y casi siempre por el mismo motivo: son muy poderosos y concentran todo lo necesario para ejecutar un programa que el usuario escriba en su interfaz. También cuentan con resaltado de sintaxis por defecto.
Como ya hemos dicho, un IDE es una herramienta muy poderosa. La diferencia fundamental con los editores de texto como Atom es que su potencia puede abrumar al usuario. Muchos ofrecen extensiones para nuevos lenguajes de programación y frameworks que crean nuevos IDEs dentro de un IDE.
Por otra parte, para quienes se inician en el mundo de la programación suelen ser la mejor manera de empezar a escribir y ejecutar código. Ya no sólo por el resaltado de sintaxis, sino porque cuentan también con correctores de sentencias que detectan palabras mal escritas y con depuradores que señalan los errores en el código (que se presentan aunque la sintaxis de la instrucción sea correcta).
De hecho la depuración resulta esencial al tratar con programas largos y complejos. Gracias a esta característica se puede ver el código en acción mientras se ejecuta, lo que permite tomar medidas mucho más precisas sobre los errores en lugar de estar mirando a un montón de líneas en una pantalla esperando a que la solución se presente por arte de magia.
Hay muchísimos IDEs donde elegir para distintos lenguajes de programación, con capacidades y funcionalidades muy dispares. Personalmente recomiendo a quienes estén empezando a programar que, al menos al principio, se fíen de las recomendaciones que les hagan. Cuando ya lleven un tiempo dedicándose a ello, entonces vale la pena explorar.
Editores de texto puros y duros
El Bloc de Notas de Windows, el Gedit de Linux o el TextEditor de Mac tienen sus limitaciones. Con los programas de los que vamos a hablar ahora todas sus capacidades se multiplican por millones, pero también vale la pena comentar que son sólo para los más experimentados, para los que llevan toda una vida trabajando con ellos o para los más geeks.
Nos referimos a bestias como Vim o Emacs. Vale la pena diseccionarlos un poquito, especialmente para aquellos que no se las hayan tenido que ver nunca con una de estas dos creaciones históricas.
Empecemos por el principio. Vim es muy complicado de describir. También es muy complicado de usar. A simple vista parece un editor de texto en su mínima expresión, de esos que nos retrotraen a los tiempos en los que el ratón era una cosa que se usaba para hacerle compañía al teclado y que los menús eran algo que le pasaba a otra gente.
Como los menús no están en el menú (valga la redundancia) de Vim, se funciona con el a base de comandos de texto. Todos ellos se encuentran detallados con profusión en la Vim Cheat Sheet, pero vale la pena comentar unos cuantos:
:w se usa para guardar el trabajo.
:q! sirve para salir del programa
y se utiliza para copiar fragmentos de texto
p sirve para pegar lo copiado
Y eso es sólo el principio.
En cuanto a Emacs, se trata de un proyecto desarrollado por Richard Stallman durante los años 70 del siglo pasado en el MIT que se ha seguido continuando hasta el día de hoy. Es el competidor natural de Vim y también desprecia la interfaz en favor de comandos, que se pueden consultar en la Emacs Reference Card. Algunos ejemplos:
C-x C-f abre un archivo.
M-DEL borra una palabra.
M-w copia una región marcada.
C-y sirve para pegar lo copiado.
Visto desde fuera, tanto Vim como Emacs resultan intimidatorios para los usuarios que no están acostumbrados a ellos. Sin embargo, hay muchísimo potencial en ellos que permite escribir en una gran cantidad de lenguajes de programación y a gran velocidad.
Para esto tenemos explicación. Cualquier programa con una interfaz gráfica requiere que se interactúe con él en una combinación de pulsaciones en el teclado y movimientos del ratón. Hay elementos que piden que saquemos las manos del teclado y tengamos que coger el ratón, lo que resulta poco eficiente. Con Emacs y Vim se puede escribir sin soltar el teclado y conseguir un flujo de trabajo muy eficiente.
Por lo demás, se trata de editores muy personalizables que nos permiten elegir entre distintos resaltados de fuentes, colores del texto y demás, si bien es necesario tocar los archivos de configuración a mano.
Conclusiones
¿Con qué debes empezar a programar? Personalmente creo que un IDE puede ser lo mejor. Después siempre se puede dar el salto a los editores enriquecidos como Atom o Sublime Text.
Comments