Un entorno de desarrollo integrado ( IDE ) es una aplicación de software que proporciona a los programadores de computadoras 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 NetBeans y Eclipse , contienen el compilador , el intérprete o ambos necesarios; otros, como SharpDevelop y Lazarus , 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
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 solo programa en el que se realiza todo el desarrollo. Este programa generalmente 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 , GCC o make .
Uno de los objetivos del IDE es reducir la configuración necesaria para juntar múltiples 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 solo ayudar con las tareas de configuración. Por ejemplo, el código se puede analizar continuamente mientras se edita, lo que proporciona información 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 asemeja más a los paradigmas de programación del lenguaje. Sin embargo, hay muchos IDE en varios idiomas.
Si bien la mayoría de los IDE modernos son gráficos, los IDE basados en texto como Turbo Pascal eran de uso popular antes de la disponibilidad de sistemas de ventanas como Microsoft Windows y X Window System (X11). Por lo general, usan teclas de función o teclas de acceso rápido para ejecutar comandos o macros de uso frecuente.
Historia
Los IDE inicialmente se hicieron posibles cuando se desarrollaban a través de una consola o terminal . Los primeros sistemas no podían soportar uno, ya que los programas se preparaban usando diagramas de flujo, ingresando programas con tarjetas perforadas (o cinta de papel, etc.) antes de enviarlos a un compilador . Dartmouth BASIC fue el primer lenguaje que se creó con un IDE (y también fue el primero en ser diseñado para usarse 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, integró la 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 se instaló para 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 las décadas de 1970 y 1980. Hoy uno de los últimos Maestros que puedo encontrar en el Museo de Tecnología de la Información en Arlington en Texas.
Uno de los primeros IDE con un concepto de complemento fue Softbench . En 1995 Computerwoche comentó que el uso de un IDE no fue bien recibido por los desarrolladores, ya que limitaría su creatividad.
A partir de enero de 2021, los tres IDE cuyas páginas de descarga se buscan con mayor frecuencia son Visual Studio , Eclipse y Android Studio . [2]
Temas
Resaltado de sintaxis
El editor IDE generalmente proporciona resaltado de sintaxis , puede mostrar tanto las estructuras, las palabras clave del idioma como los errores de sintaxis con colores visualmente distintos y efectos de fuente. [3]
Finalización de código
La finalización de código es una característica IDE importante, destinada a acelerar la programación. Los IDE modernos incluso tienen finalización de código inteligente .
Refactorización
Los IDE avanzados brindan soporte para la refactorización automatizada . [3]
Control de versiones
Se espera que un IDE proporcione control de versiones integrado para interactuar con los repositorios de origen. [3]
Depuración
Los IDE también se utilizan para depurar, utilizando un depurador integrado , con soporte para establecer puntos de interrupción en el editor, representación visual de pasos, etc. [4]
Búsqueda de código
Los IDE pueden proporcionar soporte avanzado para la búsqueda de código: para encontrar declaraciones de clases y funciones, usos, lectura / escritura de variables y campos, etc. Los IDE pueden usar diferentes tipos de interfaz de usuario para la búsqueda de código, por ejemplo, widgets basados en formularios [5] e interfaces basadas en lenguaje natural. [6]
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 es compatible con el código de flujo y es un popular IDE y simulador de código abierto para desarrollar software para microcontroladores. La programación visual también es responsable del poder de la programación distribuida (cf. software LabVIEW y EICASLAB ). Uno de los primeros sistemas de programación visual, Max , se inspiró en el diseño de un 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 con uno.
Ayuda de idioma
Algunos IDE admiten varios lenguajes, como GNU Emacs basado en C y Emacs Lisp , e IntelliJ IDEA , Eclipse , MyEclipse o NetBeans , todos basados en Java , o MonoDevelop , basado en C # , o PlayCode.
Los complementos a menudo brindan soporte para idiomas alternativos , lo que les permite instalarse en el mismo IDE al mismo tiempo. Por ejemplo, Flycheck es una moderna extensión de verificación de sintaxis sobre la marcha para GNU Emacs 24 con soporte para 39 idiomas. [7] Eclipse y Netbeans tienen complementos para C / C ++ , Ada , GNAT (por ejemplo AdaGIDE ), Perl , Python , Ruby y PHP , que se seleccionan automáticamente según la extensión del archivo, el entorno o la configuración del proyecto.
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 kernel de Linux y su entorno. [8] En este sentido, todo el sistema Unix funciona como un IDE. [9] Las herramientas GNU de software libre ( GNU Compiler Collection (GCC), GNU Debugger (GDB) y GNU make ) están disponibles en muchas plataformas, incluida Windows. [10] La filosofía generalizada de Unix de "todo es un flujo de texto" permite a los desarrolladores que prefieren las 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 [11] [12] [13] o Vim . El depurador de visualización de datos está destinado a ser una interfaz gráfica avanzada para muchas herramientas estándar de depuración basadas en texto . Algunos programadores prefieren administrar archivos MAKE y sus derivados a las herramientas de creació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 funciones. [14] Incluso cuando se crea PostgreSQL para Microsoft Windows usando Visual C ++ , los scripts de Perl se utilizan como reemplazo de make en lugar de depender de las características del IDE. [15] Algunos IDE de Linux, como Geany, intentan proporcionar una interfaz gráfica para las operaciones de compilación tradicionales.
En las diversas plataformas de Microsoft Windows , rara vez se utilizan herramientas de línea de comandos para el desarrollo. En consecuencia, existen muchos productos comerciales y no comerciales. Sin embargo, cada uno tiene un diseño diferente que comúnmente crea incompatibilidades. La mayoría de los principales proveedores de compiladores para Windows todavía ofrecen copias gratuitas de sus herramientas de línea de comandos, incluido Microsoft ( Visual C ++ , Platform SDK , .NET Framework SDK, utilidad nmake ).
Los IDE siempre han sido populares en los entornos Mac OS y macOS clásicos de Apple Macintosh , que se remontan a los entornos Macintosh Programmer's Workshop , Turbo Pascal , THINK Pascal y THINK C de mediados de la década de 1980. 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 patentado en varios idiomas compatible con macOS.
Inteligencia artificial
Algunas características de los IDE pueden beneficiarse de los avances en IA. [16] En particular, se puede recopilar información de las acciones de IDE entre desarrolladores para aumentar las funciones de IDE. [17] Por ejemplo, un enfoque basado en datos para la finalización del código da como resultado la finalización inteligente del código .
Entorno de desarrollo integrado web
Un entorno de desarrollo integrado en la web (Web IDE), también conocido como IDE en línea o IDE en la nube, es un IDE basado en navegador que permite el desarrollo de software o el desarrollo web. [18] Se puede acceder a un IDE web desde un navegador web, lo que permite un entorno de trabajo portátil. Un IDE web no suele contener todas las mismas funciones que un IDE tradicional o de escritorio, aunque todas las funciones básicas del IDE, como el resaltado de sintaxis, suelen estar presentes.
Ver también
- Comparación de entornos de desarrollo integrados
- Entorno de desarrollo colaborativo (CDE)
- Ingeniería de software asistida por computadora (CASE)
- Entorno de desarrollo integrado del juego
- Interfaz de múltiples documentos § Interfaz de estilo IDE (MDI)
- Desarrollo rápido de aplicaciones (RAD)
- Bucle de lectura-evaluación-impresión (REPL)
- Herramientas de análisis de código
- Herramientas de refactorización de código fuente
- Herramientas de creación de software (el compilador , el enlazador , etc., y la herramienta de automatización de la creación utilizada para controlarlos)
- Control de versiones , también llamado repositorio de origen (gestión de la configuración)
- Protocolo de servidor de idiomas
- Facilidad de programación estructurada
Referencias
- ^ "Interaktives Programmieren als Systems-Schlager" de Computerwoche ( alemán )
- ^ Índice IDE superior
- ^ a b c "Entornos de desarrollo integrados del curso CS350" . cs.odu.edu . Universidad Old Dominion . Consultado el 10 de octubre de 2018 .
- ^ "Software de programación y el IDE" . BBC Bitesize . Consultado el 10 de octubre de 2018 .
- ^ "Libro de cocina de Eclipse - Código de búsqueda" . O'Reilly .
- ^ Kimmig, Markus; Monperrus, Martin; Mezini, Mira (2011). "Consulta de código fuente con lenguaje natural" . 2011 26th IEEE / ACM International Conference on Automated Software Engineering (ASE 2011) . págs. 376–379. arXiv : 1205.6361 . doi : 10.1109 / ASE.2011.6100076 . ISBN 978-1-4577-1639-3. S2CID 6898947 .
- ^ "Introducción - Flycheck 0.18-cvs" . Lea los documentos . Archivado desde el original el 10 de marzo de 2014 . Consultado el 10 de marzo de 2014 .
- ^ 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
- ^ "UnixIsAnIde" .
- ^ "Use Emacs con Microsoft Visual C ++ ... use Emacs como un IDE" Archivado el 4 de julio de 2013 en Wayback Machine
- ^ "Emacs: el IDE de software libre"
- ^ "Uso de Emacs como Lisp IDE"
- ^ "Emacs como un IDE de Perl"
- ^ Preguntas frecuentes para desarrolladores de PostgreSQL
- ^ Instalación de PostgreSQL desde el código fuente en Windows
- ^ Williams, Christina Mercer y Hannah. "Herramientas de inteligencia artificial que todos los desarrolladores deben probar" . Techworld .
- ^ Bruch, Marcel; Bodden, Eric; Monperrus, Martin; Mezini, Mira. "IDE 2.0: inteligencia colectiva en el desarrollo de software" . doi : 10.1145 / 1882362.1882374 . S2CID 7637561 . Cite journal requiere
|journal=
( ayuda ) - ^ "Herramientas basadas en la Web frente a las basadas en escritorio - EclipseSource" . eclipsesource.com .