Autor(es) original(es) | IBM |
---|---|
Desarrollador(es) | Fundación Eclipse |
Lanzamiento inicial | 1.0 / 29 de noviembre de 2001 ( 29 de noviembre de 2001 ) | [1]
Versión estable | 4.33.0 [2] / 11 de septiembre de 2024 (hace 39 días) |
Repositorio | https://github.com/eclipse-platform/eclipse.platform |
Escrito en | Java , C [3] |
Sistema operativo | Linux , macOS , Windows |
Plataforma | Java SE , kit de herramientas de widgets estándar , x86-64 , AArch64 |
Disponible en | 44 idiomas |
Lista de idiomas Albanés, alemán, árabe, búlgaro, catalán, checo, chino (simplificado y tradicional), coreano, danés, eslovaco, esloveno, español, estonio, finlandés, francés, griego, hebreo, hindi, holandés, húngaro, indonesio, inglés (Australia y Canadá), italiano, japonés, klingon, kurdo, lituano, malabar, mongol, birmano, nepalí, noruego, persa, polaco, portugués (Portugal y Brasil), rumano, ruso, serbio, sueco, tailandés, turco, ucraniano y vietnamita [4] | |
Tipo | Herramienta de programación , entorno de desarrollo integrado (IDE) |
Licencia | Licencia pública de Eclipse |
Sitio web | eclipseide.org |
Eclipse es un entorno de desarrollo integrado (IDE) utilizado en programación informática . [5] Contiene un espacio de trabajo base 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, fue el más popular. [6] Eclipse está escrito principalmente en Java y su uso principal es para desarrollar aplicaciones Java, [7] pero también se puede utilizar 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 , HLASM , [a] JavaScript , Julia , [9] Lasso , Lua , NATURAL , Perl , PHP , PL/I , [a] Prolog , Python , R , Rexx , [a] 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 TeXlipse) y paquetes para el software Mathematica . Los entornos de desarrollo incluyen las herramientas de desarrollo Eclipse Java (JDT) para Java y Scala, Eclipse CDT para C/C++ y Eclipse PDT para PHP, entre otros. [10]
El código base inicial se originó a partir de IBM VisualAge . [11] 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 complementos. Desde Eclipse 3.0 (lanzado en 2004), los complementos se instalan y administran como "paquetes" utilizando Equinox , una implementación de OSGi . [12]
El SDK de Eclipse es un software libre y de código abierto , publicado bajo los términos de la Licencia Pública Eclipse , aunque es incompatible con la Licencia Pública General de GNU . [13] Fue uno de los primeros IDE en ejecutarse bajo GNU Classpath y corre sin problemas bajo IcedTea .
Eclipse se inspiró en la familia de productos de entorno de desarrollo integrado (IDE) VisualAge basada en Smalltalk . [11] Aunque tuvo bastante éxito, 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, ciertamente no fuera de la herramienta. Un equipo principalmente en el laboratorio de IBM Cary, Carolina del Norte, desarrolló el nuevo producto como un reemplazo basado en Java. [14] [ verificación fallida ] En noviembre de 2001, se formó un consorcio con una junta de administradores para promover el desarrollo de Eclipse como software de código abierto . Se estima que IBM ya había invertido casi $ 40 millones en ese momento. [15] Los miembros originales fueron Borland , IBM , Merant , QNX Software Systems , Rational Software , Red Hat , SuSE , TogetherSoft y WebGain. [16] El número de administradores aumentó a más de 80 a finales de 2003. En enero de 2004, se creó la Fundación Eclipse . [17]
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. [18]
La Asociación de Maquinaria Computacional reconoció a Eclipse con el Premio al Sistema de Software ACM 2011 el 26 de abril de 2012. [19]
La Licencia Pública Eclipse (EPL) es la licencia fundamental bajo la cual se publican los proyectos de Eclipse. [20] 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 se considera caso por caso.
Eclipse se publicó originalmente bajo la Licencia Pública Común , pero luego se volvió a licenciar bajo la Licencia Pública 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). [21]
Según Lee Nackman, director de tecnología de la división Rational de IBM (originada en 2003) en ese momento, el nombre "Eclipse" (que data de al menos 2001) no era un juego de palabras con Sun Microsystems , ya que la principal competencia del producto en el momento del nombre era Microsoft Visual Studio , al que Eclipse eclipsaba. [22]
Diferentes versiones de Eclipse han recibido diferentes nombres relacionados con la ciencia. Las versiones nombradas en honor a Calisto , Europa y Ganimedes , que son lunas de Júpiter , fueron seguidas por una versión nombrada en honor a Galileo , el descubridor de esas lunas. A estas le siguieron dos nombres con temática solar, Helios de la mitología griega e Índigo , uno de los siete colores del arcoíris (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 . [23] Kepler , Luna y Marte continuaron con el tema de la astronomía, y luego Neon y Oxygen constituyeron un tema de elementos químicos . Photon representó un regreso a los nombres con temática solar.
A partir de 2018 [actualizar], se abandonó el esquema alfabético para alinearse mejor con la nueva estrategia de lanzamiento simultáneo. [24] Los lanzamientos se nombran en el formato AAAA-MM para reflejar los lanzamientos trimestrales, comenzando con la versión 4.9 denominada 2018-09. [25]
Desde 2006, la Fundación ha coordinado un lanzamiento simultáneo anual . [26] Cada lanzamiento incluye la Plataforma Eclipse y varios otros proyectos Eclipse.
Desde 2008 hasta 2018, cada lanzamiento simultáneo se había producido el cuarto miércoles de junio. En 2018, el proyecto pasó a realizar lanzamientos trimestrales (13 semanas) con fecha AAAA-MM sin lanzamientos de servicios intermedios. [27]
Nombre de la versión | Fecha | Versión de la plataforma | Proyectos | Cambios principales | |
---|---|---|---|---|---|
N / A | 29 de noviembre de 2001 [1] | Versión antigua, ya no se mantiene:1.0 | Se debe instalar un kit de desarrollo Java o un entorno de ejecución Java de nivel 1.3 en la máquina para poder ejecutar esta versión de Eclipse. [28] | ||
N / A | 18 de septiembre de 2002 [29] | Versión antigua, ya no se mantiene:2.0 | |||
N / A | 15 de abril de 2003 [30] | Versión antigua, ya no se mantiene:2.1 | También se puede utilizar un entorno de ejecución de Java de nivel 1.4 o un kit de desarrollo de Java (JDK) para ejecutar Eclipse. Todavía es posible utilizar un entorno de ejecución de Java de nivel 1.3 o un kit de desarrollo de Java (JDK). [31] | ||
N / A | 21 de junio de 2004 [32] | Versión antigua, ya no se mantiene:3.0 | Se debe instalar un kit de desarrollo Java o un entorno de ejecución Java de nivel 1.4.1 en la máquina para poder ejecutar esta versión de Eclipse. [33] | ||
N / A | 28 de junio de 2005 | Versión antigua, ya no se mantiene:3.1 | Se agregó compatibilidad con Java 5 : genéricos, anotaciones, boxing-unboxing, enumeraciones, bucle for mejorado, varargs, importaciones estáticas [34] | ||
Calisto | 26 de junio de 2006 [35] | Versión antigua, ya no se mantiene:3.2 | Proyectos de Calisto [36] | ||
Europa | 27 de junio de 2007 [35] | Versión antigua, ya no se mantiene:3.3 | Proyectos Europa [26] | ||
Ganimedes | 25 de junio de 2008 [35] | Versión antigua, ya no se mantiene:3.4 | Proyectos de Ganimedes [37] | ||
Galileo | 24 de junio de 2009 [35] | Versión antigua, ya no se mantiene:3.5 | Proyectos Galileo [38] | ||
Helios | 23 de junio de 2010 [35] | Versión antigua, ya no se mantiene:3.6 | Proyectos Helios [39] | ||
Índigo | 22 de junio de 2011 [35] | Versión antigua, ya no se mantiene:3.7 | Proyectos Índigo [40] | Se agregó compatibilidad con Java 7 (3.7.1 sr1): inferencia de tipo mejorada para creación de instancias genéricas (Diamond), captura múltiple, declaración try-with-resources, invocación de método Varargs simplificada, cadenas en switch, literales binarios y guiones bajos en literales numéricos, métodos polimórficos [41] | |
Juno | 27 de junio de 2012 [35] | Versión antigua, ya no se mantiene:3.8 y 4.2 [42] [Notas 1] | Proyectos Juno [45] | ||
Kepler | 26 de junio de 2013 [35] | Versión antigua, ya no se mantiene:4.3 | Proyectos de Kepler [46] | Se recomienda un Java 6 JRE/JDK para ejecutar esta versión. [47] | |
Luna | 25 de junio de 2014 [35] | Versión antigua, ya no se mantiene:4.4 | Proyectos Luna [48] | Soporte integrado para Java 8 ; [49] en la versión anterior, esto era posible a través de un complemento de parche de Java 8 . Se requiere un JRE/JDK de Java 7 para ejecutar la mayoría de los paquetes basados en esta versión. [47] | |
Marte | 24 de junio de 2015 [35] | Versión antigua, ya no se mantiene:4.5 | Proyectos de Marte [50] | Se requiere un JRE/JDK de Java 7 para ejecutar todos los paquetes basados en esta versión. [47] | |
Neón | 22 de junio de 2016 [35] | Versión antigua, ya no se mantiene:4.6 | Proyectos de neón [51] | Se requiere un JRE/JDK de Java 8 para ejecutar todos los paquetes basados en esta versión. [47] | |
Oxígeno | 28 de junio de 2017 [35] | Versión antigua, ya no se mantiene:4.7 | Proyectos de oxígeno [52] | Oxygen.1a introdujo soporte para Java 9 y Junit 5 y Oxygen.3a introdujo soporte para Java 10. [53] Se eliminó el soporte para las siguientes plataformas basadas en Unix: AIX, Solaris, HP-UX y s390. [54] A partir de esta versión, se requiere un JRE/JDK de Java 8 o más reciente para ejecutar Eclipse. [47] | |
Fotón | 27 de junio de 2018 [35] | Versión antigua, ya no se mantiene:4.8 | Proyectos de fotones [55] | Se eliminó el soporte para Windows y Linux de 32 bits. | |
2018-09 | 19 de septiembre de 2018 [35] | Versión antigua, ya no se mantiene:4.9 | Proyectos 2018-09 [56] | ||
2018-12 | 19 de diciembre de 2018 [35] | Versión antigua, ya no se mantiene:4.10 | Proyectos 2018-12 [57] | Se agregó soporte para Java 11. [58] | |
2019-03 | 20 de marzo de 2019 [35] | Versión antigua, ya no se mantiene:4.11 | Proyectos 2019-03 [59] | ||
2019-06 | 19 de junio de 2019 [35] | Versión antigua, ya no se mantiene:4.12 | Proyectos 2019-06 [60] | ||
2019-09 | 18 de septiembre de 2019 [35] | Versión antigua, ya no se mantiene:4.13 | Proyectos 2019-09 [61] | ||
2019-12 | 18 de diciembre de 2019 [35] | Versión antigua, ya no se mantiene:4.14 | Proyectos 2019-12 [62] | ||
2020-03 | 18 de marzo de 2020 [35] | Versión antigua, ya no se mantiene:4.15 | Proyectos 2020-03 [63] | Actualización del soporte para lenguajes de desarrollo web, basándose en el Protocolo de servidor de lenguaje | |
2020-06 | 17 de junio de 2020 [35] | Versión antigua, ya no se mantiene:4.16 | Proyectos 2020-06 [64] | ||
2020-09 | 16 de septiembre de 2020 [35] | Versión antigua, ya no se mantiene:4.17 | Proyectos 2020-09 [65] | A partir de esta versión, se requiere un JRE/JDK de Java 11 o más reciente para ejecutar Eclipse. [47] | |
2020-12 | 16 de diciembre de 2020 [35] | Versión antigua, ya no se mantiene:4.18 | Proyectos 2020-12 [66] | La mayoría de los paquetes tienen integrado un JDK, por lo que la instalación de Java ya no es un requisito previo. | |
2021-03 | 17 de marzo de 2021 [35] | Versión antigua, ya no se mantiene:4.19 | Proyectos 2021-03 [67] | ||
2021-06 | 16 de junio de 2021 [35] | Versión antigua, ya no se mantiene:4.20 | Proyectos 2021-06 [68] | ||
2021-09 | 15 de septiembre de 2021 [35] | Versión antigua, ya no se mantiene:4.21 | Proyectos 2021-09 [69] | ||
2021-12 | 8 de diciembre de 2021 [35] | Versión antigua, ya no se mantiene:4.22 | Proyectos 2021-12 [70] | ||
2022-03 | 16 de marzo de 2022 [35] | Versión antigua, ya no se mantiene:4.23 | Proyectos 2022-03 [71] | ||
2022-06 | 15 de junio de 2022 [35] | Versión antigua, ya no se mantiene:4.24 | Proyectos 2022-06 [72] | ||
2022-09 | 14 de septiembre de 2022 [35] | Versión antigua, ya no se mantiene:4.25 | Proyectos 2022-09 [73] | A partir de esta versión, se requiere un JRE/JDK de Java 17 o más reciente para ejecutar Eclipse. [47] | |
2022-12 | 7 de diciembre de 2022 [35] | Versión antigua, ya no se mantiene:4.26 | Proyectos 2022-12 [74] | ||
2023-03 | 15 de marzo de 2023 [35] | Versión antigua, ya no se mantiene:4.27 | Proyectos 2023-03 [75] | ||
2023-06 | 14 de junio de 2023 [35] | Versión antigua, ya no se mantiene:4.28 | Proyectos 2023-06 [76] | ||
2023-09 | 13 de septiembre de 2023 [35] | Versión antigua, ya no se mantiene:4.29 | Proyectos 2023-09 [77] | ||
2023-12 | 6 de diciembre de 2023 [35] | Versión antigua, ya no se mantiene:4.30 | Proyectos 2023-12 [78] | ||
2024-03 | 13 de marzo de 2024 [35] | Versión antigua, ya no se mantiene:4.31 | Proyectos 2024-03 [79] | ||
2024-06 | 12 de junio de 2024 [35] | Versión antigua, ya no se mantiene:4.32 | Proyectos 2024-06 [80] | ||
2024-09 | 11 de septiembre de 2024 [35] | Versión estable actual: 4.33 | Proyectos 2024-09 [81] | ||
2024-12 | 4 de diciembre de 2024 [35] | Lanzamiento futuro:4.34 | Proyectos 2024-12 [82] |
Eclipse utiliza complementos para proporcionar toda la funcionalidad dentro y sobre el sistema de ejecución. Su sistema de ejecución se basa en Equinox , una implementación de la especificación del marco central OSGi . [83]
Además de permitir que la Plataforma Eclipse se extienda utilizando otros lenguajes de programación , como C y Python , el marco de complementos permite que la Plataforma Eclipse funcione con lenguajes de composición tipográfica como LaTeX [84] y aplicaciones de red como Telnet y sistemas de administración de bases de datos . La arquitectura de complementos admite la escritura de cualquier extensión deseada para el entorno, como para la administración de configuración . El soporte para Java y CVS se proporciona en el SDK de Eclipse , con soporte para otros sistemas de control de versiones proporcionados por complementos de terceros .
Con la excepción de un pequeño núcleo 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". [85] Eclipse proporciona complementos para una amplia variedad de características, algunas de las cuales son de terceros que utilizan modelos tanto gratuitos como comerciales. Algunos ejemplos de complementos incluyen el lenguaje de modelado unificado (UML), para diagramas de secuencia y otros diagramas UML, un complemento para DB Explorer y muchos más.
El SDK de Eclipse incluye las herramientas de desarrollo Java de Eclipse (JDT), 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 utiliza un espacio de trabajo , en este caso un conjunto de metadatos sobre un espacio de archivos plano que permite modificaciones externas de archivos siempre que el recurso del espacio de trabajo correspondiente se actualice posteriormente.
Eclipse implementa los elementos de control gráfico del conjunto 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 intermedia de interfaz gráfica de usuario llamada JFace , que simplifica la construcción de aplicaciones basadas en SWT. Eclipse se ejecutó en Wayland durante un proyecto de Google Summer of Code (GSoC) en 2014. [86]
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 enriquecida (RCP) para desarrollar aplicaciones de propósito general.
Los siguientes componentes constituyen la plataforma de cliente enriquecida:
Algunos ejemplos de aplicaciones cliente enriquecidas 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 que un usuario observe las variables y recorra el código de una aplicación que se ejecuta en el servidor conectado.
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 código fuente y gráficos 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. [88]
El proyecto Modeling contiene todos los proyectos oficiales de Eclipse Foundation centrados en tecnologías de desarrollo basadas en modelos. Todos son compatibles con Eclipse Modeling Framework creado por IBM. Estos proyectos se dividen en seis categorías:
La gestión del ciclo de vida de la aplicación (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 integran 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 monitorea la actividad del usuario e intenta identificar información relevante para la tarea en cuestión. Utiliza este contexto de tarea para enfocar la IU de Eclipse en la información relacionada. Mylyn puede integrarse con repositorios como Bugzilla , Trac , Redmine , Mantis , [90] JIRA , Unfuddle, [91] y GitHub . [92] 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 está destinado a facilitar la multitarea, la planificación, la reutilización de esfuerzos pasados y el intercambio de experiencia.
El nombre del proyecto proviene de la mielina , una capa eléctricamente aislante que rodea los axones de las neuronas. [93] El nombre original de este proyecto, "Mylar", replicaba una marca registrada de una empresa de películas boPET , por lo que la Fundación Eclipse cambió el nombre del proyecto. [94]
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 . [95]
Junto con el soporte nativo para OSGi, se agregó soporte para JPMS a partir de Java 9. [95]
Eclipse admite una amplia selección de extensiones, entre las que se incluyen compatibilidad con 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 muchas otras en Eclipse Marketplace. Valable es un complemento de Vala para Eclipse. [96]
Además de las advertencias integradas del compilador de Java, hay complementos adicionales disponibles para realizar un control de errores con el fin de mejorar la calidad y la consistencia del código, como SpotBugs y Sonar. [97] [98]
El soporte para 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. [99]
Existen varias distribuciones alternativas en el proyecto Eclipse.
El proyecto Herramientas de desarrollo del preprocesador de hipertexto PHP (PHP) proporciona un marco para la plataforma Eclipse. El proyecto abarca todos los componentes de desarrollo, incluidos 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. [100]
Android Development Tools (ADT) fue reemplazado en 2015 por el complemento de la propia fundación Eclipse, llamado Andmore: Development Tools for Android , [101] después de que Google descontinuara el desarrollo de su complemento para Eclipse IDE, que está diseñado para proporcionar un entorno integrado en el que crear aplicaciones Android. ADT/Andmore extiende 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 no firmados) para distribuir sus aplicaciones. Está disponible para descargar de forma gratuita. ADT de Google fue el IDE oficial para Android hasta 2015, pero fue reemplazado por Andmore de Eclipse y el Android Studio oficial . [102] [103] A partir de 2024, el proyecto parece estar moribundo, sin actividad desde 2017. [104]
El proyecto Eclipse Web Tools Platform (WTP) amplía la plataforma Eclipse con herramientas para desarrollar aplicaciones web y Java EE. Incluye editores de código fuente y gráficos 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 de CS1: falta la ubicación del editor ( enlace )