Editores de código o IDE – ¿Qué herramienta es mejor para trabajar con Python?

El desarollo de Python como un lenguaje de programación sencillo y potente y su creciente fama entre los programadores hace que se creen más y más herramientas para poder trabajar con él. Tanto simples editores de código como entornos de desarollo integrado (IDEs) que ofrecen una gama de opciones que ahorran tiempo y facilitan el proceso de programación.

Estos medios pueden ser muy parecidos entre ellos y al final cada uno elige el que más le conviene y se adapta a sus necesidades. En este artículo veremos un resumen de las herramientas que más se utilizan para programar en Python, sus características y su uso más frecuente. Empezaremos con los entornos de desarollo (IDE) y luego veremos los editores de código aptos para Python. Seguiremos este orden:

¿Cual es la diferencia entre un editor de código y un IDE?

Un editor de código es una herramienta que permite escribir y modificar el código y puede incluir opciones como el resaltado de sintaxis, autocompletado de código y otras características adicionales para escribir en Python, pero no tienen funciones de compilación o prueba. Un IDE (Integrated Development Environment) es un entorno de desarollo integrado, que aparte del editor de código incorpora un compilador, un intérprete, un depurador, un perfilador de código, una integración de control de versiones y otras utilidades de soporte que permiten trabajar con las herramientas externas como Docker, implementaciones en la nube y otros.

Para los proyectos pequeños o para los primerizos en el mundo de la programación un simple editor de código puede ser más que suficiente, sobre todo cuando algunos por su complejidad y la posibilidad de extensiones pueden llegar a los niveles de un IDE. Para los proyectos grandes es mejor utilizar un IDE – la herramienta más compleja, que ayuda durante todo el proceso del desarollo de software. Es un asistente indispensable organizado de una manera que todas las herramientas están disponibles en una única interfaz gráfica de usuario (GUI) fácil de usar.

El objetivo de este artículo es entender, que funciones destacan a los mejores IDEs y editores de código para Python y en base a esta comparación poder elegir el que más nos conviene.

PyCharm

PyCharm es el IDE más completo para trabajar con Python, creado por JetBrains. Tiene dos versiones – una versión libre y de código abierto y la otra de pago, que tiene una gama de herramientas más amplia. Es un IDE multiplataforma – compatible con Windows, Linux y macOS.

PyCharm es muy apreciado entre los Pythonistas. Tiene muchas características que ayudan a desarollar cualquier tipo de aplicación en varios ámbitos – autocompletado de código, la ilustración de los tipos de datos, la visualización git, la gestión de paquetes (pip), la visualización y gestión de versiones del historial del código. Aunque puede parecer un poco confuso para los que están empezando en el mundo de programación, una vez acostumbrados, se ahorra mucho tiempo en la busqueda de fallos y la creación de programas de cualquier nivel.

Lo único que tenemos que tener en cuenta es que si queremos disfrutar de PyCharm de una forma más completa y utilizar las opciones como capacidad de desarollo remoto, herramientas científicas, marcos de trabajo web Python, soporte para bases de datos, SQL y algunos más, tenemos que pasar a la versión de pago. Otro punto negativo de este IDE es su alto requerimiento de la memoria, y en el caso de usar un ordenador poco potente puede resultar complicado trabajar con él.

PyCharm es muy cómodo para crear proyectos de desarollo frontend basado en Python, aplicaciones web, ciencia de datos y trabajar con los modelos de aprendizaje automático. Tiene un soporte de comunidad muy activo que le permite ser uno de los IDEs más cómodos para trabajar con Python.

Eclipse/PyDev/LiClipse

Eclipse es un IDE históricamente diseñado para Java y utiliza el plugin PyDev para funcionar com un IDE de Python y ofrecer el soporte adicional de CPython, Jython y IronPython. Se puede obtener esta extensión instalando LiClipse – un reempaquetado de Eclipse con PyDev. Son herramientas libres, de código abierto y compatibles con GNU, Linux, macOS, Windows y Solaris.

PyDev incluye las opciones de autocompletado y análisis de código, sangría inteligente, resaltado de sintaxis básico, un depurador, la integración de Django y una consola interactiva. Permite trabajar con Python casi al mismo nivel que ofrece Eclipse para el desarollo de código en Java. Para los proyectos que incluyen las partes escritas en otros lenguajes de programación como Javascript, CSS, UML este IDE tiene un soporte más avanzado en comparación con los otros.

Entre las desventajas podemos marcar la bajada de rendimiento o una inestabilidad causada por algunos plugins en el caso del desarollo de las aplicaciones demasiado grandes y con muchas extensiones. Respecto a la facilidad de uso, los usuarios con cierta experiencia en Eclipse se adaptarán bastante rápido a este IDE, pero para los que no lo conocen puede resultar un poco complicado y se requerirá de un cierto tiempo para acostumbrarse a esta herramienta de desarollo.

Spyder

Spyder (Scientific Python Development Environment) es un IDE escrito en Python y para Python, destinado a los científicos, ingeneros y analistas de datos. Es un IDE multiplataforma a través de Anaconda, compatible con Windows, macOS y Linux, libre y de código abierto bajo la licencia de MIT.

Spyder ofrece muchas opciones en su editor de código – el resaltado de sintaxis, autocompletado de código, depuración y el navegador de archivos. Se integra con muchas bibliotecas científicas como Matplotlib, Numpy, IPython, SciPy y Jupyter Notebook, lo que lo hace una herremienta ideal para trabajar con proyectos de ciencia de datos, por lo que se utiliza para procesamiento de datos, computación científica y análisis predictivo. También es posible usar este IDE como una biblioteca de widgets potentes relacionados con la consola IPython (Qt). Spyder permite ejecutar el código paso a paso, como en R, y tiene explorador de variables que es capaz de mostrar los datos dentro de un entorno de desarollo usando un diseño tabular. Esta es una de sus mayores ventajas y es especialmente útil para el análisis de datos.

Este IDE es muy cómodo para los usuarios que suelen trabajar con R. Spyder incorpora controles de calidad específicos de Python, incluye instrumentos como Pyflakes, Pylint, Rope y soporte de herramientas interactivas para la inspección de datos. La razón de no usar este IDE puede ser el proceso de configuración – se instala como un paquete de Python dentro de Anaconda. El otro punto negativo es su limitación en la integración con los sistemas como Git y Mercurial comparado con otros IDEs – no tiene mecanismos de control de versiones construidas directamente en él, lo que obliga a tenerlos instalados en el nivel de sistema ejecutándolos en la ruta del sistema. Además, Spyder no incluye las herramientas de administración de repositorios.

Jupyter Notebook

Jupyter Notebook se puede considerar como un IDE interactivo – es una aplicación web que integra el código y su salida en el mismo documento. Es libre, de código abierto y compatible con Windows, macOS y Linux. Aunque es una aplicación web, podemos usarlo sin estar conectados a Internet o a un servidor remoto – solo hace falta preinstalar y haberla ejecutado antes. Este IDE es fácil de usar en muchos lenguajes de programación, incluyendo Python.

Jupyter Notebook permite crear y compartir los documentos donde podemos ejecutar el código y ver el output al mismo tiempo, visualizar los datos, incluir explicaciones y fórmulas y mucho más. Ayuda a demostrar el trabajo que hemos hecho de una manera entendible y transparente. Ofrece la opción de la exportación de los documentos creados a formatos como HTML, PDF, Markdown o Python y compartirlos por correo electrónico, utilizando Dropbox o Github y también mediante el visor integrado de Jupyter Notebook.

Su gran ventaja es la posibilidad de preparar el código antes e ir ejecutandolo cambiando los parametros iniciales. Esto, permite ver los cambios en los gráficos y los resultados de una manera clara y rápida, lo que hace de este IDE una herramienta necesaria en el entorno educativo. Jupyter Notebook es especialmente útil en el ámbito del aprendizaje automático y ciencia de datos, también es una opción bastante cómoda si necesitas ejecutar un código simple o no muy largo. La mayor desventaja de este IDE es la ausencia de algunas funciones potentes accesibles en otros entornos de desarollo.

IDLE

IDLE es uno de los IDEs más básicos para Python, libre y de código abierto. Está escrito completamente en Python y viene preinstalado al instalar este lenguaje de programación en Windows pero requiere instalación si trabajamos en macOS o Linux.

Las características de IDLE permiten crear, modificar y ejecutar los scripts en Python. Este IDE contiene un editor de texto multi-ventana con el coloreado y resaltado de sintaxis, autocompletado de código y la sangría inteligente. Aparte, contiene el depurador integrado con puntos de interrupción continuos, vista global, espacios locales y la posibilidad de hacer búsquedas en cualquier ventana y a través de multiples archivos.

Es un simple IDE, ideal para los que empiezan su viaje con Python. Se usa en aprendizaje automático – tanto en el desarollo de los modelos como en la producción, por estar bien integrado con la mayoria de los sistemas de producción y las herramientas AWS. Es cómodo para crear unos scripts simples, como los de procesamiento de texto y la limpieza de datos.

Aunque IDLE parace tener bastantes opciones, carece de las características necesarias para los proyectos de ciencia de datos y está destinado más a las operaciones básicas que a una programación avanzada. Su depurador es relativamente simple; por otro lado no permite asociar varios archivos de código a un proyecto de desarollo y no tiene extensiones.

Visual Studio Code (VS Code)

Visual Studio Code (VS Code) es un editor de código extensible. Es un proyecto desarollado por Microsoft, libre y de código abierto bajo la licencia de MIT. Podemos añadir Python a este entorno simplemente instalando el plugin correspondiente. Es un editor de código multiplataforma – compatible con Windows, macOS y Linux.

VS Code es comparable con Atom en su funcionalidad – los dos están construidos en Electron y tienen casi las mismas ventajas y desventajas. El editor de código creado por Microsoft llega a la altura de un IDE – tiene una potente autocompletado y manejo de código (la herramienta IntelliSense, también disponible para Python), la opción para la creación de fragmentos (snippets) de código personalizados, la consola de depuración potente, las herramientas git integradas y el terminal para lanzar los comandos de servidor.

Entre las ventajas de VS Code se destacan más de 4700 extensiones y una comunidad muy activa, que permite trabajar con el programa de una manera muy eficaz. Es un editor de código ligero y tiene una interfaz muy fácil de usar. Entre los puntos negativos se encuentran las dificultades de encontrar la extensión necesaria debido a la gran cantidad de ellas y aunque muchos usuarios mencionan que es un editor de código ligero, para los ordenadores lentos no es una opción recomendable. VS Code es muy cómodo tanto para los desarolladores principiantes como para los profesionales, lo que la hace una herramienta muy competitiva entre los editores de código y los IDE para Python.

Sublime text

Sublime Text es un editor de código bastante famoso entre los programadores. Tiene un periodo de prueba, pero para seguir disfrutando de él es necesario comprar una licencia. Es multiplataforma – compatible con Linux, macOS y Windows.

Sublime Text tiene la mayoría de las características de un editor de código básico, incluyendo el resaltado de sintaxis personalizable. Entre las características apreciadas por ususarios están el marcado de código en el caso de sintaxis incorrecta, lo que permite depurarlo de una manera muy sencilla, y las sugerencias de continuación del código, que ahorran tiempo de trabajo. Sublime text es rápido, soporta diferentes paquetes y plugins y tiene muy pocos errores, que es una de sus grandes ventajas. Tiene un diseño minimalista, un modo libre de distracción y un conjunto de atajo de teclas para facilitar al máximo el trabajo con el código. Sublime Text es ligero, fácil de usar y tiene mejores funciones de busqueda y reemplazo en comparación con otros editores.

Aparte de no ser un editor de código libre, entre sus otras desventajas podemos encontrar la ausencia de la opcion de impresión de código y del guardado automático del documento. También es cierto que para un usuario sin conocimientos previos de programación puede resultar difícil trabajar con él al principio ya que es una herramienta más apropiada para los desarolladores con experiencia.

Atom

Atom es un editor de código desarollado por GitHub. Es libre y de código abierto y compatible con Windows, Linux de 64 bits y macOS. Para trabajar con Python es necesario instalar una extensión a la hora de la instalación del programa.

Atom ofrece muchas posibilidades de expansión, tanto paquetes (características y funciones) como temas (ajustes visuales de la interfaz de usuario y resaltado de sintaxis). Aparte, incluye un gestor de paquetes integrado que permite buscar e instalar nuevos plugins.

La mayor ventaja de Atom es su compatibilidad con Github, que permite establecer un repositorio GitHub para cualquier proyecto sin tener que visitar la plataforma. Este editor incluye funciones básicas como resaltado de sintaxis, autocompletado de texto y código, reconocimiento automático de lenguaje, búsqueda y reemplazo de los términos, expresiones y secciones en todo el proyecto. Entre los lados débiles de Atom podemos marcar el alto consumo de la memoria del ordenador – si ejecutamos el código o editamos varios ficheros a la vez, el rendimiento puede ser lento. La otra desventaja es que no se puede ejecutar el código directamente en el editor. Atom se usa sobre todo en el ámbito de desarollo web y en ciencia de datos.

GNU Emacs

GNU Emacs es uno de los más antiguos editores de código que existen. Es libre y de código abierto y es muy popular en la comunidad de desarolladores. Es compatible con Windows, macOS y Linux.

Para trabajar con los proyectos en Python, necesitamos la extensión Elpy, que contiene muchas características útiles como el resaltado de sintaxis, sangría automática, depurador integrado, navegación y autocompletado de código y soporte de refactorización. Aparte, podemos usar Emacs-Jedi – un paquete de autocompletado de código para Python, que también ayuda a encontrar la información sobre los objetos de Python como docstring, argumentos de función y ubicación del código. Emacs IPython Notebook (EIN) permite ejecutar Jupyter notebooks dentro de Emacs y tiene modos de soporte para el desarollo de Django. Aunque es un editor de código bastante conocido, Emacs puede ser un editor complicado para los principiantes en programación.


Hemos hecho un resumen de las herramientas más populares para trabajar con el código en Python. Como podemos ver, para las cosas más fáciles y los scripts más sencillos nos basta con un editor de código. Pero si nuestro objetivo es crear una aplicación, una página web u otro proyecto que requiere depuración, complilación y prueba tenemos que utilizar un IDE, la herramienta más potente y con más funciones integradas. Para gustos los colores, al final entre los editores de código y los IDEs cada uno elige lo que más se adapte a sus necesidades y su especialidad.