Eclipse (software)
Eclipse es un entorno de desarrollo integrado (IDE) utilizado en la programación informática. Contiene un espacio de trabajo base y un sistema de complemento extensible para personalizar el entorno. Es el segundo IDE más popular para el desarrollo de Java y, hasta 2016, fue el más popular. Eclipse está escrito principalmente en Java y su uso principal es para desarrollar aplicaciones Java, pero también se puede usar 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, Lasso, Lua, NATURAL, Perl, PHP, Prolog, Python, R, Ruby (incluido el marco Ruby on Rails), Rust, Scala y Scheme. También se puede utilizar para desarrollar documentos con LaTeX (a través de un complemento de 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.
El código base inicial se originó en IBM VisualAge. El kit de desarrollo de software (SDK) de Eclipse, que incluye las herramientas de desarrollo de Java, está destinado a los 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 módulos de complemento. Desde la introducción de la implementación de OSGi (Equinox) en la versión 3 de Eclipse, los complementos se pueden conectar y detener dinámicamente y se denominan paquetes (OSGI).
El kit de desarrollo de software (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 de GNU. Fue uno de los primeros IDE en ejecutarse bajo GNU Classpath y funciona sin problemas bajo IcedTea.
Historia
Eclipse se inspiró en la familia de productos del entorno de desarrollo integrado (IDE) VisualAge basada en Smalltalk. Aunque bastante exitoso, un gran inconveniente de los productos de VisualAge fue que el código desarrollado no estaba en un modelo de ingeniería de software basado en componentes. En su lugar, todo el código de un proyecto se mantuvo en una base de datos comprimida usando técnicas SCID (algo así como un archivo zip pero en un formato patentado llamado.dat). No se podía acceder fácilmente a las clases individuales, ciertamente no fuera de la herramienta. Un equipo principalmente en el laboratorio de IBM Cary, NC, desarrolló el nuevo producto como un reemplazo basado en Java. En noviembre de 2001, se formó un consorcio con una junta directiva para impulsar el desarrollo de Eclipse como software de código abierto. Se estima que IBM ya había invertido casi $ 40 millones en ese momento. Los miembros originales fueron Borland, IBM, Merant, QNX Software Systems, Rational Software, Red Hat, SuSE, TogetherSoft y WebGain. El número de administradores aumentó a más de 80 a fines de 2003. En enero de 2004, se creó la Fundación Eclipse.
Eclipse 3.0 (lanzado el 21 de junio de 2004) seleccionó las especificaciones de la plataforma de servicio OSGi como arquitectura de tiempo de ejecución.
La Association for Computing Machinery reconoció a Eclipse con el premio ACM Software Systems Award 2011 el 26 de abril de 2012.
Licencias
La Licencia Pública de Eclipse (EPL) es la licencia fundamental bajo la cual se publican los proyectos de Eclipse. Algunos proyectos requieren licencia dual, para lo cual está disponible la Licencia de distribución de Eclipse (EDL), aunque el uso de esta licencia debe solicitarse y se considera caso por caso.
Eclipse se lanzó originalmente bajo la Licencia pública común, pero luego se 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).
Nombre
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 de al menos 2001) no era un juego de palabras de Sun Microsystems, ya que la principal competencia del producto en el momento de nombrarlo era Microsoft Visual Studio, que Eclipse iba a eclipsar.
Las diferentes versiones de Eclipse han recibido diferentes nombres relacionados con la ciencia. Las versiones que llevan el nombre de Calisto, Europa y Ganímedes, que son lunas de Júpiter, fueron seguidas por una versión que lleva el nombre de Galileo, el descubridor de esas lunas. Estos fueron seguidos por dos nombres con temas solares, Helios de la mitología griega e Indigo, uno de los siete colores del arco iris (que es producido por el sol). La versión posterior, Juno, tiene un triple significado: una figura mitológica romana, un asteroide y una nave espacial a Júpiter. Kepler, Luna y Marte continuaron con 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, se abandonó el esquema alfabético para alinearse mejor con la nueva estrategia de lanzamiento simultáneo. Los lanzamientos se nombran en el formato AAAA-MM para reflejar los lanzamientos trimestrales, comenzando con la versión 4.9 denominada 2018-09.
Lanzamientos
Desde 2006, la Fundación ha coordinado una publicación simultánea anual. Cada versión incluye la plataforma Eclipse y varios otros proyectos de Eclipse.
Desde 2008 hasta 2018, cada lanzamiento simultáneo se produjo el cuarto miércoles de junio. En 2018, el proyecto cambió a versiones YYYY-MM trimestrales (13 semanas) sin versiones de servicio intermedias.
Nombre de la versión | Fecha | Versión de la plataforma | Proyectos | Principales cambios | |
---|---|---|---|---|---|
N/A | 29 de noviembre de 2001 | Versión antigua, ya no se mantiene: 1.0 | Un kit de desarrollo Java de nivel 1.3 o Java debe instalarse en la máquina para ejecutar esta versión de Eclipse. | ||
N/A | 18 de septiembre de 2002 | Versión antigua, ya no se mantiene: 2.0 | |||
N/A | 15 de abril de 2003 | Versión antigua, ya no se mantiene: 2.1 | Un kit de desarrollo Java de nivel 1.4 o Java (JDK) también se puede utilizar para ejecutar Eclipse. Todavía es posible utilizar un kit de desarrollo Java de nivel 1.3 o Java (JDK). | ||
N/A | 21 de junio de 2004 | Versión antigua, ya no se mantiene: 3.0 | A 1.4.1 nivel Java runtime o Java development kit debe instalarse en la máquina para ejecutar esta versión de Eclipse. | ||
N/A | 28 de junio de 2005 | Versión antigua, ya no se mantiene: 3.1 | Añadido Java 5 soporte: genéricos, anotaciones, boxing-unboxing, enums, mejorado para bucle, varargs, importaciones estáticas | ||
Callisto | 26 de junio de 2006 | Versión antigua, ya no se mantiene: 3.2 | Proyectos de Callisto | ||
Europa | 27 de junio de 2007 | Versión antigua, ya no se mantiene: 3.3 | Proyectos Europa | ||
Ganymede | 25 de junio de 2008 | Versión antigua, ya no se mantiene: 3.4 | Proyectos de Ganymede | ||
Galileo | 24 de junio de 2009 | Versión antigua, ya no se mantiene: 3.5 | Proyectos Galileo | ||
Helios | 23 de junio de 2010 | Versión antigua, ya no se mantiene: 3.6 | Proyectos de Helios | ||
Indigo | 22 de junio de 2011 | Versión antigua, ya no se mantiene: 3.7 | Proyectos indigo | Añadido Java 7 support (3.7.1 sr1): Mejora de la Inferencia de Tipo para la Creación de Instance Genérico (Diamond), Multi-catch, declaración de prueba con recursos, Invocación de Métodos de Varargs simplificados, Anillos en conmutación, Literales binarios y subscores en Literales Numéricos, Métodos Polimorfos | |
Juno | 27 de junio de 2012 | Versión antigua, ya no se mantiene: 3.8 y 4.2 | Proyectos Juno | ||
Kepler | 26 de junio de 2013 | Versión antigua, ya no se mantiene: 4.3 | Proyectos Kepler | A Java 6 JRE/JDK se recomienda ejecutar esta versión. | |
Luna | 25 de junio de 2014 | Versión antigua, ya no se mantiene: 4.4 | Proyectos Luna | Soporte integrado Java 8; en la versión anterior, esto fue posible a través de un Java 8 parche Enchufe.
Un Java 7 JRE/JDK es necesario para ejecutar la mayoría de los paquetes basados en esta versión. | |
Marte | 24 de junio de 2015 | Versión antigua, ya no se mantiene: 4.5 | Proyectos de Marte | Se requiere un Java 7 JRE/JDK para ejecutar todos los paquetes basados en esta versión. | |
Neon | 22 de junio de 2016 | Versión antigua, ya no se mantiene: 4.6 | Proyectos Neon | Se requiere un Java 8 JRE/JDK para ejecutar todos los paquetes basados en esta versión. | |
Oxygen | 28 de junio de 2017 | Versión antigua, ya no se mantiene: 4.7 | Proyectos de oxígeno | Oxygen.1a presentó soporte Java 9 y Junit 5 y Oxygen.3a presentó soporte Java 10.
Soporte para las siguientes plataformas basadas en Unix: AIX, Solaris, HP-UX y s390. A partir de esta versión, se requiere un Java 8 o JRE/JDK nuevo para ejecutar Eclipse. | |
Foton | 27 de junio de 2018 | Versión antigua, ya no se mantiene: 4.8 | Proyectos de fotones | Soporte para Windows 32bit y Linux. | |
2018-09 | 19 de septiembre de 2018 | Versión antigua, ya no se mantiene: 4.9 | Proyectos 2018-09 | ||
2018-12 | 19 de diciembre de 2018 | Versión antigua, ya no se mantiene: 4.10 | Proyectos 2018-12 | Añadido soporte para Java 11. | |
2019-03 | 20 de marzo de 2019 | Versión antigua, ya no se mantiene: 4.11 | Proyectos 2019-03 | ||
2019-06 | 19 de junio de 2019 | Versión antigua, ya no se mantiene: 4.12 | Proyectos 2019-06 | ||
2019-09 | 18 de septiembre de 2019 | Versión antigua, ya no se mantiene: 4.13 | Proyectos 2019-09 | ||
2019-12 | 18 de diciembre de 2019 | Versión antigua, ya no se mantiene: 4.14 | Proyectos 2019-12 | ||
2020-03 | 18 de marzo de 2020 | Versión antigua, ya no se mantiene: 4.15 | Proyectos 2020-03 | Actualizar el soporte para idiomas de desarrollo web, contando con el Protocolo del Servidor de Idiomas | |
2020-06 | 17 de junio de 2020 | Versión antigua, ya no se mantiene: 4.16 | Proyectos 2020-06 | ||
2020-09 | 16 de septiembre de 2020 | Versión antigua, ya no se mantiene: 4.17 | Proyectos 2020-09 | A partir de esta versión, se requiere un Java 11 o un nuevo JRE/JDK para ejecutar Eclipse. | |
2020-12 | 16 de diciembre de 2020 | Versión antigua, ya no se mantiene: 4.18 | Proyectos 2020-12 | Un JDK está integrado en la mayoría de los paquetes, por lo que una instalación Java no es un requisito previo. | |
2021-03 | 17 de marzo de 2021 | Versión antigua, ya no se mantiene: 4.19 | 2021-03 proyectos | ||
2021-06 | 16 de junio de 2021 | Versión antigua, ya no se mantiene: 4.20 | 2021-06 proyectos | ||
2021-09 | 15 de septiembre de 2021 | Versión antigua, ya no se mantiene: 4.21 | Proyectos 2021-09 | ||
2021-12 | 8 de diciembre de 2021 | Versión antigua, ya no se mantiene: 4.22 | 2021-12 proyectos | ||
2022-03 | 16 de marzo de 2022 | Versión antigua, ya no se mantiene: 4.23 | 2022-03 proyectos | ||
2022-06 | 15 de junio de 2022 | Versión antigua, ya no se mantiene: 4.24 | 2022-06 proyectos | ||
2022-09 | 14 de septiembre de 2022 | Versión antigua, ya no se mantiene: 4.25 | Proyectos 2022-09 | ||
2022-12 | 7 de diciembre de 2022 | Versión antigua, ya no se mantiene: 4.26 | 2022-12 proyectos | ||
2023-03 | 15 de marzo de 2023 | Versión estable actual: 4.27 | Proyectos 2023-03 | ||
2023-06 | 14 de junio de 2023 | Future release: 4.28 | 2023-06 proyectos |
- ^ Hay una versión 3.8 de Eclipse Juno; no se promueve en la página de descargas principales, pero una distribución empaquetada está disponible para su descarga. Eclipse 3.8 proporciona bugfixes para Indigo & añade soporte Java 7, y su mantenimiento fue doble streamed con 4.2. Las características y complementos equivalentes a una distribución envasada pueden añadirse desde el IDE.
Arquitectura
Eclipse utiliza complementos para proporcionar toda la funcionalidad dentro y sobre el sistema de tiempo 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.
Además de permitir que la plataforma Eclipse se amplíe utilizando otros lenguajes de programación, como C y Python, el marco de complemento permite que la plataforma Eclipse funcione con lenguajes de composición tipográfica como LaTeX 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 para la gestión de la configuración. La compatibilidad con Java y CVS se proporciona en el SDK de Eclipse, con compatibilidad con otros sistemas de control de versiones proporcionados por complementos de terceros.
Con la excepción de un pequeño kernel de 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 "creadas iguales". Eclipse proporciona complementos para una amplia variedad de funciones, algunas de las cuales son de terceros que utilizan modelos gratuitos y comerciales. Entre los ejemplos de complementos se incluyen el lenguaje de modelado unificado (UML), la secuencia y otros diagramas UML, un complemento para DB Explorer y muchos más.
El SDK de Eclipse incluye las herramientas de desarrollo de Java (JDT) de Eclipse y ofrece 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 utiliza un espacio de trabajo, en este caso un conjunto de metadatos sobre un espacio de archivo plano que permite modificaciones de archivos externos siempre que el recurso del espacio de trabajo correspondiente se actualice después.
Eclipse implementa los elementos de control gráfico del kit de herramientas de Java denominado Standard Widget Toolkit (SWT), mientras que la mayoría de las aplicaciones de Java utilizan el Abstract Window Toolkit (AWT) estándar de Java o Swing. La interfaz de usuario de Eclipse también utiliza una capa de interfaz gráfica de usuario intermedia denominada JFace, que simplifica la construcción de aplicaciones basadas en SWT. Eclipse se hizo para ejecutarse en Wayland durante un proyecto Google Summer of Code (GSoC) en 2014.
A partir de 2017, los paquetes de idiomas desarrollados por el Proyecto Babel proporcionan traducciones a más de 40 idiomas naturales.
Plataforma de cliente enriquecido
Eclipse proporciona la plataforma de cliente enriquecido (RCP) para desarrollar aplicaciones de propósito general.
Los siguientes componentes constituyen la plataforma de cliente enriquecido:
- Equinox OSGi – un marco de agrupación estándar
- Plataforma de núcleo – arranque Eclipse, ejecutar plug-ins
- Standard Widget Toolkit (SWT) – un widget portátil toolkit
- JFace – clases de espectadores para llevar la programación de controladores de visión modelo a SWT, amortiguadores de archivos, manipulación de texto, editores de texto
- Eclipse Workbench – vistas, editores, perspectivas, magos
Ejemplos de aplicaciones de cliente enriquecido basadas en Eclipse son:
- IBM Notes 8 and 9
- Adjunto-Novell NetIQ Designer for Identity Manager
- Apache Directory
- Remote Component Environment
- DBeaver, un software cliente SQL
- Desempeño de cartera
- UDig, un software GIS
- AnyLogic, una herramienta de simulación multimétodo
Plataforma de servidor
Eclipse admite el desarrollo para Tomcat, GlassFish y muchos otros servidores y, a menudo, es capaz de instalar el servidor necesario (para el desarrollo) directamente desde el IDE. Admite la depuración remota, lo que permite al usuario observar variables y recorrer el código de una aplicación que se ejecuta en el servidor adjunto.
Plataforma de Herramientas Web
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 de fuente y gráficos para una variedad de idiomas, asistentes y aplicaciones integradas para simplificar el desarrollo, y herramientas y API para respaldar la implementación, ejecución y prueba de aplicaciones.
Plataforma de modelado
El proyecto Modelado contiene todos los proyectos oficiales de la Fundación Eclipse centrados en tecnologías de desarrollo basadas en modelos. Todos son compatibles con 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 dado o para generar un nuevo modelo a partir de un modelo EMF dado. Los proyectos de transformación de modelo a texto contienen Acceleo, una implementación de MOFM2T, un modelo estándar a lenguaje de texto de 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:
- Lenguaje de modelado unificado (UML)
- Lenguaje de modelado de sistemas (SysML)
- Object Constraint Language (OCL)
- Modelo de proceso empresarial y notación (BPMN)
- Interactive Media Manager (IMM)
- Semántica de Vocabulario de Negocios y Reglas de Negocios (SBVR)
- esquema XML (XSD)
- National Electronic Distributors Association (NEDA)
- Transformaciones modelo a modelo (MMT)
El proyecto de desarrollo de sintaxis concreta contiene el marco de modelado gráfico, un marco basado en Eclipse dedicado a la representación gráfica de modelos basados en EMF.
El proyecto de desarrollo de sintaxis abstracta alberga el marco de modelado de Eclipse, el núcleo de la mayor parte del proyecto de modelado de la Fundación Eclipse y el marco disponible para EMF como Connected Data Objects (CDO), consulta EMF o validación EMF.
Los proyectos de Tecnología e Investigación son prototipos del proyecto de Modelado; este proyecto se utiliza para albergar todos los proyectos de modelado de la Fundación Eclipse durante su fase de incubación.
Amalgam proporciona el paquete y la integración entre todas las herramientas de modelado disponibles para el paquete Eclipse dedicado a las herramientas de modelado.
Gestión del ciclo de vida de las aplicaciones
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 (), 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 a un 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 supervisa la actividad del usuario e intenta identificar información relevante para la tarea en cuestión. Utiliza este contexto de tarea para enfocar la interfaz de usuario de Eclipse en la información relacionada. Mylyn puede integrarse con repositorios como Bugzilla, Trac, Redmine, Mantis, JIRA, Unfuddle y GitHub. Se enfoca en mejorar la productividad al reducir la búsqueda, el desplazamiento y la navegación. Al hacer explícito el contexto de la tarea, Mylyn también pretende facilitar la multitarea, la planificación, la reutilización de esfuerzos anteriores y el intercambio de experiencia.
El nombre del proyecto proviene de la mielina, una capa eléctricamente aislante que rodea las neuronas' axones. El nombre original de este proyecto, "Mylar", replicaba una marca registrada de una compañía de películas boPET, por lo que la Fundación Eclipse cambió el nombre del proyecto.
Extensiones
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.
Distribuciones alternativas
Existen varias distribuciones alternativas en el proyecto Eclipse.
Herramientas de desarrollo PHP
El proyecto de herramientas de desarrollo PHP Hypertext Preprocessor (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 facilita la extensibilidad. Aprovecha la plataforma de herramientas web de Eclipse (WTP) y el kit de herramientas de lenguajes dinámicos (DLTK) existentes.
Herramientas de desarrollo de Android
Las Herramientas de desarrollo de Android (ADT) fueron reemplazadas en 2015 por el propio complemento de la fundación Eclipse, denominado Andmore: Herramientas de desarrollo para Android, después de que Google interrumpiera el desarrollo de su complemento para el Eclipse IDE, que está diseñado para proporcionar un entorno integrado en el que crear aplicaciones de Android. ADT/Andmore amplía las capacidades de Eclipse para permitir que los desarrolladores configuren nuevos proyectos de Android, creen una interfaz de usuario de aplicación, agreguen paquetes basados en la API de Android Framework, depuren sus aplicaciones con las herramientas del SDK de Android y exporten archivos.apk firmados (o no firmados). para distribuir sus aplicaciones. Está disponible gratuitamente para descargar. Google' ADT fue el IDE oficial para Android hasta 2015, pero fue reemplazado por Andmore de Eclipse y el Android Studio oficial.
Contenido relacionado
Fernando porsche
Teclado de cuerdas
Ancla