Revisión: 6 IDE de Python van al tapete

De todas las métricas que puede utilizar para medir la popularidad y el éxito de un lenguaje, un factor infalible es la cantidad de entornos de desarrollo disponibles para él. El aumento de popularidad de Python en los últimos años ha traído consigo una fuerte ola de soporte IDE, con herramientas dirigidas tanto al programador general como a aquellos que usan Python para tareas como el trabajo científico y la programación analítica.

Estos seis IDE con soporte para Python cubren la gama de casos de uso. Algunos son IDE en varios idiomas que tienen soporte para Python a través de un complemento o un reempaquetado de otro producto con extensiones específicas de Python. Cada uno beneficia a una audiencia ligeramente diferente de desarrolladores de Python, aunque muchos se esfuerzan por ser útiles como soluciones universales.

Hoy en día, una buena cantidad de IDE son marcos equipados con complementos para lenguajes y tareas específicos, en lugar de aplicaciones escritas de adentro hacia afuera para fomentar el desarrollo en un idioma determinado. Con ese fin, su elección de IDE puede estar determinada por si tiene o no experiencia con otro IDE de la misma familia.

Vídeo relacionado: Por qué Python facilita la programación

Para aquellos que no tienen esa experiencia, PyCharm es uno de los mejores lugares para comenzar. Es amigable para los recién llegados, pero no está limitado en su conjunto de características. De hecho, tiene algunas de las características más útiles entre todos los IDE descritos aquí. Muchas de esas funciones están disponibles solo en la versión de pago del producto, pero hay muchas en la versión gratuita para ayudar a un desarrollador novato a comenzar.

LiClipse y Python Tools para Visual Studio (PTVS) son buenas opciones para los desarrolladores que ya están íntimamente familiarizados con Eclipse y Microsoft Visual Studio, respectivamente. Ambos son entornos de desarrollo en toda regla, tan completos como vas a encontrar, que integran Python bastante bien. Sin embargo, también son aplicaciones complejas y extensas que vienen con una gran cantidad de gastos cognitivos. Si ya domina alguno de ellos, lo encontrará una excelente opción para el trabajo de Python.

La encarnación en Python del IDE de Komodo de ActiveState es natural para aquellos que ya han utilizado el IDE de Komodo para algún otro lenguaje, y tiene características únicas (como el evaluador de expresiones regulares) que deberían ampliar su atractivo. Komodo merece una mirada de cerca tanto por parte de principiantes como de expertos.

Spyder es más adecuado para trabajar con IPython u otras herramientas informáticas científicas en distribuciones como Anaconda, en lugar de como una plataforma de desarrollo para Python en general. Por último, es mejor reservar IDLE para secuencias de comandos rápidas y sucias, e incluso en ese sentido, podría quedar relegado a un editor de código independiente con un complemento de sintaxis de Python. Dicho esto, IDLE siempre está ahí cuando lo necesita.

OCIOSO

IDLE, el entorno de desarrollo incluido con la mayoría de las instalaciones de Python, podría considerarse el IDE de Python predeterminado. Sin embargo, IDLE no es de ninguna manera un sustituto de un IDE completo; es más como un elegante editor de archivos. Aún así, IDLE sigue siendo una de las opciones predeterminadas para que los desarrolladores de Python mejoren el lenguaje, y ha mejorado gradualmente con cada lanzamiento de Python, especialmente con Python 3.5. (Consulte esta página para ver una discusión interesante sobre los esfuerzos recientes para mejorar el modo inactivo).

IDLE está construido completamente con componentes que se envían con una instalación predeterminada de Python. Aparte del intérprete CPython en sí, esto incluye el kit de herramientas de la interfaz Tkinter. Una ventaja de construir IDLE de esta manera: funciona multiplataforma con un conjunto consistente de comportamientos. Como desventaja, la interfaz puede ser terriblemente lenta. Imprimir grandes cantidades de texto desde un script en la consola, por ejemplo, es muchos órdenes de magnitud más lento que si el script se ejecuta directamente desde la línea de comandos.

IDLE tiene algunas comodidades inmediatas. Tiene un bucle integrado de lectura-evaluación-impresión (REPL), o consola interactiva, para Python. De hecho, este shell interactivo es el primer elemento que se le presenta al usuario cuando se inicia IDLE, en lugar de un editor vacío. IDLE también incluye algunas herramientas que se encuentran en otros IDE, como proporcionar sugerencias de palabras clave o variables cuando presiona Ctrl-Espacio, y un depurador integrado. Pero las implementaciones para la mayoría de estas características son primitivas en comparación con otros IDE y están limitadas por la selección limitada de componentes de UI de Tkinter. Y la colección de complementos de terceros disponibles para IDLE (uno de esos proyectos es IdleX) no es tan rica como la que encontrará con otros IDE.

En resumen, IDLE es mejor para dos escenarios. La primera es cuando desea piratear un script rápido de Python y necesita un entorno preconfigurado para hacerlo. El segundo es para principiantes que recién están entrando en sus piernas. Incluso los principiantes necesitarán graduarse rápidamente a una opción más sólida.

Spyder

Spyder es la abreviatura de "Scientific PYthon Development EnviRonment". Está diseñado para usarse como un banco de trabajo para la computación científica con Python, y eso se refleja en el conjunto de características, el empaquetado y el comportamiento general del IDE. Spyder tiene características útiles para el desarrollo general de Python, pero a menos que trabaje principalmente con IPython y paquetes de computación científica, probablemente esté mejor con un IDE diferente.

La razón principal para no usar Spyder como un entorno de desarrollo de Python de propósito general no es el conjunto de características, sino el proceso de configuración. Spyder no se entrega como un ejecutable independiente a la manera de un producto como Visual Studio o PyCharm. En cambio, se instala como un paquete de Python. Su camino más fácil para Spyder es instalar una distribución de Python que viene precargada, como Anaconda de Continuum Analytics.

1. Disponible como extensión, pero solo admite la verificación de sintaxis. 2. Disponible como complemento de Eclipse. 3. Disponible en versión comercial. 4. Consulte las instrucciones de integración. 5. Utiliza sistemas de control de versiones instalados en el host.
  OCIOSO Komodo LiClipse PyCharm PTVS Spyder
Soporte Cython No Sí (1) No Si: 3) No No
Control de versiones No si si si si Sí (5)
Depurador gráfico No si si si si No
Soporte de IPython No No No si Sí (4) si
Macros No si Sí (2) Sí (2) si No
Varios intérpretes No si si si si si
Refactorización No si si si si No
Integración de base de datos No si Sí (2) Si: 3) si No
HTML / CSS / JavaScript No si si si Si: 3) No

Spyder incluye IPython, que es un reemplazo de la consola Python convencional. Cuando escribe comandos en IPython, los resultados se pueden explorar de forma interactiva. Cada comando puede tratarse como una "celda" o un segmento de código que puede tener su salida almacenada y clasificada.

Spyder se suma a esto integrando los comportamientos de las celdas en su editor de código. Si inserta comentarios especialmente formateados en cualquier script de Python, puede dividirlo en celdas y ejecutar esas celdas en la interfaz de IPython en cualquier orden. De esta manera, es fácil usar Spyder para crear prototipos de celdas para colocarlas en un portátil IPython más adelante.

Para la depuración, Spyder utiliza el depurador Pdb integrado de Python. La interfaz de línea de comandos para Pdb está muy lejos de los depuradores gráficos más sofisticados que se encuentran en PyCharm o LiClipse, aunque puede instalar el depurador gráfico Winpdb como un complemento opcional. Desafortunadamente, no puede usar Winpdb con Python 3, ya que tiene dependencias de paquetes que todavía solo están disponibles en Python 2 (específicamente, wxPython). Con ese fin, la mayoría de la gente se quedará atrapada con Pdb.

Spyder también es limitado en comparación con otros IDE en su integración con sistemas de control de versiones como Git y Mercurial. Si está trabajando en un repositorio de proyecto inicializado, los archivos de ese proyecto mostrarán elementos del menú contextual del botón derecho del ratón para el repositorio. Dicho esto, no hay mecanismos de control de versiones integrados directamente en Spyder; debe tener la aplicación de control de versiones adecuada ya instalada a nivel del sistema, con sus ejecutables disponibles en la ruta del sistema. Spyder tampoco incluye herramientas para administrar repositorios en su interfaz de usuario. Estas deficiencias no son tan graves si ya tiene el hábito de administrar los repositorios usted mismo, pero suponen obstáculos adicionales si no lo está.

Spyder tiene características útiles para el desarrollo general de Python. Uno que me llamó la atención de inmediato es el panel del explorador de variables en la interfaz de Spyder. A medida que escribe comandos en IPython, las variables creadas se registran allí y se pueden explorar de forma interactiva. Otra herramienta útil es el eliminador de módulos de usuario. Habilítelo y el intérprete de Python volverá a cargar todos los módulos desde cero cuando ejecute un script de Python. De esta manera, cualquier cambio realizado en el código de un módulo se puede aplicar a un programa en ejecución sin tener que reiniciar toda la aplicación.

ActiveState Komodo IDE

La línea de productos IDE de ActiveState incluye versiones para casi todos los idiomas principales. El enfoque de la compañía para esto es un poco como funciona LiClipse: tome el producto básico (en este caso el IDE de Komodo) y equípelo con complementos para el desarrollo de Python.

Komodo se adapta mejor a aquellos que ya están familiarizados con las encarnaciones de Komodo para otros idiomas. Las personas con tanta experiencia en su haber no tendrán problemas para sumergirse en el producto Python. Si viene en frío, hay algunas peculiaridades de la interfaz de usuario que vale la pena señalar. Por ejemplo, la barra de menú de la aplicación no está expuesta de forma predeterminada; tienes que hacer clic en el menú de hamburguesas en la parte superior derecha o tocar la tecla Alt para mostrarlo. Está destinado a mantener las cosas limpias y simples, pero puede ser demasiado minimalista para algunos gustos.

Por otro lado, algunas de las opciones de interfaz resultan atractivas de inmediato. Me gustó particularmente el "minimapa", una vista previa ampliada del código en el editor, que te permite saltar de un vistazo a cualquier parte del archivo que estás editando. LiClipse tiene una característica similar, pero es más fácil trabajar con la implementación de Komodo.

La mayoría de los IDE de Python están equipados con controles de sintaxis específicos de Python o linting de código. Komodo IDE tiene todo eso, pero también ha sido diseñado para admitir las versiones 2 y 3 del idioma al mismo tiempo. Si desea iniciar un shell de Python, por ejemplo, y tiene intérpretes para ambas versiones de Python disponibles en la ruta de su sistema, puede elegir explícitamente cualquiera de las versiones. A menudo he necesitado ejecutar pruebas rápidas de los comportamientos de una declaración dada en Python 2 y Python 3 en paralelo, y esta es una forma práctica de hacerlo.

Komodo le brinda la opción de aplicar múltiples configuraciones de ejecución o depuración para una aplicación, pero es un poco menos flexible que una función similar en LiClipse. Cuando inicia una aplicación, se le ofrece una selección de perfiles para postularse al programa. Puede desactivar el selector de perfil y pasar directamente a ejecutar un perfil, pero la desactivación solo se puede realizar en toda la aplicación, no para un proyecto en particular. Prefiero el menú desplegable de la barra de herramientas de LiClipse, desde el cual puede seleccionar un perfil determinado o iniciar el perfil utilizado más recientemente con un clic.

Una inclusión verdaderamente maravillosa es un juego de herramientas de expresión regular. Escriba una expresión regular en un panel de esta herramienta, proporcione algunos datos de muestra para aplicarlos en un segundo panel y los resultados aparecerán en un tercero. La herramienta también admite varios tipos de expresiones regulares, incluido Python, e incluso le muestra los resultados de las operaciones de coincidencia, división y reemplazo. Lucho todo el tiempo con la elaboración de expresiones regulares que funcionen, por lo que esta herramienta es una bendición.

Otra característica útil lista para usar es un catálogo de fragmentos de código comunes para Python. Haga clic en "caminar", por ejemplo, y el editor inserta el código repetitivo para usar la os.walkfunción de Python para recorrer directorios, una de las funciones cuya sintaxis y uso nunca recuerdo de improviso. También se incluyen otros idiomas. Por ejemplo, si necesita insertar HTML de edición estándar en una plantilla de Django que está preparando, Komodo lo tiene cubierto.

La distribución predeterminada de Python viene con soporte para SQLite listo para usar. Komodo IDE complementa esto al proporcionar un explorador integrado para bases de datos SQLite. Es una especie de versión simplificada de las aplicaciones de escritorio del "entorno de trabajo" proporcionadas para MySQL o Microsoft SQL Server. La interfaz es torpe y poco atractiva, pero es perfectamente adecuada para una inspección rápida y sucia o una edición puntual de una base de datos. No está destinado a servir como un IDE de base de datos completo.

Encontrará muchas otras funciones útiles en Komodo, incluso si no se dirigen específicamente a Python. La grabadora de macros le permite grabar y reproducir acciones comunes, aunque no parece registrar algunos tipos de acciones, como elegir qué perfil de aplicación usar al iniciar una aplicación. Otra característica permite la colaboración en tiempo real entre los usuarios de Komodo, aunque deberán registrarse para obtener cuentas con ActiveState para acceder al servicio.

LiClipse 

El IDE de Eclipse suele ser criticado por ser lento y sobrecargado, pero su amplio soporte de lenguaje y su galería de complementos de desarrollo lo convierten en una herramienta poderosa y valiosa. Python es compatible con Eclipse a través del complemento PyDev. Si está utilizando Eclipse para nada más que el desarrollo de Python, su mejor opción es tomar LiClipse. (A lo largo de esta revisión, usaré LiClipse como abreviatura del conjunto de funciones que proporcionan LiClipse y PyDev juntos).

LiClipse es un reempaquetado de Eclipse con PyDev, junto con una gran cantidad de otros componentes de Eclipse destinados a mejorar la experiencia del usuario. Cuando se lanza, LiClipse se ve y se comporta de manera muy similar a la edición regular de Eclipse, salvo la marca y los íconos de LiClipse, por lo que los usuarios experimentados de Eclipse no deberían tener muchos problemas para configurar el espacio de trabajo a su gusto. Si estás no experimentado con Eclipse, necesitará algún tiempo para aprender cómo funciona el espacio de trabajo de Eclipse (Eclipse de este aspecto es criticado rutinariamente). En ese sentido, LiClipse es mejor para las personas que ya se sienten cómodas con Eclipse, quizás por trabajar en él en otro idioma.

Tanteador Capacidad (30%) Rendimiento (10%) Facilidad de uso (20%) Documentación (20%) Complementos (20%) Puntaje general (100%)
INACTIVO 3.5.1 6 7 8 7 5 6.5
IDE de Komodo 10.1.1 8 8 7 8 8 7.8
LiClipse 3.1 9 7 7 8 9 8.2
PyCharm 2016.2.3 9 8 9 8 8 8.5
Spyder 3.0.0 7 7 7 7 6 6,8
Python Tools 2.2 para Visual Studio 2015 9 8 7 9 9 8.5