Eclipse es un entorno de desarrollo integrado (IDE) utilizado en programación informática . [5] Contiene un espacio de trabajo básico y un sistema de complementos extensible para personalizar el entorno. Es el segundo IDE más popular para el desarrollo de Java y, hasta 2016, era el más popular. [6] Eclipse está escrito principalmente en Java y su uso principal es desarrollar aplicaciones Java, [7] pero también puede usarse para desarrollar aplicaciones en otros lenguajes de programación a través de complementos, incluidos Ada , ABAP , C , C++ , C#. , Clojure , COBOL , D , Erlang , Fortran , Groovy , Haskell , JavaScript , Julia , [8] Lasso , Lua , NATURAL , Perl , PHP , Prolog , Python , R , Ruby (incluido el marco Ruby on Rails ), Rust , Scala y Esquema . También se puede utilizar para desarrollar documentos con LaTeX (a través de un complemento TeXlipse) y paquetes para el software Mathematica . Los entornos de desarrollo incluyen las herramientas de desarrollo Java (JDT) de Eclipse para Java y Scala, Eclipse CDT para C/C++ y Eclipse PDT para PHP, entre otros. [9]
La base de código inicial se originó en IBM VisualAge . [10] El kit de desarrollo de software (SDK) de Eclipse, que incluye las herramientas de desarrollo de Java, está destinado a desarrolladores de Java. Los usuarios pueden ampliar sus capacidades instalando complementos escritos para la plataforma Eclipse, como kits de herramientas de desarrollo para otros lenguajes de programación, y pueden escribir y contribuir con sus propios complementos. Desde Eclipse 3.0 (lanzado en 2004), los complementos se instalan y administran como "paquetes" utilizando Equinox , una implementación de OSGi . [11]
El SDK de Eclipse es un software gratuito y de código abierto , publicado bajo los términos de la Licencia pública de Eclipse , aunque es incompatible con la Licencia pública general GNU . [12] Fue uno de los primeros IDE que se ejecutó bajo GNU Classpath y se ejecuta sin problemas bajo IcedTea .
Eclipse se inspiró en la familia VisualAge de productos de entorno de desarrollo integrado (IDE) basada en Smalltalk . [10] Aunque fue bastante exitoso, un inconveniente importante de los productos VisualAge fue que el código desarrollado no estaba en un modelo de ingeniería de software basado en componentes . En cambio, todo el código de un proyecto se guardaba en una base de datos comprimida utilizando técnicas SCID (algo así como un archivo zip pero en .dat). No se podía acceder fácilmente a las clases individuales, y menos aún fuera de la herramienta. Un equipo principalmente del laboratorio de IBM Cary, Carolina del Norte, desarrolló el nuevo producto como reemplazo basado en Java. [13] [ verificación fallida ] En noviembre de 2001, se formó un consorcio con una junta directiva para promover el desarrollo de Eclipse como software de código abierto . Se estima que IBM ya había invertido casi 40 millones de dólares en ese momento. [14] Los miembros originales eran Borland , IBM , Merant , QNX Software Systems , Rational Software , Red Hat , SuSE , TogetherSoft y WebGain . [15] El número de delegados aumentó a más de 80 a finales de 2003. En enero de 2004, se creó la Fundación Eclipse . [dieciséis]
Eclipse 3.0 (lanzado el 21 de junio de 2004) seleccionó las especificaciones de la plataforma de servicios OSGi como arquitectura de tiempo de ejecución. [17]
La Association for Computing Machinery reconoció a Eclipse con el premio ACM Software System Award 2011 el 26 de abril de 2012. [18]
La Licencia Pública de Eclipse (EPL) es la licencia fundamental bajo la cual se publican los proyectos de Eclipse. [19] Algunos proyectos requieren una licencia dual, para la cual está disponible la Licencia de Distribución Eclipse (EDL), aunque el uso de esta licencia debe solicitarse y considerarse caso por caso.
Eclipse se lanzó originalmente bajo la Licencia pública común , pero luego se le volvió a otorgar la licencia bajo la Licencia pública de Eclipse. La Free Software Foundation ha dicho que ambas licencias son licencias de software libre , pero son incompatibles con la Licencia Pública General GNU (GPL). [20]
Según Lee Nackman, director de tecnología de la división Rational de IBM (que se originó en 2003) en ese momento, el nombre "Eclipse" (que data al menos de 2001) no era un juego de palabras sobre Sun Microsystems , ya que la principal competencia del producto en el momento de El nombre era Microsoft Visual Studio , que Eclipse iba a eclipsar. [21]
A diferentes versiones de Eclipse se les han dado diferentes nombres relacionados con la ciencia. A las versiones que llevan el nombre de Calisto , Europa y Ganímedes , que son lunas de Júpiter , les siguió una versión que lleva el nombre de Galileo , el descubridor de esas lunas. A estos les siguieron dos nombres con temas solares, Helios de la mitología griega e Índigo , uno de los siete colores del arco iris (producido por el sol). La versión posterior, Juno, tiene un triple significado: figura mitológica romana , asteroide y nave espacial a Júpiter . [22] Kepler , Luna y Marte continuaron el tema de la astronomía, y luego Neón y Oxígeno constituyeron un tema de elementos químicos . Photon representó un regreso a los nombres con temas solares.
A partir de 2018 [actualizar], se abandonó el esquema alfabético para alinearse mejor con la nueva estrategia de lanzamiento simultáneo. [23] Las versiones se denominan en el formato AAAA-MM para reflejar las versiones trimestrales, comenzando con la versión 4.9 denominada 2018-09. [24]
Desde 2006, la Fundación coordina una Lanzamiento Simultáneo anual . [25] Cada versión incluye la plataforma Eclipse y varios otros proyectos de Eclipse.
Desde 2008 hasta 2018, cada Liberación Simultánea ocurrió el cuarto miércoles de junio. En 2018, el proyecto cambió a versiones trimestrales (13 semanas) AAAA-MM sin versiones de servicios intermedios. [26]
Eclipse utiliza complementos para proporcionar toda la funcionalidad dentro y encima del sistema de ejecución. Su sistema de tiempo de ejecución se basa en Equinox , una implementación de la especificación del marco central OSGi . [80]
Además de permitir que la plataforma Eclipse se amplíe utilizando otros lenguajes de programación , como C y Python , el marco del complemento permite que la plataforma Eclipse funcione con lenguajes de composición tipográfica como LaTeX [81] y aplicaciones de red como telnet y sistemas de gestión de bases de datos. . La arquitectura del complemento admite la escritura de cualquier extensión deseada en el entorno, como la gestión de la configuración . El SDK de Eclipse proporciona soporte para Java y CVS , y complementos de terceros proporcionan soporte para otros sistemas de control de versiones .
Con la excepción de un pequeño kernel en tiempo de ejecución, todo en Eclipse es un complemento. Por lo tanto, cada complemento desarrollado se integra con Eclipse de la misma manera que otros complementos; en este sentido, todas las características son "iguales". [82] Eclipse proporciona complementos para una amplia variedad de funciones, algunas de las cuales provienen de terceros que utilizan modelos gratuitos y comerciales. Algunos ejemplos de complementos incluyen el Lenguaje de modelado unificado (UML), Sequence y otros diagramas UML, un complemento para DB Explorer y muchos más.
El SDK de Eclipse incluye las herramientas de desarrollo Java (JDT) de Eclipse, que ofrecen un IDE con un compilador incremental de Java integrado y un modelo completo de los archivos fuente de Java. Esto permite técnicas avanzadas de refactorización y análisis de código. El IDE también hace uso de un espacio de trabajo , en este caso un conjunto de metadatos en un espacio de archivos plano que permite modificaciones de archivos externos siempre que el recurso del espacio de trabajo correspondiente se actualice posteriormente.
Eclipse implementa los elementos de control gráfico del kit de herramientas de Java llamado Standard Widget Toolkit (SWT), mientras que la mayoría de las aplicaciones Java utilizan el estándar Java Abstract Window Toolkit (AWT), Swing o JavaFX . La interfaz de usuario de Eclipse también utiliza una capa de interfaz gráfica de usuario intermedia llamada JFace , que simplifica la construcción de aplicaciones basadas en SWT. Eclipse se creó para ejecutarse en Wayland durante un proyecto Google Summer of Code (GSoC) en 2014. [83]
A partir de 2017 [actualizar], los paquetes de idiomas desarrollados por el Proyecto Babel proporcionan traducciones a más de 40 idiomas naturales . [4]
Eclipse proporciona la plataforma de cliente enriquecido (RCP) para desarrollar aplicaciones de propósito general.
Los siguientes componentes constituyen la plataforma de cliente enriquecido:
Ejemplos de aplicaciones de cliente enriquecido basadas en Eclipse son:
Eclipse admite el desarrollo para Tomcat , GlassFish y muchos otros servidores y, a menudo, es capaz de instalar el servidor requerido (para el desarrollo) directamente desde el IDE. Admite la depuración remota, lo que permite al usuario observar las variables y recorrer el código de una aplicación que se ejecuta en el servidor adjunto.
El proyecto Eclipse Web Tools Platform (WTP) es una extensión de la plataforma Eclipse con herramientas para desarrollar aplicaciones web y Java EE. Incluye editores gráficos y de código fuente para una variedad de lenguajes, asistentes y aplicaciones integradas para simplificar el desarrollo, y herramientas y API para respaldar la implementación, ejecución y prueba de aplicaciones. [85]
El proyecto Modelado contiene todos los proyectos oficiales de la Fundación Eclipse que se centran en tecnologías de desarrollo basadas en modelos. Todos son compatibles con el Eclipse Modeling Framework creado por IBM. Esos proyectos se dividen en varias categorías: transformación de modelos, herramientas de desarrollo de modelos, desarrollo de sintaxis concreta, desarrollo de sintaxis abstracta, tecnología e investigación y amalgama.
Los proyectos de transformación de modelos utilizan modelos basados en Eclipse Modeling Framework (EMF) como entrada y producen un modelo o texto como salida. Los proyectos de transformación de modelo a modelo incluyen ATLAS Transformation Language (ATL), un lenguaje de transformación de código abierto y un conjunto de herramientas que se utiliza para transformar un modelo determinado o generar un nuevo modelo a partir de un modelo EMF determinado. Los proyectos de transformación de modelo a texto contienen Acceleo , una implementación de MOFM2T , un modelo estándar a lenguaje de texto del Object Management Group (OMG). El generador de código Acceleo puede generar cualquier lenguaje textual (Java, PHP, Python, etc.) a partir de modelos basados en EMF definidos con cualquier metamodelo ( Lenguaje de modelado unificado (UML), Lenguaje de modelado de sistemas (SysML), etc.). Es de código abierto.
Los proyectos de herramientas de desarrollo de modelos son implementaciones de varios estándares de modelado utilizados en la industria y sus conjuntos de herramientas. Entre esos proyectos se pueden encontrar implementaciones de varios estándares:
El proyecto Concrete Syntax Development contiene Graphical Modeling Framework, un marco basado en Eclipse dedicado a la representación gráfica de modelos basados en EMF. [ cita necesaria ]
El proyecto de desarrollo de sintaxis abstracta alberga el marco de modelado de Eclipse, núcleo de la mayor parte del proyecto de modelado de la Fundación Eclipse y el marco disponible para EMF como objetos de datos conectados (CDO), consulta EMF o validación de EMF.
Los proyectos de Tecnología e Investigación son prototipos de proyectos de Modelado; Este proyecto se utiliza para albergar todos los proyectos de modelado de la Fundación Eclipse durante su fase de incubación. [ cita necesaria ]
Amalgam proporciona el empaquetado y la integración entre todas las herramientas de modelado disponibles para el paquete Eclipse dedicado a las herramientas de modelado. [86]
La gestión del ciclo de vida de las aplicaciones (ALM) y la gestión de tareas en Eclipse necesitan un componente opcional llamado Mylyn ( / ˈ m aɪ l ɪ n / ), una implementación de código abierto de la interfaz centrada en tareas . Proporciona una API para herramientas que incorporan la interfaz centrada en tareas. Para los desarrolladores de software, ayuda al desarrollador a trabajar de manera eficiente con muchas tareas diferentes (como errores, informes de problemas o nuevas funciones). Las tareas están integradas en Mylyn. Para todas las tareas que se han integrado, Mylyn monitorea la actividad del usuario e intenta identificar información relevante para la tarea en cuestión. Utiliza este contexto de tarea para centrar la interfaz de usuario de Eclipse en la información relacionada. Mylyn puede integrarse con repositorios como Bugzilla , Trac , Redmine , Mantis , [87] JIRA , Unfuddle, [88] y GitHub . [89] Se centra en mejorar la productividad reduciendo la búsqueda, el desplazamiento y la navegación. Al hacer explícito el contexto de la tarea, Mylyn también pretende facilitar la realización de múltiples tareas, la planificación, la reutilización de esfuerzos anteriores y el intercambio de conocimientos.
El nombre del proyecto proviene de la mielina , una capa eléctricamente aislante que rodea los axones de las neuronas. [90] El nombre original de este proyecto, "Mylar", replicaba una marca registrada de una compañía cinematográfica boPET , por lo que la Fundación Eclipse cambió el nombre del proyecto. [91]
Las características de Eclipse IDE incluyen editor de texto con coloración de sintaxis, asistencia de codificación, finalización de código , refactorización de código , análisis de código con sugerencias de "solución rápida" junto con depuración de código . [92]
Junto con el soporte nativo para OSGi, se agregó soporte para JPMS a partir de Java 9. [92]
Eclipse admite una amplia selección de extensiones, agregando soporte para Python a través de PyDev , desarrollo de Android a través de ADT de Google (reemplazado por Android Studio desde 2015), JavaFX a través de e(fx)clipse, JavaScript , jQuery y muchos otros en Eclipse Marketplace. Valable es un complemento de Vala para Eclipse. [93]
Además de las advertencias integradas del compilador de Java, hay complementos adicionales disponibles para linting para mejorar la calidad y la coherencia del código, como SpotBugs y Sonar. [94] [95]
La compatibilidad con herramientas de compilación como Ant , Maven , Make y CMake incluye la capacidad de reemplazar el formato de archivo de proyecto nativo de Eclipse con Maven pom.xml directamente. [96]
Existen varias distribuciones alternativas en el proyecto Eclipse.
El proyecto de herramientas de desarrollo del preprocesador de hipertexto PHP (PHP) proporciona un marco para la plataforma Eclipse. El proyecto abarca todos los componentes de desarrollo, incluida la finalización de código, el desarrollo de PHP y la facilitación de la extensibilidad. Aprovecha la plataforma de herramientas web Eclipse (WTP) y el kit de herramientas de lenguajes dinámicos (DLTK) existentes. [97]
Las herramientas de desarrollo de Android (ADT) fueron reemplazadas en 2015 por el propio complemento de la fundación Eclipse, llamado Andmore: Development Tools for Android , [98] después de que Google interrumpiera el desarrollo de su complemento para Eclipse IDE, que está diseñado para proporcionar un entorno integrado. en el que construir aplicaciones de Android. ADT/Andmore amplía las capacidades de Eclipse para permitir a los desarrolladores configurar nuevos proyectos de Android, crear una interfaz de usuario de aplicación, agregar paquetes basados en la API de Android Framework, depurar sus aplicaciones utilizando las herramientas del SDK de Android y exportar archivos .apk firmados (o sin firmar). para distribuir sus aplicaciones. Está disponible gratuitamente para descargar. ADT de Google fue el IDE oficial para Android hasta 2015, pero fue reemplazado por Andmore de Eclipse y el Android Studio oficial . [99] [100]
El proyecto Eclipse Web Tools Platform (WTP) amplía la plataforma Eclipse con herramientas para desarrollar aplicaciones web y Java EE. Incluye editores gráficos y de código fuente para una variedad de lenguajes, asistentes y aplicaciones integradas para simplificar el desarrollo, herramientas para respaldar la implementación, ejecución y prueba de aplicaciones, y API para ampliar su funcionalidad.
{{cite book}}
: Mantenimiento CS1: falta el editor de la ubicación ( enlace )