Práctica 2.2: Evaluación IDEs
Relación 2.2¶
1. Descripción de la actividad:**¶
En grupos de 5 personas, los estudiantes deberán elegir dos IDEs para trabajar (Ver lista de ides posibles). Cada miembro del grupo trabajará individualmente en los puntos 1 al 6, pero al final deberán reunirse para comparar sus resultados y realizar una tabla comparativa de los IDEs elegidos.
La actividad se divide en dos partes:
- Parte individual: Cada estudiante trabaja en los puntos 1 a 6 de manera individual, generando evidencias a través de capturas de pantalla por los puntos y respondiendo a las preguntas evaluativas asociadas a cada punto.
- Parte grupal: Los estudiantes se reunirán para discutir las diferencias y similitudes de los IDEs utilizados, desarrollarán una respuesta grupal a las mismas preguntas, y crearán una tabla comparativa de los IDEs. Este trabajo será expuesto en clase.
2. Parte individual: Trabajo personal en los puntos 1-6¶
Cada estudiante trabajará individualmente en los siguientes puntos:
2.1. Instalación de entornos de desarrollo, propietarios y libres (CE 2.a)¶
Tarea individual:
Elige dos entornos de desarrollo: Instala ambos en tu equipo y captura pantallas del proceso de instalación.
Preguntas evaluativas:
- ¿Qué diferencias encontraste en el proceso de instalación entre el IDE propietario y el libre?
- ¿Qué ventajas identificaste en cada uno de los entornos durante la instalación?
Evidencia: Captura de pantalla del proceso de instalación de cada IDE.
2.2. Gestión de módulos y extensiones en el entorno de desarrollo (CE 2.b)¶
Tarea individual:
En cada IDE, agrega extensiones o módulos que amplíen su funcionalidad. Por ejemplo, suponiendo habiendo trabajado con VSC y IntelliJ IDEA, instala una extensión para trabajar con Python en Visual Studio Code o un plugin para Kotlin en IntelliJ IDEA.
Preguntas evaluativas:
- ¿Cómo fue el proceso de instalación de extensiones o módulos en cada IDE?
- ¿Qué beneficios proporcionan las extensiones o plugins que instalaste para el desarrollo de tus proyectos?
Evidencia: Captura de pantalla del panel de extensiones o plugins instalados en cada IDE.
2.3. Personalización y automatización del entorno (CE 2.c)¶
Tarea individual:
Personaliza el entorno de trabajo en cada IDE (tema, atajos de teclado) y automatiza una tarea, como la ejecución de pruebas o la compilación de código.
Preguntas evaluativas:
- ¿Qué aspectos del entorno personalizaste y cómo mejoró tu experiencia de desarrollo?
- ¿Cómo configuraste la automatización de tareas y en qué te benefició durante el trabajo?
Evidencia: Captura de pantalla mostrando la personalización del entorno y la automatización de tareas en cada IDE. El antes y el después.
2.4. Configuración del sistema de actualización del entorno de desarrollo (CE 2.d)¶
Tarea individual:
Configura el sistema de actualizaciones automáticas o manuales en ambos IDEs para asegurarte de que están al día con las últimas versiones y mejoras.
Preguntas evaluativas:
- ¿Cómo configuraste las actualizaciones automáticas en cada IDE?
- ¿Por qué es importante mantener el IDE actualizado en proyectos de desarrollo?
Evidencia: Captura de pantalla de la configuración de actualizaciones en cada IDE.
2.5. Generación de ejecutables a partir de código fuente en distintos lenguajes en un mismo IDE (CE 2.e)¶
Tarea individual:
Escribe un programa que cuente de 10 a 0 y luego imprima "¡Despegue!". Usa un solo IDE para generar y ejecutar este programa en dos lenguajes diferentes (por ejemplo, Java y Kotlin en IntelliJ IDEA).
Preguntas evaluativas:
- ¿Cuál fue el proceso para ejecutar el mismo programa en diferentes lenguajes dentro del mismo IDE?
- ¿Qué diferencias encontraste en la generación del ejecutable entre los dos lenguajes?
Evidencia: Captura de pantalla mostrando la ejecución del programa en ambos lenguajes dentro del mismo IDE.
2.6. Generación de ejecutables con diferentes IDEs a partir del mismo código fuente (CE 2.f)¶
Tarea individual:
Escribe un programa en Python que cuente de 10 a 0 y luego imprima "¡Despegue!". Ejecuta el programa en los IDEs seleccionados.
Preguntas evaluativas:
- ¿Qué diferencias encontraste al ejecutar el mismo código fuente en diferentes IDEs?
- ¿Cuál de los IDEs te pareció más cómodo o eficiente para ejecutar el código Python o el lenguajes que hayas elegido? ¿Por qué?
Evidencia: Captura de pantalla mostrando la ejecución del programa en ambos IDEs.
- No olvides entregar tu trabajo individual en el readme.md del respositorio.
3. Parte grupal: Comparación y análisis en grupo (punto 7)¶
Tras completar el trabajo individual, el equipo se reunirá para discutir los resultados y completar la parte grupal de la actividad, concluirán y decidirán aquellos puntos destacables en cada una de las preguntas, susceptibles se ser comentadas en el trabajo:
3.1. Comparación de las características comunes y específicas de diversos entornos de desarrollo (CE 2.g)**¶
Tarea grupal:
En equipo, comparen las características comunes y específicas de los IDEs que utilizaron (por ejemplo, PyCharm vs. Visual Studio Code, o IntelliJ IDEA vs. Eclipse). Basen su comparación en los resultados obtenidos en los puntos anteriores.
Preguntas evaluativas anteriores: Dar una respuesta común a todas las anteriores, solo aquellos puntos que se quieran destacar. Que IDES son mejores? que plugin son mejores? que funcionalidades son mas interesantes? etc....
Preguntas evaluativas (para responder en grupo):
- ¿Qué características comunes comparten los IDEs en términos de edición de código, depuración y control de versiones?
- ¿Qué diferencias notaron en la forma en que los IDEs manejan módulos, personalización y generación de ejecutables?
- ¿Cuál de los IDEs elegidos consideran que es más adecuado para proyectos de desarrollo específicos y por qué?
- ¿Qué IDE recomendarían a un equipo de desarrollo que trabaja en proyectos de Python, Java o Kotlin y por qué?
Evidencia:
- Tabla comparativa de los IDEs, destacando sus características comunes y específicas.
4. Ejemplo de tabla comparativa¶
Aquí tienes una versión de ejemplo de una tabla comparativa, con más de 10 características que cubren tanto funcionalidades comunes como específicas de los IDEs:
Característica | PyCharm | Visual Studio Code | IntelliJ IDEA | Eclipse |
---|---|---|---|---|
Lenguajes soportados | Python | Python, JavaScript, muchos más | Kotlin, Java, Python, Scala | Java, C/C++, Python, PHP |
Velocidad de carga | Medio | Rápido | Medio | Medio |
Soporte para extensiones/plugins | Amplio, orientado a Python | Muy amplio (Marketplace de extensiones) | Amplio, orientado a Java/Kotlin | Amplio (gran cantidad de plugins) |
Depurador | Completo para Python | Básico pero funcional | Completo para Java/Kotlin | Completo para Java/C/C++ |
Refactorización | Sí, herramientas avanzadas | Limitado, mediante extensiones | Sí, muy completo | Sí, pero limitado |
Autocompletado de código | Avanzado (IntelliSense para Python) | Avanzado con extensiones | Avanzado, nativo para Kotlin y Java | Nativo para Java y C/C++ |
Control de versiones (Git) | Integrado (soporte para Git y otros) | Integrado (Git) | Integrado (Git y más) | Integrado (Git, Subversion) |
Automatización de tareas | Sí (tests, compilación, etc.) | Sí, con extensiones | Sí, automatización avanzada | Sí, con configuraciones avanzadas |
Soporte para múltiples lenguajes | Soporte principalmente para Python | Soporte para muchos lenguajes mediante extensiones | Soporte nativo para Java, Kotlin, Scala y otros | Soporte para muchos lenguajes mediante plugins |
Personalización del entorno | Limitado (temas y atajos) | Muy alto (temas, extensiones, atajos) | Avanzado (temas, atajos, herramientas personalizadas) | Alto (temas, atajos) |
Integración con bases de datos | Soporte nativo (PostgreSQL, MySQL) | Extensiones necesarias | Soporte nativo completo (bases de datos, ORM) | Requiere plugins adicionales |
Pruebas automatizadas | Integrado para Python | Extensiones disponibles | Integrado para Java/Kotlin | Requiere configuraciones adicionales |
Soporte para frameworks | Excelente (Django, Flask, etc.) | Amplio, mediante extensiones | Amplio (Spring, Hibernate, etc.) | Amplio (Spring, Hibernate, etc.) |
Configuración de entornos virtuales | Nativo para Python (virtualenv, pipenv) | A través de extensiones | Configuraciones avanzadas | A través de plugins |
Herramientas de análisis de código | Soporte avanzado (análisis de código Python) | Extensiones necesarias | Soporte completo para Java/Kotlin | Soporte básico, plugins disponibles |
Soporte para compilación/maven/gradle | Limitado en Python | A través de extensiones | Nativo para Maven, Gradle | Nativo para Maven, Gradle |
Precio/licencia | Propietario (con versión gratuita limitada: Community) | Gratuito, código abierto | Propietario (con versión gratuita limitada: Community) | Gratuito, código abierto |
4.1 Explicación de las características clave:¶
- Lenguajes soportados: PyCharm está especializado en Python, mientras que Visual Studio Code soporta múltiples lenguajes a través de extensiones. IntelliJ IDEA es el IDE oficial para Kotlin y Java, y Eclipse es ideal para Java, pero con soporte para varios lenguajes.
- Velocidad de carga: Visual Studio Code es rápido debido a su ligereza, mientras que IDEs más completos como IntelliJ IDEA o Eclipse tienden a ser más lentos al manejar proyectos grandes.
- Soporte para extensiones/plugins: Visual Studio Code es extremadamente personalizable mediante extensiones, mientras que PyCharm e IntelliJ IDEA tienen un sistema robusto de plugins.
- Depurador: Todos los IDEs tienen un depurador integrado, pero Visual Studio Code requiere extensiones para depurar correctamente. IntelliJ IDEA y PyCharm tienen depuradores avanzados nativos para sus lenguajes principales.
- Refactorización: IntelliJ IDEA y PyCharm sobresalen en este aspecto con herramientas automáticas de refactorización, mientras que Visual Studio Code tiene un soporte limitado a través de extensiones.
- Autocompletado de código: Tanto IntelliJ IDEA como PyCharm ofrecen autocompletado avanzado, mientras que Visual Studio Code requiere extensiones para mejorar esta funcionalidad.
- Control de versiones: Todos los IDEs ofrecen integración nativa con Git, pero algunos como IntelliJ IDEA también soportan otros sistemas de control de versiones como Subversion.
- Automatización de tareas: En todos los IDEs es posible automatizar tareas, pero Visual Studio Code lo logra principalmente mediante extensiones, mientras que PyCharm e IntelliJ lo hacen de manera nativa.
- Personalización del entorno: Visual Studio Code es extremadamente personalizable gracias a su enfoque en extensiones. PyCharm e IntelliJ permiten personalizar temas y atajos, pero con menos flexibilidad.
- Integración con bases de datos: IntelliJ IDEA y PyCharm ofrecen soporte nativo para conectarse a bases de datos, mientras que Visual Studio Code requiere extensiones.
- Pruebas automatizadas: PyCharm e IntelliJ IDEA tienen soporte avanzado para ejecutar pruebas automatizadas, mientras que en Visual Studio Code esto depende de las extensiones.
- Soporte para frameworks: PyCharm ofrece soporte avanzado para frameworks como Django y Flask en Python, mientras que Visual Studio Code permite soporte para múltiples frameworks mediante extensiones. IntelliJ IDEA destaca en el uso de Spring y Hibernate en Java y Kotlin, y Eclipse también es compatible con frameworks pero requiere más plugins para configurarse.
- Configuración de entornos virtuales: PyCharm facilita la configuración de entornos virtuales como virtualenv y pipenv en Python, mientras que Visual Studio Code permite integrarlos mediante extensiones. IntelliJ IDEA es compatible con entornos virtuales en Kotlin y Java a través de Gradle o Maven, mientras que Eclipse requiere plugins adicionales para esta funcionalidad.
- Herramientas de análisis de código: IntelliJ IDEA y PyCharm incluyen análisis de código avanzado para mejorar el rendimiento en Java, Kotlin y Python. Visual Studio Code requiere extensiones como SonarLint o ESLint para análisis específicos, mientras que Eclipse ofrece análisis básico para Java, aunque es menos avanzado.
- Soporte para compilación/Maven/Gradle: IntelliJ IDEA es excelente en la integración con Maven y Gradle para proyectos en Java/Kotlin, mientras que Visual Studio Code requiere extensiones para estas herramientas. Eclipse también ofrece soporte nativo para Maven/Gradle, y PyCharm, al centrarse en Python, tiene un soporte limitado para herramientas de compilación.
- Precio/licencia: PyCharm e IntelliJ IDEA ofrecen versiones Community gratuitas y opciones de pago con más características, mientras que Visual Studio Code es gratuito y de código abierto. Eclipse es también gratuito y de código abierto, siendo una opción accesible para múltiples lenguajes.
5. IDEs posibles para la actividad¶
Para la actividad de comparación de entornos de desarrollo, los estudiantes pueden elegir entre los siguientes IDEs principales y algunas alternativas secundarias. Cada IDE ofrece características diferentes, lo que permite explorar sus ventajas y desventajas para distintos tipos de proyectos. Solo puedes repetir uno de los ya visto: Visual Studio Code, Pycharm, Intellij IDEA.
5.1. IDEs más importantes¶
- Fleet: IDE de nueva generación de JetBrains, ligero y adaptable a múltiples lenguajes. Está diseñado para facilitar el trabajo en equipo y la colaboración en proyectos.
- PyCharm: Especializado en Python y muy completo para el desarrollo en este lenguaje, especialmente para proyectos que incluyen frameworks como Django y Flask. Ofrece herramientas avanzadas de depuración, refactorización, integración con Git y gestión de entornos virtuales.
- Thonny: Un IDE ideal para principiantes en Python. Su interfaz simple y clara permite que los nuevos programadores se familiaricen fácilmente con el lenguaje, aunque ofrece menos funciones avanzadas que otros IDEs.
- Apache NetBeans: IDE de código abierto que soporta múltiples lenguajes de programación como Java, PHP, y Python. Es conocido por su gran cantidad de plugins y su uso en proyectos empresariales.
- LiClipse: Una extensión de Eclipse que incluye herramientas para el desarrollo en Python, haciendo que Eclipse sea más adecuado para este lenguaje.
- Visual Studio Code con el plugin para Python: Un editor de código muy flexible y personalizable con una gran comunidad de extensiones, que lo convierte en un entorno adecuado para el desarrollo en Python y otros lenguajes.
- Visual Studio: Un IDE avanzado de Microsoft principalmente para C#, .NET y aplicaciones de Windows, aunque permite el desarrollo en Python con la instalación de módulos adicionales.
5.2. Otros IDEs alternativos¶
- Sublime Text 3 con Anaconda Plugin: Aunque no es un IDE completo, Sublime Text puede configurarse para el desarrollo en Python usando el plugin Anaconda, que agrega funcionalidades de autocompletado y depuración.
- Atom con Atom-python-run: Atom es otro editor de texto ligero que, con el plugin Atom-python-run, puede configurarse para ejecutar scripts de Python y realizar tareas básicas de desarrollo.
- Wing Python IDE: IDE especializado en Python que incluye herramientas avanzadas para depuración, edición de código, y testing, siendo popular entre desarrolladores que requieren un enfoque intensivo en Python.
- Spyder IDE: IDE popular en el entorno de Data Science y análisis de datos en Python. Incluye integración con librerías científicas como NumPy y Pandas, y una consola interactiva para pruebas rápidas.
- Eric Python IDE: IDE de código abierto, orientado a Python, con una interfaz completa y herramientas de depuración integradas.
- IDLE (Entorno incluido con el intérprete de Python): Un entorno básico para Python que viene integrado con el intérprete. Es sencillo y ligero, ideal para realizar pruebas rápidas y scripts pequeños.
6. Evaluación¶
- Parte individual: Entrega de trabajo. Se evaluarán las respuestas a las preguntas y las capturas de pantalla entregadas para cada uno de los 6 puntos trabajados individualmente.
- Parte grupal: Exposición. Se evaluarán las respuestas grupales a las preguntas y la tabla comparativa de los IDEs.