stringtranslate.com

Entorno de desarrollo integrado

Un entorno de desarrollo integrado ( IDE ) es una aplicación de software que proporciona instalaciones completas para el desarrollo de software . Un IDE normalmente consta de al menos un editor de código fuente , herramientas de automatización de compilación y un depurador . Algunos IDE, como IntelliJ IDEA , Eclipse y Lazarus, contienen el compilador , el intérprete o ambos necesarios; otros, como SharpDevelop y NetBeans , no.

El límite entre un IDE y otras partes del entorno de desarrollo de software más amplio no está bien definido; a veces se integra un sistema de control de versiones o varias herramientas para simplificar la construcción de una interfaz gráfica de usuario (GUI). Muchos IDE modernos también tienen un explorador de clases , un explorador de objetos y un diagrama de jerarquía de clases para su uso en el desarrollo de software orientado a objetos .

Descripción general

Vim con autocompletado integrado y revisión de errores a través de un complemento externo

Los entornos de desarrollo integrados están diseñados para maximizar la productividad del programador al proporcionar componentes muy unidos con interfaces de usuario similares . Los IDE presentan un único programa en el que se realiza todo el desarrollo. Este programa normalmente proporciona muchas funciones para crear, modificar, compilar, implementar y depurar software. Esto contrasta con el desarrollo de software que utiliza herramientas no relacionadas, como vi , GDB , GNU Compiler Collection o make .

Uno de los objetivos del IDE es reducir la configuración necesaria para unir varias utilidades de desarrollo. En cambio, proporciona el mismo conjunto de capacidades como una unidad cohesiva. Reducir el tiempo de configuración puede aumentar la productividad del desarrollador, especialmente en los casos en los que aprender a usar el IDE es más rápido que integrar y aprender manualmente todas las herramientas individuales. Una integración más estrecha de todas las tareas de desarrollo tiene el potencial de mejorar la productividad general más allá de simplemente ayudar con las tareas de configuración. Por ejemplo, el código se puede analizar continuamente mientras se edita, lo que proporciona una respuesta instantánea cuando se introducen errores de sintaxis, lo que permite a los desarrolladores depurar el código mucho más rápido y más fácilmente con un IDE.

Algunos IDE están dedicados a un lenguaje de programación específico , lo que permite un conjunto de características que se ajustan más a los paradigmas de programación del lenguaje. Sin embargo, hay muchos IDE que funcionan con varios lenguajes.

Si bien la mayoría de los IDE modernos son gráficos, los IDE basados ​​en texto, como Turbo Pascal, se usaban mucho antes de la aparición de sistemas de ventanas como Microsoft Windows y X Window System (X11). Suelen utilizar teclas de función o teclas de acceso rápido para ejecutar comandos o macros de uso frecuente.

Historia

GNU Emacs , un editor extensible que se utiliza comúnmente como IDE en sistemas tipo Unix

Los IDE se hicieron posibles inicialmente cuando se desarrollaba a través de una consola o terminal . Los primeros sistemas no podían soportar uno, ya que los programas se enviaban a un compilador o ensamblador a través de tarjetas perforadas , cinta de papel , etc. Dartmouth BASIC fue el primer lenguaje que se creó con un IDE (y también fue el primero en ser diseñado para usarse sentado frente a una consola o terminal). [ cita requerida ] Su IDE (parte del Dartmouth Time Sharing System ) estaba basado en comandos y, por lo tanto, no se parecía mucho a los IDE gráficos controlados por menús populares después de la llegada de la Interfaz Gráfica de Usuario . Sin embargo, integraba edición, administración de archivos, compilación, depuración y ejecución de una manera consistente con un IDE moderno.

Maestro I es un producto de Softlab Munich y fue el primer entorno de desarrollo integrado del mundo [1] para software. Maestro I fue instalado por 22.000 programadores en todo el mundo. Hasta 1989, existían 6.000 instalaciones en la República Federal de Alemania . Maestro fue posiblemente el líder mundial en este campo durante los años 1970 y 1980. Hoy en día, uno de los últimos Maestro I se puede encontrar en el Museo de Tecnología de la Información de Arlington en Texas.

Uno de los primeros IDE con concepto de plug-in fue Softbench . En 1995 Computerwoche comentó que el uso de un IDE no era bien recibido por los desarrolladores ya que esto limitaría su creatividad.

En agosto de 2023 , los IDE más buscados en la Búsqueda de Google eran Visual Studio , Visual Studio Code y Eclipse . [2]

Temas

Resaltado de sintaxis

El editor IDE generalmente proporciona resaltado de sintaxis , puede mostrar tanto las estructuras, las palabras clave del lenguaje como los errores de sintaxis con colores y efectos de fuente visualmente distintos. [3]

Completado de código

La finalización de código es una característica importante de los IDE, cuyo objetivo es acelerar la programación. Los IDE modernos incluso cuentan con finalización de código inteligente .

Completado inteligente de código

El autocompletado de código es una función de autocompletado presente en muchos entornos de desarrollo integrados (IDE) que acelera el proceso de codificación de aplicaciones al corregir errores comunes y sugerir líneas de código. Esto suele ocurrir a través de ventanas emergentes mientras se escribe, consultando parámetros de funciones y sugerencias de consulta relacionadas con errores de sintaxis. El software de autocompletado de código moderno suele utilizar sistemas de inteligencia artificial generativa para predecir líneas de código. El autocompletado de código y las herramientas relacionadas sirven como documentación y desambiguación de nombres de variables , funciones y métodos , mediante análisis estático . [4] [5]

La función aparece en muchos entornos de programación. [6] [7] Las implementaciones incluyen IntelliSense en Visual Studio Code . El término se popularizó originalmente como "lista de selección" y algunas implementaciones aún se refieren a él como tal. [8]

Refactorización

Los IDE avanzados brindan soporte para la refactorización automatizada . [3]

Control de versiones

Se espera que un IDE proporcione un control de versiones integrado , para poder interactuar con los repositorios de código fuente. [3]

Depuración

Los IDE también se utilizan para la depuración, utilizando un depurador integrado , con soporte para establecer puntos de interrupción en el editor, representación visual de pasos, etc. [9]

Búsqueda de código

Los IDE pueden proporcionar soporte para la búsqueda de código. La búsqueda de código tiene dos significados diferentes. En primer lugar, significa buscar declaraciones de clases y funciones, usos, lectura/escritura de variables y campos, etc. Los IDE pueden utilizar diferentes tipos de interfaz de usuario para la búsqueda de código, por ejemplo, widgets basados ​​en formularios [10] e interfaces basadas en lenguaje natural. En segundo lugar, significa buscar una implementación concreta de alguna funcionalidad específica. [11]

Programación visual

La programación visual es un escenario de uso en el que generalmente se requiere un IDE. Visual Basic permite a los usuarios crear nuevas aplicaciones moviendo programación, bloques de construcción o nodos de código para crear diagramas de flujo o diagramas de estructura que luego se compilan o interpretan. Estos diagramas de flujo a menudo se basan en el lenguaje de modelado unificado .

Esta interfaz se ha popularizado con el sistema Lego Mindstorms y está siendo examinada activamente por varias empresas que desean capitalizar el poder de los navegadores personalizados como los que se encuentran en Mozilla . KTechlab admite flowcode y es un IDE y simulador de código abierto popular para desarrollar software para microcontroladores. La programación visual también es responsable del poder de la programación distribuida (cf. LabVIEW y software EICASLAB). Un sistema de programación visual temprano, Max , fue modelado a partir de un diseño de sintetizador analógico y se ha utilizado para desarrollar software de interpretación musical en tiempo real desde la década de 1980. Otro ejemplo temprano fue Prograph , un sistema basado en flujo de datos desarrollado originalmente para Macintosh . El entorno de programación gráfica "Grape" se utiliza para programar kits de robot qfix .

Este enfoque también se utiliza en software especializado como Openlab, donde los usuarios finales desean la flexibilidad de un lenguaje de programación completo, sin la curva de aprendizaje tradicional asociada a él.

Soporte de idiomas

Algunos IDE admiten varios lenguajes, como GNU Emacs , IntelliJ IDEA , Eclipse , MyEclipse , NetBeans , MonoDevelop , JDoodle o PlayCode.

El soporte para lenguajes alternativos es proporcionado a menudo por plugins , permitiendo que sean instalados en el mismo IDE al mismo tiempo. Por ejemplo, Flycheck es una extensión moderna de verificación de sintaxis sobre la marcha para GNU Emacs 24 con soporte para 39 lenguajes. [12] Otro ejemplo es JDoodle, un IDE en línea basado en la nube que soporta 88 lenguajes. [1] Eclipse y Netbeans tienen plugins para C / C++ , Ada , GNAT (por ejemplo AdaGIDE), Perl , Python , Ruby y PHP , los cuales son seleccionados automáticamente en base a la extensión del archivo, el entorno o la configuración del proyecto.

Implementación

Los IDE se pueden implementar en varios lenguajes, por ejemplo:

Actitudes en diferentes plataformas informáticas

Los programadores de Unix pueden combinar herramientas POSIX de línea de comandos en un entorno de desarrollo completo, capaz de desarrollar programas grandes como el núcleo Linux y su entorno. [13] En este sentido, todo el sistema Unix funciona como un IDE. [14] La cadena de herramientas de software libre GNU (incluyendo GNU Compiler Collection (GCC), GNU Debugger (GDB) y GNU make ) está disponible en muchas plataformas, incluyendo Windows. [15] La filosofía omnipresente de Unix de "todo es un flujo de texto" permite a los desarrolladores que prefieren herramientas orientadas a la línea de comandos utilizar editores con soporte para muchas de las herramientas de construcción estándar de Unix y GNU, construyendo un IDE con programas como Emacs [16] [17] [18] o Vim . Data Display Debugger está pensado para ser una interfaz gráfica avanzada para muchas herramientas estándar de depuración basadas en texto . Algunos programadores prefieren gestionar makefiles y sus derivados a las herramientas de construcción de código similares incluidas en un IDE completo. Por ejemplo, la mayoría de los colaboradores de la base de datos PostgreSQL utilizan make y GDB directamente para desarrollar nuevas características. [19] Incluso cuando se crea PostgreSQL para Microsoft Windows utilizando Visual C++ , los scripts de Perl se utilizan como reemplazo de make en lugar de confiar en cualquier característica del IDE. [20] Algunos IDE de Linux como Geany intentan proporcionar una interfaz gráfica para las operaciones de compilación tradicionales.

En las distintas plataformas de Microsoft Windows , las herramientas de línea de comandos para el desarrollo rara vez se utilizan. Por lo tanto, existen muchos productos comerciales y no comerciales. Sin embargo, cada uno tiene un diseño diferente que suele generar incompatibilidades. La mayoría de los principales proveedores de compiladores para Windows aún proporcionan copias gratuitas de sus herramientas de línea de comandos, incluidas las de Microsoft ( Visual C++ , Platform SDK , .NET Framework SDK, utilidad nmake ).

Los IDE siempre han sido populares en los sistemas operativos clásicos Mac OS y macOS de Apple Macintosh , desde los entornos Macintosh Programmer's Workshop , Turbo Pascal , THINK Pascal y THINK C de mediados de los años 80. Actualmente, los programadores de macOS pueden elegir entre IDE nativos como Xcode y herramientas de código abierto como Eclipse y Netbeans . ActiveState Komodo es un IDE propietario en varios idiomas compatible con macOS.

En línea

Un entorno de desarrollo integrado en línea , también conocido como IDE web o IDE en la nube, es un IDE basado en navegador que permite el desarrollo de software o desarrollo web. [21] Se puede acceder a un IDE en línea desde un navegador web, lo que permite un entorno de trabajo portátil. Un IDE en línea no suele contener todas las mismas características que un IDE tradicional o de escritorio, aunque todas las características básicas de IDE, como el resaltado de sintaxis, suelen estar presentes.

Un entorno de desarrollo integrado (IDE) para dispositivos móviles es una aplicación de software que ofrece un conjunto completo de herramientas para el desarrollo de software en plataformas móviles. A diferencia de los IDE de escritorio tradicionales, los IDE para dispositivos móviles están diseñados para ejecutarse en teléfonos inteligentes y tabletas, lo que permite a los desarrolladores escribir, depurar e implementar código directamente desde sus dispositivos móviles.

Véase también

Referencias

  1. ^ "Interaktives Programmieren als Systems-Schlager" de Computerwoche ( alemán )
  2. ^ "Índice de los mejores entornos de desarrollo integrados TOP IDE" . pypl.github.io . Consultado el 8 de agosto de 2023 .
  3. ^ abc "Curso CS350 Entornos de desarrollo integrados". cs.odu.edu . Old Dominion University . Consultado el 10 de octubre de 2018 .
  4. ^ Robbes, Romain; Lanza, Michele (2008). "Cómo el historial del programa puede mejorar la finalización del código". 23.ª Conferencia internacional IEEE/ACM sobre ingeniería de software automatizada de 2008. págs. 317–326. doi :10.1109/ASE.2008.42. ISBN 978-1-4244-2187-9.S2CID2093640  .​
  5. ^ "Completado de código, episodio 1: escenarios y requisitos". El blog de JetBrains . 28 de mayo de 2021 . Consultado el 17 de noviembre de 2023 .
  6. ^ Preguntas frecuentes sobre CodeBlocks. Wiki.codeblocks.org (1 de febrero de 2014). Consultado el 4 de abril de 2014.
  7. ^ Documentación de Qt: cómo completar el código. Consultado el 7 de julio de 2015.
  8. ^ Uso de Dynamic Apex para recuperar valores de listas de selección | Blog de Developer Force. Blogs.developerforce.com (9 de diciembre de 2008). Consultado el 4 de abril de 2014.
  9. ^ "Software de programación y el IDE". BBC Bitesize . Archivado desde el original el 9 de octubre de 2018. Consultado el 10 de octubre de 2018 .
  10. ^ "Libro de cocina Eclipse - Búsqueda de código". O'Reilly .
  11. ^ Stolee, Kathryn T.; Elbaum, Sebastian; Dobos, Daniel (2014). "Resolución de la búsqueda de código fuente". ACM Transactions on Software Engineering and Methodology . 23 (3): 1–45. doi :10.1145/2581377. ISSN  1049-331X. S2CID  8558710.
  12. ^ "Introducción - Flycheck 0.18-cvs". Leer la documentación . Archivado desde el original el 10 de marzo de 2014. Consultado el 10 de marzo de 2014 .
  13. ^ Rehman, Christopher Paul, Christopher R. Paul. "La plataforma de desarrollo Linux: configuración, uso y mantenimiento de un entorno de programación completo". 2002. ISBN 0-13-009115-4 
  14. ^ "UnixEsUnaIde".
  15. ^ ""Utilice Emacs con Microsoft Visual C++... utilice Emacs como IDE"". Archivado desde el original el 4 de julio de 2013.
  16. ^ "Emacs: el IDE de software libre | Linux Journal". www.linuxjournal.com .
  17. ^ "El libro de recetas Common Lisp: uso de Emacs como IDE de Lisp". cl-cookbook.sourceforge.net .
  18. ^ "Emacs como IDE de Perl". obsidianrook.com . Archivado desde el original el 21 de mayo de 2016. Consultado el 11 de mayo de 2011 .
  19. ^ "Preguntas frecuentes para desarrolladores - Wiki de PostgreSQL". wiki.postgresql.org .
  20. ^ "Capítulo 18. Instalación desde el código fuente en Windows". Documentación de PostgreSQL . 29 de septiembre de 2021.
  21. ^ "Herramientas basadas en la web frente a herramientas basadas en el escritorio – EclipseSource". eclipsesource.com . 19 de junio de 2018.