Cómo comenzar con el desarrollo de Java utilizando el kit de desarrollo de Java (JDK)

Presentamos a su atención una adaptación de un artículo de Martin Heller, programador y editor del recurso JavaWorld. Probablemente ya haya oído hablar de los tres IDE más populares para el desarrollo de Java. El 90 por ciento de los programadores industriales utilizan Eclipse, NetBeans o IntelliJ IDEA, y cada uno de estos IDE tiene sus propias ventajas y desventajas. En este artículo intentaremos describirlos para que entiendas cuál es el adecuado para ti. Aunque, por supuesto, es mejor probar los tres en el trabajo y descubrir cuál funciona mejor para ti. Ninguna reseña puede reemplazar esto. He trabajado con estos IDE antes, pero para este estudio instalé IntelliJ IDEA Ultimate 2016.2, Eclipse Neon Java EE y NetBeans 8.1 Java EE en una computadora portátil MacBook Pro. Probé el IDE en varios proyectos Java de código abierto.

Qué esperar de un IDE

Un IDE moderno para un "desarrollador de Java saludable" debe ser compatible con Java 8, Scala, Groovy y otros lenguajes de máquinas virtuales Java que utiliza habitualmente. También sería útil la compatibilidad con los principales servidores de aplicaciones y los marcos web más populares, incluidos Spring MVC, JSF, Struts, GWT, Play, Wicket, Grails y Vaadin. El IDE debe ser compatible con cualquier compilación de sistema de control de versiones, como Ant, Maven o Gradle, junto con Git, SVN, CVS, Mercurial o Bazaar. Además, para el entorno de desarrollo es importante poder trabajar con bases de datos y la capa de cliente de su pila, tener soporte para JavaScript, TypeScript, HTML, SQL, JavaServer Pages, Hibernate y Java Persistence integrados. API. Finalmente, es lógico esperar que el IDE le permita editar, crear, depurar y probar sistemas sin estrés innecesario. Idealmente, el entorno de desarrollo admite no solo la finalización inteligente del código, sino también la refactorización inteligente y las métricas del código. En muchos casos, será útil admitir marcos de prueba y apéndices. Si su equipo utiliza un sistema de tickets y CI/CD, necesita el IDE para poder conectarse a ellos. Y decida si necesita implementación y depuración en contenedores y nubes. Hemos enumerado solo las expectativas básicas (quizás tenga algo que agregar) y ahora echemos un vistazo más de cerca a nuestros rivales.

IDEA IntelliJ


En términos de características y precio, IntelliJ IDEA viene en dos versiones: la edición Community gratuita y la edición Ultimate paga con funcionalidad extendida. La edición comunitaria está diseñada para el desarrollo de JVM y Android. La versión gratuita es compatible con Java, Kotlin, Groovy y Scala; Androide; Maven, Gradle y SBT; Funciona con sistemas de control de versiones Git, SVN, Mercurial y CVS. La edición Ultimate es adecuada para el desarrollo web y empresarial. Esta versión del IDE funciona no sólo con Git, SVN, Mercurial y CVS, sino también con Perforce, ClearCase y TFS; en él puedes escribir en JavaScript y TypeScript; Naturalmente, hay soporte para Java EE, Spring, GWT, Vaadin, Play, Grails y muchos otros frameworks. Y, por supuesto, no podríamos prescindir de SQL y de herramientas para trabajar con bases de datos. La idea que guía a los desarrolladores de este IDE a la hora de formular una política de precios es que su versión comercial (Ultimate) ocupe su lugar en los ordenadores de los profesionales, por lo que aumentará su productividad. Si un programador de Java gana 50.000 dólares al año (o incluso más), el retorno de la inversión gastada en el IDE de pago IntelliJ IDEA (500 dólares por una suscripción anual) se producirá muy rápidamente debido a una ligera aceleración de su trabajo. En los años siguientes, el precio para las empresas baja, para las nuevas empresas y los autónomos es significativamente menor y para los estudiantes, profesores, campeones de Java y desarrolladores de código abierto es completamente gratuito. IntelliJ IDEA impresiona por su profunda comprensión del código, su ergonomía inteligente, sus funciones de desarrollo integradas y su compatibilidad con varios idiomas.
Figura 1. IntelliJ IDEA muestra la cantidad de advertencias y conjeturas basadas en el análisis estadístico del código Java. Puedes estudiar los supuestos con más detalle haciendo clic sobre ellos, como se muestra en la imagen; en muchos casos recibirá una lista con opciones y opciones de corrección.

Comprensión profunda del código.

El resaltado de sintaxis y la finalización sencilla de código son algo común en cualquier editor Java moderno. IDEA fue más allá al ofrecer "autocompletado inteligente". Este término significa que el entorno de desarrollo muestra una lista de los símbolos más relevantes aplicables en un contexto determinado. La lista de símbolos depende no sólo del contexto como tal, el "generalmente aceptado", sino también del estilo de programación del desarrollador, de la frecuencia con la que utiliza determinados operadores. "Finalización de cadena" incluso muestra una lista de símbolos aplicables que están permitidos a través de métodos o captadores en el contexto actual. Además, para miembros estáticos o constantes, IDEA agrega automáticamente las declaraciones de importación necesarias. En todos los casos de autocompletado, IDEA intenta adivinar el tipo de símbolo en tiempo de ejecución, refinar su selección e incluso aplicar una conversión de tipo si es necesario. El código Java a menudo incluye fragmentos de otros lenguajes como cadenas. IDEA puede inyectar código SQL, XPath, HTML, CSS o JavaScript en cadenas literales de Java. En este sentido, el IDE puede refactorizar código en múltiples idiomas. Por ejemplo, si cambia el nombre de una clase en una asignación JPA, IDEA actualizará la entidad JPA correspondiente y la clase de expresión. Al refactorizar un fragmento de código, el desarrollador tiene un deseo (bastante natural): que todos los duplicados de este código también sean refactorizados. IDEA Ultimate encuentra duplicados y fragmentos similares y también les aplica refactorización. IntelliJ IDEA analiza el código al cargarlo y directamente cuando lo ingresa. Señala problemas sospechosos (como en nuestra imagen de arriba) y, opcionalmente, ofrece una lista de posibles soluciones rápidas a los problemas encontrados.

Ergonomía


IntelliJ IDEA está diseñado para no sacar al desarrollador de un estado de productividad fluida una vez que ya se encuentra en él. La ventana del Proyecto, que se muestra en la primera imagen de la izquierda, desaparece con un simple clic del mouse para que el programador pueda concentrarse en la ventana del editor de código. Para todas las acciones necesarias al escribir código, existen combinaciones de teclas para llamarlas rápidamente, incluida la definición de símbolos en ventanas emergentes. Al principio, todas estas combinaciones son difíciles de recordar, pero poco a poco te acostumbras y solo las utilizas. Sin embargo, incluso si el programador no utiliza atajos de teclado, como muestra la práctica, se acostumbra a trabajar en IDEA de forma fácil y rápida. Me gustaría destacar especialmente el depurador IDEA: los valores de las variables se muestran directamente en la ventana del editor, junto al código fuente correspondiente. Cuando el estado de una variable cambia, el color de resaltado también cambia.

Herramientas integradas

IntelliJ IDEA proporciona una interfaz unificada para la mayoría de los sistemas de control de versiones, incluidos Git, SVN, Mercurial, CVS, Perforce y TFS. Puede gestionar los cambios directamente en el IDE, lo cual es muy conveniente. Cuando estaba probando IDEA, deseaba que el último cambio en el código fuente apareciera en la ventana del editor como una anotación (como sucede, por ejemplo, en Visual Studio). Resulta que IDEA tiene un complemento especial para esto. IDEA también viene con herramientas de compilación, un tiempo de ejecución de prueba, herramientas de cobertura y una ventana de terminal incorporada. IntelliJ no tiene su propio generador de perfiles, pero se pueden conectar otros de terceros mediante complementos. Por ejemplo, YourKit, creado por un antiguo desarrollador principal de JetBrains, o VisualVM (que es una versión reempaquetada del generador de perfiles NetBeans). La depuración en Java puede ser complicada cuando suceden todo tipo de cosas misteriosas en clases para las que no tienes el código fuente. IDEA incluye un descompilador para tales casos. La programación del lado del servidor en Java requiere interacción frecuente con bases de datos, por lo que los programadores de IDEA Ultimate apreciarán la conveniencia de las herramientas para trabajar con SQL y bases de datos. Pero si sus capacidades no son suficientes para alguien, puede comprar la versión IDEA Ultimate con un IDE SQL integrado (DataGrip). Sin embargo, será un poco más cara que la suscripción normal a IDEA Ultimate. IntelliJ IDEA es compatible con todos los principales servidores de aplicaciones JVM y le permite implementar y depurar en estos servidores, lo que elimina las dificultades familiares para todos los programadores de Java Enterprise. IDEA también es compatible con Docker (a través de un complemento que agrega una ventana de herramientas Docker especial al entorno de desarrollo. Por cierto, IDEA tiene un montón de complementos.

Un verdadero políglota

IDEA ha ampliado el soporte de código para Spring, Java EE, Grails, Play, Android, GWT, Vaadin, Thymeleaf, Android, React, AngularJS y otros marcos. Probablemente hayas notado que no todos son específicos de Java. IDEA "comprende" otros lenguajes desde el primer momento: Groovy, Kotlin, Scala, JavaScript, TypeScript y SQL. Si no ve el idioma que está buscando en esta lista, actualmente hay 19 complementos de lenguaje IntelliJ, que admiten específicamente R, Elm y D.


Durante muchos años, Eclipse mantuvo con confianza la palma en popularidad entre los IDE de Java. Este entorno es completamente gratuito, de código abierto y escrito principalmente en Java. Sin embargo, su arquitectura modular permite utilizar Eclipse con otros lenguajes. El proyecto Eclipse, iniciado por IBM, apareció en 2001. Querían reemplazar la familia de entornos de desarrollo IBM Visual Age basados ​​en Smalltalk. Bueno, el objetivo principal, como sugiere incluso el nombre, era eclipsar a Microsoft Visual Studio (eclipse en inglés significa eclipse). La portabilidad de Java ayuda a que Eclipse sea un entorno multiplataforma: este IDE se ejecuta en Linux, Mac OS X, Solaris y Windows. Para bien o para mal, el Java Standard Widget Toolkit (SWT) es al menos parcialmente responsable de la apariencia de Eclipse. Eclipse debe su rendimiento (o, como dicen algunos simpatizantes, su falta) a la JVM. Eclipse funciona bastante lento, ya que está basado en hardware bastante antiguo y en versiones antiguas de JVM. Incluso hoy en día parece lento, especialmente si le adjuntas muchos complementos. Parte de la sobrecarga de recursos de Eclipse se puede atribuir a su compilador incremental incorporado, que se ejecuta cada vez que se carga un archivo o se actualiza el código. Esto es algo útil; detecta errores al ingresar texto. Independientemente de la compilación, el proyecto Eclipse mantiene un modelo de contenido que contiene información sobre la jerarquía de tipos, referencias y declaraciones de elementos Java. La versión actual de Eclipse se llama Neon (4.6.0). Instalé Eclipse Java EE IDE para desarrolladores web (esta no es la única opción, puedes elegir otra). Contiene un SDK de Eclipse mínimo y se agregan complementos según demanda. Por cierto, trabajar con complementos en este IDE no es para personas débiles de corazón. Los complementos de terceros a menudo entran en conflicto entre sí, aunque sus especificaciones oficiales no dicen nada al respecto.
Figura 2. De izquierda a derecha, hay cuatro barras de herramientas de Eclipse: Explorador de paquetes, Editor de Java, Estructura de clases de Java y Lista de tareas. El proyecto cargado en Eclipse en esta imagen es el marco de prueba JUnit. Los paneles se pueden intercambiar fácilmente.

Soporte de complementos

El ecosistema de complementos de Eclipse es a la vez la fortaleza del IDE y uno de sus principales problemas. Es debido a la incompatibilidad de los complementos que a veces ensamblados enteros fallan y los programadores tienen que empezar a trabajar de nuevo. Actualmente hay más de 1700 complementos escritos para Eclipse, oficiales y no oficiales, que pueden funcionar muy bien o no. Los complementos de Eclipse admiten más de 100 lenguajes de programación y casi 200 marcos de desarrollo de aplicaciones. La mayoría de los servidores Java también son compatibles: si designa una nueva conexión de servidor desde Eclipse, accederá a una lista de carpetas de proveedores donde encontrará alrededor de 30 servidores de aplicaciones. Sólo habrá hasta nueve variantes de Apache Tomcat. Los proveedores comerciales tienden a agrupar sus soluciones: por ejemplo, solo hay un elemento de Red Hat JBoss Middleware, y en su interior encontrará herramientas de servidor WildFly y EAP, así como JBoss AS.

Edición, refactorización y depuración.

Su primera experiencia con Eclipse puede resultar confusa e incluso confusa. El primer paso es configurar Eclipse y acostumbrarse a su arquitectura conceptual de espacios de trabajo, vistas y vistas. Todo esto está determinado por los complementos que haya instalado. Para el desarrollo de Java del lado del servidor, probablemente utilizará las vistas de navegación Java, Java EE y Java, la vista Explorador de paquetes, la vista de depuración, la vista de sincronización de comandos de herramientas web, la vista de desarrollo de base de datos y la vista de depuración de base de datos. En la práctica, todo cobra sentido cuando abres las ventanas que necesitas. Eclipse casi siempre ofrece varias formas de resolver un problema particular. Por ejemplo, puede ver el código utilizando la perspectiva de navegación de Java. Qué elegir es cuestión de gustos y elección. Una búsqueda especial de Java le permite encontrar declaraciones, referencias y apariciones de paquetes, tipos, métodos y campos de Java. También puede utilizar el acceso de búsqueda rápida y la vista previa. Se pueden generar patrones de código comunes a partir de plantillas de código. Java Refactoring en Eclipse admite 23 operaciones, que van desde operaciones comunes de cambio de nombre hasta transformaciones menos obvias (como en el libro de Martin Fowler). Eclipse admite la depuración local y remota, siempre que esté utilizando una JVM que admita la depuración remota. La depuración es bastante estándar: usted define puntos de interrupción y luego ve las variables en la pestaña de depuración. Por supuesto, puede revisar su código y evaluar expresiones. Eclipse tiene una amplia base de datos de documentación de diferentes edades, valores y utilidad. Desafortunadamente, encontrar una imagen en las instrucciones que no corresponda a la versión actual, por ejemplo, con una interfaz y un diseño de botones obsoletos, es algo común en este IDE. Desafortunadamente, el problema de las actualizaciones tardías de la documentación es muy común en cualquier proyecto de código fuente.


NetBeans comenzó como un proyecto de estudiantes universitarios en Praga en 1996. En 1997, el IDE se convirtió en un producto comercial, y en 1999 fue comprado por Sun Microsystems (los padres de Java) y al año siguiente presentó una versión de código abierto. La versión actual 8.1 se ejecuta en máquinas con Windows, Mac OS X, Linux y Solaris. Bueno, el paquete portátil se puede ejecutar en cualquier sistema para el que exista una máquina Java. Descargué el paquete Java EE por mí mismo, es uno de los seis paquetes de descarga posibles. Este paquete soporta JavaScript y HTML, GlassFish y Tomcat, pero no soporta PHP, C/C++/Fortran, Groovy y Grails: se pueden obtener en el paquete “Todo Incluido” (o simplemente “Todo”). Sin embargo, si lo deseo, puedo descargar soporte para los idiomas anteriores en cualquier momento seleccionando el complemento apropiado (o cualquier otro). NetBeans tiene menos que Eclipse, pero normalmente no entran en conflicto entre sí. Este otoño, Oracle (que adquirió NetBeans después de adquirir Sun Microsystems) decidió transferir este entorno de desarrollo bajo el ala de Apache Software Foundation, junto con todos los derechos, código fuente, marca registrada, dominio "netbeans.org" y otra infraestructura. elementos. Por lo tanto, el futuro del proyecto aún es incierto, aunque el sistema anteriormente tenía ciertos privilegios relacionados. Por lo tanto, fue NetBeans el primero en recibir soporte para Java 8 casi inmediatamente después del lanzamiento de la plataforma actualizada, y fue llamado el "IDE oficial para Java 8". Sin embargo, un mes después de su lanzamiento, esta ventaja se perdió: fue entonces cuando otros IDE también recibieron soporte para Java 8. Sin embargo, quiero señalar que el soporte de Java 8 de NetBeans es realmente bueno y que el IDE es excelente para incorporar trucos de Java 8 en código "antiguo". Sus editores, analizadores de código y convertidores ayudarán al programador a actualizar el código utilizando construcciones características de Java 8: expresiones lambda, operadores funcionales y referencias de métodos. Los complementos de JavaScript en NetBeans 8 hacen un gran trabajo al admitir Node.js y las últimas herramientas de JavaScript como Gulp y Mocha, además de admitir el intérprete de JavaScript Nashorn.
Figura 3. Aquí NetBeans está ejecutando el mismo proyecto basado en Maven en el que se abrió IntelliJ IDEA en la Figura 1. Observe la funcionalidad avanzada en el menú contextual y el submenú de refactorización.

Edición y refactorización

NetBeans Editor admite idiomas, detecta errores a medida que escribe y le ayuda con información sobre herramientas y finalización inteligente de código. Según la sensación subjetiva, el IDE hace frente a esta tarea más rápido que Eclipse, pero algo más lento que IntelliJ IDEA. Además, NetBeans tiene una gama completa de herramientas de refactorización (como se muestra en la Figura 3) que permiten al programador reestructurar el código sin romperlo, realizar análisis de código fuente y también ofrece una amplia gama de sugerencias para soluciones rápidas o extensiones de código. NetBeans incluye la herramienta de diseño Swing GUI, anteriormente conocida como "Proyecto Matisse". Los desarrolladores aprecian mucho la herramienta de refactorización automatizada Inspect & Transform, introducida en NetBeans 7.1. Le permite analizar el código del proyecto y realizar mejoras sugeridas. Aunque personalmente prefiero probar todo mi código primero con pruebas unitarias y solo luego ejecutar herramientas que puedan realizar cambios radicales. He sufrido repetidamente todo tipo de correcciones automáticas que tuvieron consecuencias irreparables.

Creación, depuración y creación de perfiles

NetBeans tiene un excelente soporte nativo para Maven y Ant, así como un complemento para Gradle. Me alegré mucho cuando descubrí que el sistema trataba los proyectos de Maven como "nativos". Esto significa que pueden simplemente abrirse en lugar de importarse. NetBeans también contiene una visualización gráfica atractiva (y útil) para las dependencias de Maven. El depurador Java de NetBeans no es malo, pero tiene algunas advertencias. Un depurador visual independiente permite al programador tomar capturas de pantalla de la interfaz gráfica del usuario y explorar las interfaces de las aplicaciones creadas con JavaFX y Swing. El generador de perfiles NetBeans hace más obvio cómo se utilizan la CPU y la memoria y tiene excelentes herramientas para encontrar pérdidas de memoria.

Comparación del trío de gigantes.

He utilizado los tres IDE, Eclipse, NetBeans e IntelliJ IDEA, a lo largo de los años en el orden cronológico indicado. Cada vez que cambiaba a un IDE diferente, sentía que mi productividad aumentaba. Pero incluso cuando estaba firmemente convencido de que IDEA era mi elección final, a veces tenía que volver a uno de los dos IDE restantes. Este fue el caso, por ejemplo, en un momento en que Eclipse era la única herramienta que soportaba el desarrollo de Android (hoy existe Android Studio, el IDE oficial actual para Android, está basado en IntelliJ IDEA). Por supuesto, los tres IDE tienen sus seguidores y detractores. Conozco a muchos desarrolladores de Java que aman IntelliJ IDEA, así como a fanáticos leales de Visual Studio C++ y C#. La mayoría de las veces, estas personas están contentas con el hecho de que su productividad ha aumentado y el costo de la suscripción anual se reembolsa después de unas pocas semanas de usar la versión paga de IDEA. Sin embargo, los usuarios de NetBeans y Eclipse también suelen estar apegados a sus herramientas y se preguntan por qué otros programadores están dispuestos a pagar dinero por IDEA. Aconsejaría a los nuevos desarrolladores de Java que se mantengan alejados de Eclipse. A pesar de que sigue siendo el IDE más popular para Java, es difícil para los principiantes: es fácil perderse en la naturaleza de Eclipse, tanto durante la implementación del sistema como durante el trabajo diario. Eclipse tiene el ecosistema de complementos más extenso de todos los IDE y también es el que tiene más probabilidades de fallar debido a la instalación de un conjunto incompatible de estos mismos complementos. Desafortunadamente, mientras usaba Eclipse, tuve que eliminar repetidamente otro ensamblaje roto de este IDE e instalar un paquete "limpio". NetBeans es bueno para la mayoría de los desarrolladores, tiene un excelente generador de perfiles y lo uso a veces. Sin embargo, prefiero pagar por IntelliJ IDEA Ultimate. Y el futuro de NetBeans aún no está claro. Para los nuevos desarrolladores de Java que aún no tienen el presupuesto para comprar herramientas, recomiendo usar NetBeans o IntelliJ IDEA Community Edition según sus necesidades. Vale la pena elegir el primero para aquellos que codifican servidores Java, pero solo si no entra en la categoría de aquellos que pueden obtener IntelliJ IDEA Ultimate gratis o con un gran descuento (estudiantes o programadores que están desarrollando un código abierto). proyecto).

IDE de Java "ligero"

Hoy en día, la mayoría de los desarrolladores de Java utilizan IDEA, NetBeans o Eclipse, pero a veces se necesitan entornos de desarrollo más ligeros o incluso editores de código como Sublime Text, emacs o vim que admitan complementos de Java. A continuación enumero opciones razonables para aquellos que buscan algo un poco más ligero:
  • DrJava es un pequeño entorno de desarrollo gratuito. Fue creado para estudiantes de la Universidad Rice y se ha vuelto bastante popular: DrJava ya se ha descargado más de 2 millones de veces. DrJava está diseñado para promover el desarrollo basado en pruebas. El marco contiene un editor de código inteligente, un panel de interacción para evaluar el código de la aplicación, un depurador a nivel de fuente y herramientas de prueba unitaria.
  • BlueJ es un entorno de desarrollo Java gratuito creado por especialistas de la Universidad de Kent para programadores principiantes. Este entorno es compatible con Oracle. BlueJ tiene una interfaz mucho más limpia y sencilla que los IDE profesionales como NetBeans o Eclipse, e incluso incluye un tutorial dedicado sobre los conceptos básicos de programación orientada a objetos.
  • JCreator es otro pequeño IDE de Java para Windows, escrito en C++ (por motivos de rendimiento). La versión Pro paga está equipada con un depurador, soporte para Ant y asistentes de código, pero la versión gratuita (LE) no.
  • Eclipse Che es un IDE en la nube basado en navegador que admite Java, C++, JavaScript, Python, PHP, Ruby y SQL.

Elegir un IDE de Java según el proyecto

Intenté describir los importantes beneficios de cada uno de los tres IDE de Java más importantes y mencioné brevemente a sus pequeños y útiles rivales. Para elegir el IDE adecuado, debe sopesar los pros y los contras y compararlos con sus necesidades y las de sus proyectos. Si te unes a un equipo, es una buena idea utilizar el mismo IDE que otros desarrolladores, aunque no es obligatorio. Si su equipo aloja fuentes en GitHub, naturalmente será más conveniente si su IDE admite GitHub. Sí, puedes manejar la transferencia de código sin un IDE usando el cliente GitHub o la línea de comando git. Pero, ¿qué tan efectivos serán esos saltos entre diferentes sistemas? También es importante que el IDE admita el sistema de compilación. Por ejemplo, si se trata de Maven, es poco probable que desee reconstruir el sistema en Ant para realizar pruebas locales. Afortunadamente, los tres grandes IDE de Java son compatibles con Ant, Maven y Gradle, ya sea de forma inmediata o con un complemento. Pero para los IDE “pequeños” esto puede no ser cierto. Es un deseo natural que el entorno de desarrollo admita la versión de JRE que se utiliza en el proyecto. Si las versiones no coinciden, existe una alta probabilidad de que aparezcan muchos errores adicionales que, por ejemplo, aparecerán en usted, pero no en otros miembros del equipo. Es poco probable que tal situación tenga un buen efecto en tu karma. Francamente, es más probable que la inconsistencia de JRE se deba a errores de configuración que a la falta de soporte de IDE, a menos que el IDE aún no se haya actualizado a una nueva versión de Java. Simplemente crea que si su IDE es totalmente compatible con los marcos y tecnologías que se utilizan en el proyecto, realmente ayudará a acelerar el trabajo. Lo más probable es que lo consigas de todos modos. Pero, si el IDE comprende cómo se relacionan las declaraciones JPA con las clases de expresión y entidades JPA (como IntelliJ), dedicará mucho menos tiempo al código relacionado con JPA que si no lo comprende por completo. Bueno, si el IDE admite el marco de prueba y el ejecutor de código utilizado para el proyecto, puedes ejecutar pruebas sin cambiar el entorno de trabajo. Esto también acelerará el proceso de desarrollo. Finalmente, el trabajo es más rápido si el IDE es compatible con el sistema de tickets y seguimiento de errores del proyecto. Nuevamente, puede usar un cliente web o independiente, digamos JIRA, pero es difícil no estar de acuerdo en que verificar los tickets es mucho más rápido sin cambiar la ventana, mientras permanece directamente en el IDE.

¿Gratis o de pago?

Después de probar IntelliJ IDEA Ultimate, tuve la sensación de que era el entorno de desarrollo adecuado. Una especie de Cadillac del mundo IDE. Nuevamente, si bien no es gratuito, creo que las ganancias en productividad al usarlo valen la suscripción anual. Para los principiantes que no pueden pagar una suscripción anual a IntelliJ IDEA Ultimate, recomiendo usar NetBeans en lugar de Eclipse. Por supuesto, el ecosistema de complementos de Eclipse está mucho más desarrollado hoy que cualquier otro IDE, pero está muy descuidado y descuidado: un desarrollador novato corre el riesgo de quedarse atrapado en la jungla del IDE en lugar de sumergirse en el trabajo. También mencioné alternativas "ligeras", dos de las cuales fueron diseñadas específicamente con fines educativos. Bueno, si estás empezando a aprender idiomas y prefieres un ambiente minimalista, ¿por qué no?

Casi todos los libros y tutoriales sobre Java para principiantes comienzan con una descripción de la programación orientada a objetos: qué maravilloso y magnífico es. Está claro, dado que en Java es simplemente imposible hacer cualquier otra programación que no sea la orientada a objetos, entonces primero te piden que domines 40...80 páginas de locas analogías con la jerarquía de gatos/perros/patos/coches, y sólo después de eso se le ofrece escribir "¡Hola, mundo!". :-)

Vale la pena señalar que absolutamente todo el entrenamiento de Java se basa en la salida más primitiva del resultado a la consola. Es decir, no aplicación de consola en el sentido habitual, es decir, la salida de algunos datos línea por línea. Bueno, por ejemplo, Turbo Pascal 3.0 se lanzó en 1985 y ya tenía soporte para modos gráficos. En 1990, apareció Turbo Vision, algo muy interesante, al igual que Windows solo para DOS. Y en Java en 2018, solo es posible la salida de consola. Y todo este entusiasmo y frialdad se rompe de alguna manera ya en la etapa “¡Hola, mundo!”... Probablemente lo único peor es divertirse con una calculadora programable MK-61 o MK-52, pero ¿qué? hay la misma salida línea por línea.

¡Pero lo más divertido es que en Java puedes crear programas usando programación visual! Me enteré de esto solo cuando leí (o mejor dicho, me familiaricé con) un libro de 500 páginas, donde en uno de los últimos capítulos de repente quedó claro que para Java existen GUI (interfaces gráficas de usuario) normales y que se pueden diseñar. programas con botones, campos de entrada y menús normales. Surge la pregunta: ¿por qué pasaste tanto tiempo preocupándote por esta pésima consola cuando podrías haber hecho todo de manera hermosa y ordenada a la vez?

Después de pasar varios días estudiando este tema, descubrí varios matices divertidos.

Primero- GUI para Java tiene tres tipos (bibliotecas): A.W.T., Balancearse(¿A quién se le ocurren esos nombres?) y javafx.

Hoy en día (Java 8 y 9) están todos incluidos en el JDK: es decir, todo funciona de inmediato y no es necesario molestarse en instalarlos. Esta es una gran ventaja.

Pero AWT es la primera y muy antigua implementación, por lo que no es necesario utilizarla. En general, no es kosher. Swing tampoco es kosher, porque algo se ha estropeado allí y los programas son terriblemente lentos por eso. No puedo decirlo con mayor precisión, no lo entendí, pero parece que ya no se está desarrollando oficialmente en varias versiones. Pero JavaFX es un rumor y nuestro brillante futuro.

Hay otra abominación subprogramas de java, aquellos que funcionan en el navegador y al mismo tiempo lo “cuelgan” con fuerza, como Flash, sólo que aún peor. Afortunadamente, esta/estas cosas prácticamente ya no se utilizan, por lo que perder el tiempo estudiándolas no tiene sentido.

Entonces, lo único a lo que vale la pena dedicarle tiempo es JavaFX.

Segundo punto. No es tan simple. Consideremos Delphi (o Visual Studio, Lazarus, no importa). Incluso para un principiante, la creación de un programa simple (un botón y un campo de texto para la salida) será así:

  • lanzar Delphi;
  • se crea automáticamente un nuevo proyecto con el formulario principal;
  • seleccione un botón en la paleta de componentes y colóquelo en el formulario; todo es visual
  • de manera similar, colocamos un campo de texto en el formulario;
  • si es necesario, en el panel de propiedades puede especificar el texto del botón, las dimensiones, etc.;
  • lanzamiento: Delphi ofrecerá guardar, guardar.

Es decir, no escribimos ni una sola línea de código, el IDE hizo todo por sí mismo. Si miras el código generado, no puedes llamarlo simple: ya requiere ciertos conocimientos, pero Delphi es lo suficientemente inteligente como para entender cómo trabajar con él.

Si queremos agregar alguna acción, por ejemplo, cuando se hace clic en un botón, llenar un campo de texto con la frase “¡Hola!”, entonces hacemos esto:

  • haga doble clic en el botón (o seleccione el evento onClick);
  • Delphi crea el código para este controlador de eventos y nos transfiere al editor;
  • Escribimos el nombre del campo de texto y Delphi ofrece sugerencias que pueden ayudarle a descubrir qué hacer y cómo hacerlo.

Es decir, nuevamente, el IDE hizo todo el trabajo sucio.

Pero esto es en otros lenguajes, Java sigue su propio camino. Para crear un botón en JavaFX, debe crear manualmente un escenario: "escenario de teatro" (¡el nombre es completamente serio!) y sobre ellos colocar una escena. Hay una especie de contenedor en el que ya se encuentran colocados otros elementos.

Se supone que cada elemento y cada una de sus propiedades deben programarse individualmente. Aquí hay un ejemplo de dos botones y una etiqueta de mi libro de entrenamiento.

Respuesta = nueva etiqueta ("Pulse un botón"); Botón btnUp = nuevo Botón("Arriba"); Botón btnAbajo = nuevo Botón("Abajo"); btnUp.setOnAction (nuevo controlador de eventos () ( public void handle(ActionEvent ae) (respuesta.setText("Presionaste Arriba."); ) )); btnDown.setOnAction (nuevo controlador de eventos () ( public void handle(ActionEvent ae) (respuesta.setText("Presionaste Abajo."); ) )); rootNode.getChildren().addAll(btnUp, btnDown, respuesta); ...

Cuando hay una docena de botones, más 20 elementos de menú y otros 30 componentes, el código no parecerá pequeño. Y esto sin el código que es responsable de propiedades adicionales, como alineación, tamaños, fuente... Y aquí está segundo indica que los tutoriales de JavaFX muestran exactamente cómo escribir "código fx" a mano. Melancolía, en una palabra...

Pero aquí viene la gracia salvadora. tercer matiz. Resulta que personas inteligentes (aparentemente familiarizadas con los IDE completos) han desarrollado otro tipo de aplicación, donde un archivo xml descriptivo llamado fxml, y dichos programas se intercambian como “ Aplicaciones FXML JavaFX»

Me sorprende absolutamente que el aprendizaje de Java no comience con este tipo de aplicaciones. Incluso si no es Delphi, sigue siendo un millón de millones de veces mejor que trabajar con la consola y llenarte la cabeza con otras tonterías sobre por qué necesitas usar cientos de líneas de programación orientada a objetos, mientras que en otros idiomas se necesita un procedimiento simple. ;-)

Ahora pongámonos serios. Si nunca has programado en Java, puedes probarlo ahora mismo. En realidad es bastante bueno, aunque llevará un poco de tiempo acostumbrarse a los programas. Si tienes experiencia con "IDE visuales", aún mejor: conocerás a mucha gente que conoces.

JDK

Java debe estar instalado en su computadora. No proporcionaré enlaces sobre cómo hacer esto; Google me ayudará, ya que todo es demasiado simple.

IDE

En Java no existe un único programa: el entorno de desarrollo, por lo que en Internet hay ejemplos de diferentes programas. Los más primitivos, como Notepad++, sólo son aptos para salida de consola, pero si consideramos algo más serio, entonces sólo destacan tres candidatos: NetBeans, Eclipse e IntelliJ IDEA.

NetBean- el programa más simple que se inicia rápidamente (en comparación con otros) y funciona bastante bien.

Eclipse- También es una buena opción, más potente que NetBeans, pero más débil que IntelliJ IDEA.

IDEA IntelliJ- Se ve mejor, pero hay que pagarlo con rapidez. Vale la pena señalar que Android Studio está basado en IntelliJ IDEA, pero por alguna razón el estudio funciona mucho más lento.

Un punto importante está relacionado con la programación para Android. De estos tres IDE, sólo IntelliJ IDEA es más o menos adecuado para esto. Hay muchos materiales en Internet sobre programación para Android en Eclipse, pero todos ya están desactualizados; no pierda el tiempo ejecutando un complemento ADT antiguo e intentando hacer al menos algo con él. Quizás el antiguo SDK de Android funcione, pero todos los nuevos ya no funcionarán.

Le mostraré cómo crear una aplicación FXML JavaFX en los tres programas, pero antes de comenzar, necesita instalar un programa más: SceneBuilder (use la versión Java 8). Este es el programa clave donde, de hecho, se realiza toda la construcción visual. Generador de escenas Puede funcionar por sí solo sin un IDE, por lo que puedes ejecutarlo y ver cómo funciona. El resultado será un archivo fxml que contendrá todo el marcado necesario. Este archivo se utiliza en el IDE, en lugar de escribir megatones de código. :-)

conocimientos tradicionales

El programa creado será muy simple: un botón y un campo de texto. Cuando hagas clic en el botón, deja que se agregue el texto "¡Hola!" al campo de texto.

En cada programa, debe especificar la configuración de antemano: la que utiliza el JDK. Si no sabes cómo hacerlo, búscalo en Google.

NetBean

Antes de comenzar, necesita conectar SceneBuilder: Herramientas - Opciones - Java - JavaFX - Página de inicio de Scene Builder. Seleccione el directorio del programa. La configuración sólo debe realizarse una vez. Esto se aplica a todos los IDE.

Cree un nuevo proyecto donde necesite seleccionar "Aplicación FXML JavaFX".

Haga clic en "Finalizar" y, después de un poco de trabajo por parte de NetBeans, vemos los archivos terminados:

  • myfx.java- este es el archivo principal, que realmente inicia todo el programa.
  • FXMLDocumentController.java- este es el "controlador", donde se llevará a cabo la mayor parte de la programación.
  • FXMLDocumento.fxml- este archivo almacena la parte visual.

Ahora ejecuta el programa. Primero, se llevará a cabo el ensamblaje y la compilación (bastante rápido), después de lo cual aparecerá la ventana de nuestro programa.

Esto es genial porque no hemos escrito ni una sola línea de código, pero ya tenemos un programa con un botón que funciona. :-)

Si ha especificado correctamente la ruta a SceneBuilder, puede seleccionar el elemento del menú "Abierto" fichado FXMLDocumento.fxml. Lo mismo sucederá si haces doble clic. Se abrirá SceneBuilder. Si no hay ningún elemento, entonces la ruta se especificó incorrectamente, verifique la configuración.

El principio de funcionamiento en SceneBuilder es el mismo para todos los IDE, por lo que por ahora solo describiré los puntos generales, luego podrás descubrirlo por ti mismo.

Vale la pena señalar que después de editar el archivo, no es necesario cerrar SceneBuilder. Sólo necesita guardar (Ctrl+S) y cambiar al IDE; él mismo recogerá los cambios.

La ventana de SceneBuilder se divide en tres partes:

  • a la izquierda están los conjuntos de componentes, jerarquía y Controlador, donde se indica la clase principal (¡esto es importante!)
  • en el centro está la forma misma, donde tiene lugar la construcción visual.
  • a la derecha están las propiedades de los componentes, divididas en tres pestañas (esta es una división condicional). La pestaña Código es responsable de lo que se utilizará en el archivo java.

La creación de programas FX debe comenzar con un contenedor. En este ejemplo se utiliza NetBeans. Panel de anclaje. Es bastante conveniente y le permite configurar la sangría "correcta" para elementos anidados. Pestaña Contenedores contiene otros contenedores con los que puedes practicar por tu cuenta (yo ni siquiera he dominado la mitad :-)).

La jerarquía de componentes es algo muy conveniente que le permite seleccionar rápidamente el elemento deseado.

Según los términos de la especificación, debemos tener un campo de texto. NetBeans usa Label, pero no eliminaremos nada, solo agregaremos un nuevo elemento campo de texto en la forma (arbitrariamente a tu gusto).

La vista previa es posible en SceneBuilder (Ctrl+P). En este modo, sólo se muestran el formulario y todos los elementos "sin programación java".

Ahora un punto importante: para poder utilizar un componente en un programa java (en nuestro código), se deben hacer dos cosas.

La primera es comprobar que se especifica el controlador correcto. En nuestro caso, NetBeans ya hizo todo y especificó myfx.FXMLDocumentController.

Como puede ver, este es el controlador del archivo. FXMLDocumentController.java(paquete.controlador). Los IDE no siempre lo indican, pero esto es importante, ya que el archivo fxml (más precisamente, el código java) lo usa para vincular.

El segundo punto es que el componente utilizado debe tener su propio ID: este es el parámetro fx:id. Aquí indiqué campo de texto1.

Aparecerá un mensaje de triángulo amarillo en la parte superior indicando que supuestamente no hay conexión entre esta identificación y el controlador. No le prestes atención por ahora, hablaremos de ello más tarde.

El botón que llenará el campo de texto también debe tener su propia identificación, así como un método de evento onAction (este es el evento principal del componente, y no onClick, como en Delphi). NetBeans ya se ha encargado de esto, por lo que no tendremos que escribir nada.

En este punto se puede completar la construcción visual. Guarde y cambie a NetBeans. Vemos que el archivo FXMLDocumento.fxml cambiado: agregado campo de texto1:

Ahora necesitamos usar de alguna manera el campo de texto en el código Java. A diferencia de Delphi, NetBeans no crea ningún código para esto, por lo que tendremos que agregarlo semimanualmente. Para hacer esto, diferentes IDE usan diferentes métodos, pero el principio general es que debe colocar el cursor en el campo deseado en el editor y realizar algunas "acción". En NetBeans se llama Instalar el controlador en el menú Fuente. (Sí, Java tiene grandes problemas con los nombres...)

Después de ejecutar este comando, habrá una transición al archivo FXMLDocumentController.java, donde se agregará una declaración de variable al código campo de texto1:

Tenga en cuenta "@FXML": esta anotación indica que el código se está utilizando en FXML de alguna manera. Después de estos cambios, SceneBuilder ya no emitirá una advertencia como lo hacía anteriormente el triángulo amarillo. Si ejecuta SceneBuilder nuevamente, puede verificar esto.

Lanzamos el programa de ejecución para la prueba. Ahora nuestra tarea es completar el campo de texto haciendo clic en el botón. Como ya entendiste el método. manejarBotónAcción hace el trabajo correcto. Agregamos en él:

TextField1.setText("¡Hola!");

Presta atención a cómo funciona. finalización del código después de presionar el punto.

A medida que escribe, NetBeans limitará las opciones donde podrá seleccionar la opción que desee. Esta característica hace la vida muy fácil a los programadores, ya que hay demasiadas opciones y esto permite evitar varios tipos de errores de sintaxis al escribir.

Esta característica está presente en todos los IDE, aunque existen diferencias en su implementación y uso.

Lanzamos el programa y vemos que todo funciona como debería.

Tuvimos que escribir solo una línea de código y realizar algunos pasos adicionales en el editor.

Eclipse

Eclipse tarda un poco más en iniciarse que NetBeans. Primero debe especificar la ruta a SceneBuilder. Esto se hace en Ventana - Preferencias - JavaFX.

Tenga en cuenta también que Eclipse no es un programa ruso (ni siquiera sé si existe un idioma ruso para ello).

Cree un nuevo proyecto y seleccione JavaFX.

Hacer clic Próximo y vaya a la página de configuración. Aquí indiqué el nombre del proyecto, como antes. mifx(Tengo diferentes directorios de proyectos para diferentes IDE, por lo que no se superponen entre sí).

Aquí debe seleccionar el tipo de aplicación, el tipo de contenedor y el nombre del controlador. Hacer clic Finalizar y Eclipse genera rápidamente el esqueleto de nuestro programa futuro.

Aquí todo es muy similar, solo se ha agregado un archivo más. aplicación.css- Sí, sí, ¡en JavaFX puedes usar CSS para personalizar el diseño! Eclipse generó inmediatamente un código de conexión para este archivo.

Ejecutemos el programa y asegurémonos de que no haya errores.

A diferencia de NetBeans, este formulario está completamente vacío. Abrámoslo en SceneBuilder usando el menú contextual.

Y aquí vemos que no hay forma. Pero, de hecho, existe, solo que de forma predeterminada se usa el tamaño calculado (alto y ancho), que en este caso es cero. ¡No hay componentes! En nuestro caso esto no es exactamente lo que necesitamos, por lo que seleccionaremos BorderPane en la lista jerárquica y en las propiedades. Ancho preferido Y Altura preferida Indiquemos algunos valores. Estas propiedades especifican el ancho y alto "deseados". Después de esto, el formulario “aparece” inmediatamente.

El contenedor BorderPane consta de 4 partes: superior, derecha, inferior, izquierda y centro. Los componentes deben colocarse en diferentes partes; su posición dependerá de esto cuando se cambie el tamaño de la ventana.

Es bastante difícil de explicar con palabras, simplemente intente colocar algunos botones y luego cambie el tamaño de la ventana en la vista previa.

No me puse demasiado sofisticado y coloqué un campo de texto en la parte superior y un botón en el centro.

Ahora comprobemos que el controlador esté especificado: en este caso aplicación.SampleController- Eclipse hizo el trabajo por nosotros.

Ahora necesitamos especificar la identificación de nuestros elementos. Para el botón que configuré btn1 y el campo de texto campo de texto1. Nuevamente recibimos el mensaje del “triángulo amarillo”.

Para el botón, especificamos un método para el evento: btn1Haga clic.

Guardemos y volvamos a Eclipse. Veremos que el archivo Muestra.fxml actualizado, pero aparecieron íconos de advertencia junto a algunas líneas.

La situación aquí es exactamente la misma que en NetBeans: es necesario realizar ediciones en modo "semiamanual". En Eclipse, esto se hace usando el menú contextual del segundo botón del mouse: Solución rápida o tecla de acceso rápido Ctrl+1(lo que sea más conveniente).

Al mismo tiempo, aparece una pista sobre la acción prevista. Por ejemplo para campo de texto1 Se propone agregar un identificador al controlador:

y para el botón también hay un método de controlador de eventos:

Al mismo tiempo, Eclipse se ralentiza un poco y los cambios no se muestran inmediatamente en la pantalla. Aquí debe cambiar al archivo del controlador o esperar un poco. Como resultado, se agregarán los cambios necesarios al código y los íconos de advertencia desaparecerán.

Agreguemos nuestro código como lo hicimos antes en NetBeans.

Observe cómo el autocompletado funciona de forma más inteligente. En modo automático se ralentiza un poco, pero si pulsas Ctrl+Espacio(La misma combinación se usa en muchos IDE), esto le permite obtener buena ayuda.

Lanzamos nuestro programa.

Y estamos agregando otro IDE a nuestro haber. :-)

IDEA IntelliJ

IntelliJ IDEA se inicia con bastante lentitud, por lo que puede consultar su correo electrónico. :-)

Nuevamente, especifique la ruta a SceneBuilder: Archivo - Configuración:

E indique su nombre (como de costumbre - myfx):

IntelliJ IDEA se inicializará y veremos los tres archivos ya familiares. Ejecutemos el programa para comprobar si hay errores.

Este también es un formulario vacío, pero se indica el título del programa. Si miras el código principal.java, entonces veremos la línea:

PrimaryStage.setTitle("Hola mundo");

Este es el título de la aplicación. En otros IDE falta esta línea, pero ahora sabemos para qué sirve el “escenario de teatro”. ;-)

Cambie a SceneBuilder (similar a Eclipse): con el segundo botón del mouse debe seleccionar Abrir en SceneBuilder.

Aquí también hay un formulario vacío, pero con un contenedor. Panel de cuadrícula. Instalar Ancho preferido Y Altura preferida para mostrar el formulario.

El GridPane en sí es una cuadrícula de celdas para elementos. Creo que no tiene sentido repetirnos: todas las acciones serán similares:

  • colocar un botón y un campo de prueba,
  • asignarles una identificación,
  • para el botón, especifique un método para procesar el clic,
  • No olvides comprobar si el controlador está especificado ( muestra.Controlador).

Cierre SceneBuilder y regrese a IntelliJ IDEA. Aquí debe agregar identificadores al código y también crear un método para reaccionar ante el clic de un botón.

IntelliJ IDEA ofrece dos formas de hacer esto. Primero, cuando pase el mouse sobre el "área problemática", aparecerá una sugerencia en la que puede hacer clic:

El segundo es una tecla de acceso rápido. Alt+Entrar

Cada vez que lo agrega, cambia al archivo del controlador, donde puede ver inmediatamente los cambios.

En este caso, tenga en cuenta que no se agrega la línea "@FXML". Si lo agregamos manualmente antes de las variables y el método, IntelliJ IDEA ofrecerá inmediatamente agregar la clase Java requerida:

En general, IntelliJ IDEA muestra una inteligencia bastante buena y actúa como asistente en la escritura de código. Y lo hace de forma independiente sin pulsar botones innecesarios.

Bueno, agreguemos nuestro código para el controlador y ejecutemos el programa:

¡Genial, todo funciona!

Total

La conclusión principal es La programación visual es posible en Java. Puede que no sea lo ideal, pero es bastante adecuado, especialmente para principiantes. Aprender un idioma es mucho más interesante cuando hay algún resultado tangible: la programación orientada a objetos, las clases y otros conocimientos son buenos, pero es mejor comenzar con botones, campos de entrada, menús y todo lo que implica un programa normal. Y la consola es aburrida y poco interesante.

Traje tres IDE no por casualidad. Hay muchos ejemplos en Internet para Java y todos son para programas diferentes. Personalmente, todavía no he decidido cuál es mi preferencia, ya que todos tienen sus pros y sus contras. Probablemente necesitemos trabajar con todos, entonces quedará claro.

Pero el punto clave es la capacidad de trabajar con SceneBuilder. La creación de un formulario en JavaFX es ligeramente diferente a Delphi, principalmente en el uso de contenedores complejos (se pueden anidar unos dentro de otros). Por lo tanto, primero debe ocuparse de ellos y luego podrá encargarse de los componentes mismos.

Presentamos a su atención una adaptación de un artículo de Martin Heller, programador y editor del recurso JavaWorld. Probablemente ya haya oído hablar de los tres IDE más populares para el desarrollo de Java. El 90 por ciento de los programadores industriales utilizan Eclipse, NetBeans o IntelliJ IDEA, y cada uno de estos IDE tiene sus propias ventajas y desventajas. En este artículo intentaremos describirlos para que entiendas cuál es el adecuado para ti. Aunque, por supuesto, es mejor probar los tres en el trabajo y descubrir cuál funciona mejor para ti. Ninguna reseña puede reemplazar esto. He trabajado con estos IDE antes, pero para este estudio instalé IntelliJ IDEA Ultimate 2016.2, Eclipse Neon Java EE y NetBeans 8.1 Java EE en una computadora portátil MacBook Pro. Probé el IDE en varios proyectos Java de código abierto.

Qué esperar de un IDE

Un IDE moderno para un "desarrollador de Java saludable" debe ser compatible con Java 8, Scala, Groovy y otros lenguajes de máquinas virtuales Java que utiliza habitualmente. También sería útil la compatibilidad con los principales servidores de aplicaciones y los marcos web más populares, incluidos Spring MVC, JSF, Struts, GWT, Play, Wicket, Grails y Vaadin. El IDE debe ser compatible con cualquier compilación de sistema de control de versiones, como Ant, Maven o Gradle, junto con Git, SVN, CVS, Mercurial o Bazaar. Además, para el entorno de desarrollo es importante poder trabajar con bases de datos y la capa de cliente de su pila, tener soporte para JavaScript, TypeScript, HTML, SQL, JavaServer Pages, Hibernate y Java Persistence integrados. API. Finalmente, es lógico esperar que el IDE le permita editar, crear, depurar y probar sistemas sin estrés innecesario. Idealmente, el entorno de desarrollo admite no solo la finalización inteligente del código, sino también la refactorización inteligente y las métricas del código. En muchos casos, será útil admitir marcos de prueba y apéndices. Si su equipo utiliza un sistema de tickets y CI/CD, necesita el IDE para poder conectarse a ellos. Y decida si necesita implementación y depuración en contenedores y nubes. Hemos enumerado solo las expectativas básicas (quizás tenga algo que agregar) y ahora echemos un vistazo más de cerca a nuestros rivales.

IDEA IntelliJ


En términos de características y precio, IntelliJ IDEA viene en dos versiones: la edición Community gratuita y la edición Ultimate paga con funcionalidad extendida. La edición comunitaria está diseñada para el desarrollo de JVM y Android. La versión gratuita es compatible con Java, Kotlin, Groovy y Scala; Androide; Maven, Gradle y SBT; Funciona con sistemas de control de versiones Git, SVN, Mercurial y CVS. La edición Ultimate es adecuada para el desarrollo web y empresarial. Esta versión del IDE funciona no sólo con Git, SVN, Mercurial y CVS, sino también con Perforce, ClearCase y TFS; en él puedes escribir en JavaScript y TypeScript; Naturalmente, hay soporte para Java EE, Spring, GWT, Vaadin, Play, Grails y muchos otros frameworks. Y, por supuesto, no podríamos prescindir de SQL y de herramientas para trabajar con bases de datos. La idea que guía a los desarrolladores de este IDE a la hora de formular una política de precios es que su versión comercial (Ultimate) ocupe su lugar en los ordenadores de los profesionales, por lo que aumentará su productividad. Si un programador de Java gana 50.000 dólares al año (o incluso más), el retorno de la inversión gastada en el IDE de pago IntelliJ IDEA (500 dólares por una suscripción anual) se producirá muy rápidamente debido a una ligera aceleración de su trabajo. En los años siguientes, el precio para las empresas baja, para las nuevas empresas y los autónomos es significativamente menor y para los estudiantes, profesores, campeones de Java y desarrolladores de código abierto es completamente gratuito. IntelliJ IDEA impresiona por su profunda comprensión del código, su ergonomía inteligente, sus funciones de desarrollo integradas y su compatibilidad con varios idiomas.
Figura 1. IntelliJ IDEA muestra la cantidad de advertencias y conjeturas basadas en el análisis estadístico del código Java. Puedes estudiar los supuestos con más detalle haciendo clic sobre ellos, como se muestra en la imagen; en muchos casos recibirá una lista con opciones y opciones de corrección.

Comprensión profunda del código.

El resaltado de sintaxis y la finalización sencilla de código son algo común en cualquier editor Java moderno. IDEA fue más allá al ofrecer "autocompletado inteligente". Este término significa que el entorno de desarrollo muestra una lista de los símbolos más relevantes aplicables en un contexto determinado. La lista de símbolos depende no sólo del contexto como tal, el "generalmente aceptado", sino también del estilo de programación del desarrollador, de la frecuencia con la que utiliza determinados operadores. "Finalización de cadena" incluso muestra una lista de símbolos aplicables que están permitidos a través de métodos o captadores en el contexto actual. Además, para miembros estáticos o constantes, IDEA agrega automáticamente las declaraciones de importación necesarias. En todos los casos de autocompletado, IDEA intenta adivinar el tipo de símbolo en tiempo de ejecución, refinar su selección e incluso aplicar una conversión de tipo si es necesario. El código Java a menudo incluye fragmentos de otros lenguajes como cadenas. IDEA puede inyectar código SQL, XPath, HTML, CSS o JavaScript en cadenas literales de Java. En este sentido, el IDE puede refactorizar código en múltiples idiomas. Por ejemplo, si cambia el nombre de una clase en una asignación JPA, IDEA actualizará la entidad JPA correspondiente y la clase de expresión. Al refactorizar un fragmento de código, el desarrollador tiene un deseo (bastante natural): que todos los duplicados de este código también sean refactorizados. IDEA Ultimate encuentra duplicados y fragmentos similares y también les aplica refactorización. IntelliJ IDEA analiza el código al cargarlo y directamente cuando lo ingresa. Señala problemas sospechosos (como en nuestra imagen de arriba) y, opcionalmente, ofrece una lista de posibles soluciones rápidas a los problemas encontrados.

Ergonomía


IntelliJ IDEA está diseñado para no sacar al desarrollador de un estado de productividad fluida una vez que ya se encuentra en él. La ventana del Proyecto, que se muestra en la primera imagen de la izquierda, desaparece con un simple clic del mouse para que el programador pueda concentrarse en la ventana del editor de código. Para todas las acciones necesarias al escribir código, existen combinaciones de teclas para llamarlas rápidamente, incluida la definición de símbolos en ventanas emergentes. Al principio, todas estas combinaciones son difíciles de recordar, pero poco a poco te acostumbras y solo las utilizas. Sin embargo, incluso si el programador no utiliza atajos de teclado, como muestra la práctica, se acostumbra a trabajar en IDEA de forma fácil y rápida. Me gustaría destacar especialmente el depurador IDEA: los valores de las variables se muestran directamente en la ventana del editor, junto al código fuente correspondiente. Cuando el estado de una variable cambia, el color de resaltado también cambia.

Herramientas integradas

IntelliJ IDEA proporciona una interfaz unificada para la mayoría de los sistemas de control de versiones, incluidos Git, SVN, Mercurial, CVS, Perforce y TFS. Puede gestionar los cambios directamente en el IDE, lo cual es muy conveniente. Cuando estaba probando IDEA, deseaba que el último cambio en el código fuente apareciera en la ventana del editor como una anotación (como sucede, por ejemplo, en Visual Studio). Resulta que IDEA tiene un complemento especial para esto. IDEA también viene con herramientas de compilación, un tiempo de ejecución de prueba, herramientas de cobertura y una ventana de terminal incorporada. IntelliJ no tiene su propio generador de perfiles, pero se pueden conectar otros de terceros mediante complementos. Por ejemplo, YourKit, creado por un antiguo desarrollador principal de JetBrains, o VisualVM (que es una versión reempaquetada del generador de perfiles NetBeans). La depuración en Java puede ser complicada cuando suceden todo tipo de cosas misteriosas en clases para las que no tienes el código fuente. IDEA incluye un descompilador para tales casos. La programación del lado del servidor en Java requiere interacción frecuente con bases de datos, por lo que los programadores de IDEA Ultimate apreciarán la conveniencia de las herramientas para trabajar con SQL y bases de datos. Pero si sus capacidades no son suficientes para alguien, puede comprar la versión IDEA Ultimate con un IDE SQL integrado (DataGrip). Sin embargo, será un poco más cara que la suscripción normal a IDEA Ultimate. IntelliJ IDEA es compatible con todos los principales servidores de aplicaciones JVM y le permite implementar y depurar en estos servidores, lo que elimina las dificultades familiares para todos los programadores de Java Enterprise. IDEA también es compatible con Docker (a través de un complemento que agrega una ventana de herramientas Docker especial al entorno de desarrollo. Por cierto, IDEA tiene un montón de complementos.

Un verdadero políglota

IDEA ha ampliado el soporte de código para Spring, Java EE, Grails, Play, Android, GWT, Vaadin, Thymeleaf, Android, React, AngularJS y otros marcos. Probablemente hayas notado que no todos son específicos de Java. IDEA "comprende" otros lenguajes desde el primer momento: Groovy, Kotlin, Scala, JavaScript, TypeScript y SQL. Si no ve el idioma que está buscando en esta lista, actualmente hay 19 complementos de lenguaje IntelliJ, que admiten específicamente R, Elm y D.


Durante muchos años, Eclipse mantuvo con confianza la palma en popularidad entre los IDE de Java. Este entorno es completamente gratuito, de código abierto y escrito principalmente en Java. Sin embargo, su arquitectura modular permite utilizar Eclipse con otros lenguajes. El proyecto Eclipse, iniciado por IBM, apareció en 2001. Querían reemplazar la familia de entornos de desarrollo IBM Visual Age basados ​​en Smalltalk. Bueno, el objetivo principal, como sugiere incluso el nombre, era eclipsar a Microsoft Visual Studio (eclipse en inglés significa eclipse). La portabilidad de Java ayuda a que Eclipse sea un entorno multiplataforma: este IDE se ejecuta en Linux, Mac OS X, Solaris y Windows. Para bien o para mal, el Java Standard Widget Toolkit (SWT) es al menos parcialmente responsable de la apariencia de Eclipse. Eclipse debe su rendimiento (o, como dicen algunos simpatizantes, su falta) a la JVM. Eclipse funciona bastante lento, ya que está basado en hardware bastante antiguo y en versiones antiguas de JVM. Incluso hoy en día parece lento, especialmente si le adjuntas muchos complementos. Parte de la sobrecarga de recursos de Eclipse se puede atribuir a su compilador incremental incorporado, que se ejecuta cada vez que se carga un archivo o se actualiza el código. Esto es algo útil; detecta errores al ingresar texto. Independientemente de la compilación, el proyecto Eclipse mantiene un modelo de contenido que contiene información sobre la jerarquía de tipos, referencias y declaraciones de elementos Java. La versión actual de Eclipse se llama Neon (4.6.0). Instalé Eclipse Java EE IDE para desarrolladores web (esta no es la única opción, puedes elegir otra). Contiene un SDK de Eclipse mínimo y se agregan complementos según demanda. Por cierto, trabajar con complementos en este IDE no es para personas débiles de corazón. Los complementos de terceros a menudo entran en conflicto entre sí, aunque sus especificaciones oficiales no dicen nada al respecto.
Figura 2. De izquierda a derecha, hay cuatro barras de herramientas de Eclipse: Explorador de paquetes, Editor de Java, Estructura de clases de Java y Lista de tareas. El proyecto cargado en Eclipse en esta imagen es el marco de prueba JUnit. Los paneles se pueden intercambiar fácilmente.

Soporte de complementos

El ecosistema de complementos de Eclipse es a la vez la fortaleza del IDE y uno de sus principales problemas. Es debido a la incompatibilidad de los complementos que a veces ensamblados enteros fallan y los programadores tienen que empezar a trabajar de nuevo. Actualmente hay más de 1700 complementos escritos para Eclipse, oficiales y no oficiales, que pueden funcionar muy bien o no. Los complementos de Eclipse admiten más de 100 lenguajes de programación y casi 200 marcos de desarrollo de aplicaciones. La mayoría de los servidores Java también son compatibles: si designa una nueva conexión de servidor desde Eclipse, accederá a una lista de carpetas de proveedores donde encontrará alrededor de 30 servidores de aplicaciones. Sólo habrá hasta nueve variantes de Apache Tomcat. Los proveedores comerciales tienden a agrupar sus soluciones: por ejemplo, solo hay un elemento de Red Hat JBoss Middleware, y en su interior encontrará herramientas de servidor WildFly y EAP, así como JBoss AS.

Edición, refactorización y depuración.

Su primera experiencia con Eclipse puede resultar confusa e incluso confusa. El primer paso es configurar Eclipse y acostumbrarse a su arquitectura conceptual de espacios de trabajo, vistas y vistas. Todo esto está determinado por los complementos que haya instalado. Para el desarrollo de Java del lado del servidor, probablemente utilizará las vistas de navegación Java, Java EE y Java, la vista Explorador de paquetes, la vista de depuración, la vista de sincronización de comandos de herramientas web, la vista de desarrollo de base de datos y la vista de depuración de base de datos. En la práctica, todo cobra sentido cuando abres las ventanas que necesitas. Eclipse casi siempre ofrece varias formas de resolver un problema particular. Por ejemplo, puede ver el código utilizando la perspectiva de navegación de Java. Qué elegir es cuestión de gustos y elección. Una búsqueda especial de Java le permite encontrar declaraciones, referencias y apariciones de paquetes, tipos, métodos y campos de Java. También puede utilizar el acceso de búsqueda rápida y la vista previa. Se pueden generar patrones de código comunes a partir de plantillas de código. Java Refactoring en Eclipse admite 23 operaciones, que van desde operaciones comunes de cambio de nombre hasta transformaciones menos obvias (como en el libro de Martin Fowler). Eclipse admite la depuración local y remota, siempre que esté utilizando una JVM que admita la depuración remota. La depuración es bastante estándar: usted define puntos de interrupción y luego ve las variables en la pestaña de depuración. Por supuesto, puede revisar su código y evaluar expresiones. Eclipse tiene una amplia base de datos de documentación de diferentes edades, valores y utilidad. Desafortunadamente, encontrar una imagen en las instrucciones que no corresponda a la versión actual, por ejemplo, con una interfaz y un diseño de botones obsoletos, es algo común en este IDE. Desafortunadamente, el problema de las actualizaciones tardías de la documentación es muy común en cualquier proyecto de código fuente.


NetBeans comenzó como un proyecto de estudiantes universitarios en Praga en 1996. En 1997, el IDE se convirtió en un producto comercial, y en 1999 fue comprado por Sun Microsystems (los padres de Java) y al año siguiente presentó una versión de código abierto. La versión actual 8.1 se ejecuta en máquinas con Windows, Mac OS X, Linux y Solaris. Bueno, el paquete portátil se puede ejecutar en cualquier sistema para el que exista una máquina Java. Descargué el paquete Java EE por mí mismo, es uno de los seis paquetes de descarga posibles. Este paquete soporta JavaScript y HTML, GlassFish y Tomcat, pero no soporta PHP, C/C++/Fortran, Groovy y Grails: se pueden obtener en el paquete “Todo Incluido” (o simplemente “Todo”). Sin embargo, si lo deseo, puedo descargar soporte para los idiomas anteriores en cualquier momento seleccionando el complemento apropiado (o cualquier otro). NetBeans tiene menos que Eclipse, pero normalmente no entran en conflicto entre sí. Este otoño, Oracle (que adquirió NetBeans después de adquirir Sun Microsystems) decidió transferir este entorno de desarrollo bajo el ala de Apache Software Foundation, junto con todos los derechos, código fuente, marca registrada, dominio "netbeans.org" y otra infraestructura. elementos. Por lo tanto, el futuro del proyecto aún es incierto, aunque el sistema anteriormente tenía ciertos privilegios relacionados. Por lo tanto, fue NetBeans el primero en recibir soporte para Java 8 casi inmediatamente después del lanzamiento de la plataforma actualizada, y fue llamado el "IDE oficial para Java 8". Sin embargo, un mes después de su lanzamiento, esta ventaja se perdió: fue entonces cuando otros IDE también recibieron soporte para Java 8. Sin embargo, quiero señalar que el soporte de Java 8 de NetBeans es realmente bueno y que el IDE es excelente para incorporar trucos de Java 8 en código "antiguo". Sus editores, analizadores de código y convertidores ayudarán al programador a actualizar el código utilizando construcciones características de Java 8: expresiones lambda, operadores funcionales y referencias de métodos. Los complementos de JavaScript en NetBeans 8 hacen un gran trabajo al admitir Node.js y las últimas herramientas de JavaScript como Gulp y Mocha, además de admitir el intérprete de JavaScript Nashorn.
Figura 3. Aquí NetBeans está ejecutando el mismo proyecto basado en Maven en el que se abrió IntelliJ IDEA en la Figura 1. Observe la funcionalidad avanzada en el menú contextual y el submenú de refactorización.

Edición y refactorización

NetBeans Editor admite idiomas, detecta errores a medida que escribe y le ayuda con información sobre herramientas y finalización inteligente de código. Según la sensación subjetiva, el IDE hace frente a esta tarea más rápido que Eclipse, pero algo más lento que IntelliJ IDEA. Además, NetBeans tiene una gama completa de herramientas de refactorización (como se muestra en la Figura 3) que permiten al programador reestructurar el código sin romperlo, realizar análisis de código fuente y también ofrece una amplia gama de sugerencias para soluciones rápidas o extensiones de código. NetBeans incluye la herramienta de diseño Swing GUI, anteriormente conocida como "Proyecto Matisse". Los desarrolladores aprecian mucho la herramienta de refactorización automatizada Inspect & Transform, introducida en NetBeans 7.1. Le permite analizar el código del proyecto y realizar mejoras sugeridas. Aunque personalmente prefiero probar todo mi código primero con pruebas unitarias y solo luego ejecutar herramientas que puedan realizar cambios radicales. He sufrido repetidamente todo tipo de correcciones automáticas que tuvieron consecuencias irreparables.

Creación, depuración y creación de perfiles

NetBeans tiene un excelente soporte nativo para Maven y Ant, así como un complemento para Gradle. Me alegré mucho cuando descubrí que el sistema trataba los proyectos de Maven como "nativos". Esto significa que pueden simplemente abrirse en lugar de importarse. NetBeans también contiene una visualización gráfica atractiva (y útil) para las dependencias de Maven. El depurador Java de NetBeans no es malo, pero tiene algunas advertencias. Un depurador visual independiente permite al programador tomar capturas de pantalla de la interfaz gráfica del usuario y explorar las interfaces de las aplicaciones creadas con JavaFX y Swing. El generador de perfiles NetBeans hace más obvio cómo se utilizan la CPU y la memoria y tiene excelentes herramientas para encontrar pérdidas de memoria.

Comparación del trío de gigantes.

He utilizado los tres IDE, Eclipse, NetBeans e IntelliJ IDEA, a lo largo de los años en el orden cronológico indicado. Cada vez que cambiaba a un IDE diferente, sentía que mi productividad aumentaba. Pero incluso cuando estaba firmemente convencido de que IDEA era mi elección final, a veces tenía que volver a uno de los dos IDE restantes. Este fue el caso, por ejemplo, en un momento en que Eclipse era la única herramienta que soportaba el desarrollo de Android (hoy existe Android Studio, el IDE oficial actual para Android, está basado en IntelliJ IDEA). Por supuesto, los tres IDE tienen sus seguidores y detractores. Conozco a muchos desarrolladores de Java que aman IntelliJ IDEA, así como a fanáticos leales de Visual Studio C++ y C#. La mayoría de las veces, estas personas están contentas con el hecho de que su productividad ha aumentado y el costo de la suscripción anual se reembolsa después de unas pocas semanas de usar la versión paga de IDEA. Sin embargo, los usuarios de NetBeans y Eclipse también suelen estar apegados a sus herramientas y se preguntan por qué otros programadores están dispuestos a pagar dinero por IDEA. Aconsejaría a los nuevos desarrolladores de Java que se mantengan alejados de Eclipse. A pesar de que sigue siendo el IDE más popular para Java, es difícil para los principiantes: es fácil perderse en la naturaleza de Eclipse, tanto durante la implementación del sistema como durante el trabajo diario. Eclipse tiene el ecosistema de complementos más extenso de todos los IDE y también es el que tiene más probabilidades de fallar debido a la instalación de un conjunto incompatible de estos mismos complementos. Desafortunadamente, mientras usaba Eclipse, tuve que eliminar repetidamente otro ensamblaje roto de este IDE e instalar un paquete "limpio". NetBeans es bueno para la mayoría de los desarrolladores, tiene un excelente generador de perfiles y lo uso a veces. Sin embargo, prefiero pagar por IntelliJ IDEA Ultimate. Y el futuro de NetBeans aún no está claro. Para los nuevos desarrolladores de Java que aún no tienen el presupuesto para comprar herramientas, recomiendo usar NetBeans o IntelliJ IDEA Community Edition según sus necesidades. Vale la pena elegir el primero para aquellos que codifican servidores Java, pero solo si no entra en la categoría de aquellos que pueden obtener IntelliJ IDEA Ultimate gratis o con un gran descuento (estudiantes o programadores que están desarrollando un código abierto). proyecto).

IDE de Java "ligero"

Hoy en día, la mayoría de los desarrolladores de Java utilizan IDEA, NetBeans o Eclipse, pero a veces se necesitan entornos de desarrollo más ligeros o incluso editores de código como Sublime Text, emacs o vim que admitan complementos de Java. A continuación enumero opciones razonables para aquellos que buscan algo un poco más ligero:
  • DrJava es un pequeño entorno de desarrollo gratuito. Fue creado para estudiantes de la Universidad Rice y se ha vuelto bastante popular: DrJava ya se ha descargado más de 2 millones de veces. DrJava está diseñado para promover el desarrollo basado en pruebas. El marco contiene un editor de código inteligente, un panel de interacción para evaluar el código de la aplicación, un depurador a nivel de fuente y herramientas de prueba unitaria.
  • BlueJ es un entorno de desarrollo Java gratuito creado por especialistas de la Universidad de Kent para programadores principiantes. Este entorno es compatible con Oracle. BlueJ tiene una interfaz mucho más limpia y sencilla que los IDE profesionales como NetBeans o Eclipse, e incluso incluye un tutorial dedicado sobre los conceptos básicos de programación orientada a objetos.
  • JCreator es otro pequeño IDE de Java para Windows, escrito en C++ (por motivos de rendimiento). La versión Pro paga está equipada con un depurador, soporte para Ant y asistentes de código, pero la versión gratuita (LE) no.
  • Eclipse Che es un IDE en la nube basado en navegador que admite Java, C++, JavaScript, Python, PHP, Ruby y SQL.

Elegir un IDE de Java según el proyecto

Intenté describir los importantes beneficios de cada uno de los tres IDE de Java más importantes y mencioné brevemente a sus pequeños y útiles rivales. Para elegir el IDE adecuado, debe sopesar los pros y los contras y compararlos con sus necesidades y las de sus proyectos. Si te unes a un equipo, es una buena idea utilizar el mismo IDE que otros desarrolladores, aunque no es obligatorio. Si su equipo aloja fuentes en GitHub, naturalmente será más conveniente si su IDE admite GitHub. Sí, puedes manejar la transferencia de código sin un IDE usando el cliente GitHub o la línea de comando git. Pero, ¿qué tan efectivos serán esos saltos entre diferentes sistemas? También es importante que el IDE admita el sistema de compilación. Por ejemplo, si se trata de Maven, es poco probable que desee reconstruir el sistema en Ant para realizar pruebas locales. Afortunadamente, los tres grandes IDE de Java son compatibles con Ant, Maven y Gradle, ya sea de forma inmediata o con un complemento. Pero para los IDE “pequeños” esto puede no ser cierto. Es un deseo natural que el entorno de desarrollo admita la versión de JRE que se utiliza en el proyecto. Si las versiones no coinciden, existe una alta probabilidad de que aparezcan muchos errores adicionales que, por ejemplo, aparecerán en usted, pero no en otros miembros del equipo. Es poco probable que tal situación tenga un buen efecto en tu karma. Francamente, es más probable que la inconsistencia de JRE se deba a errores de configuración que a la falta de soporte de IDE, a menos que el IDE aún no se haya actualizado a una nueva versión de Java. Simplemente crea que si su IDE es totalmente compatible con los marcos y tecnologías que se utilizan en el proyecto, realmente ayudará a acelerar el trabajo. Lo más probable es que lo consigas de todos modos. Pero, si el IDE comprende cómo se relacionan las declaraciones JPA con las clases de expresión y entidades JPA (como IntelliJ), dedicará mucho menos tiempo al código relacionado con JPA que si no lo comprende por completo. Bueno, si el IDE admite el marco de prueba y el ejecutor de código utilizado para el proyecto, puedes ejecutar pruebas sin cambiar el entorno de trabajo. Esto también acelerará el proceso de desarrollo. Finalmente, el trabajo es más rápido si el IDE es compatible con el sistema de tickets y seguimiento de errores del proyecto. Nuevamente, puede usar un cliente web o independiente, digamos JIRA, pero es difícil no estar de acuerdo en que verificar los tickets es mucho más rápido sin cambiar la ventana, mientras permanece directamente en el IDE.

¿Gratis o de pago?

Después de probar IntelliJ IDEA Ultimate, tuve la sensación de que era el entorno de desarrollo adecuado. Una especie de Cadillac del mundo IDE. Nuevamente, si bien no es gratuito, creo que las ganancias en productividad al usarlo valen la suscripción anual. Para los principiantes que no pueden pagar una suscripción anual a IntelliJ IDEA Ultimate, recomiendo usar NetBeans en lugar de Eclipse. Por supuesto, el ecosistema de complementos de Eclipse está mucho más desarrollado hoy que cualquier otro IDE, pero está muy descuidado y descuidado: un desarrollador novato corre el riesgo de quedarse atrapado en la jungla del IDE en lugar de sumergirse en el trabajo. También mencioné alternativas "ligeras", dos de las cuales fueron diseñadas específicamente con fines educativos. Bueno, si estás empezando a aprender idiomas y prefieres un ambiente minimalista, ¿por qué no?

Del autor: Entre todos los lenguajes que se utilizan en el desarrollo web, Java es el más sensible. Este PL se caracteriza por una sintaxis compleja, una alta tipificación de datos e inmunidad a errores. Por eso esta herramienta para Java – IDE – es tan popular. El entorno de desarrollo ayuda a evitar los obstáculos que le esperan a un programador que escribe en un editor de texto. Si no quiere recorrer el largo y espinoso camino de un escritor de textos, bienvenido a nuestra revisión de los principales entornos de desarrollo más adecuados para el lenguaje del café.

Necesitas un IDE para el desarrollo

Java es uno de esos lenguajes para los cuales el entorno de desarrollo no es un capricho de especialistas individuales, sino un verdadero medio de supervivencia. El lenguaje complejo no se puede leer ni ejecutar hasta que todos los elementos del sistema estén configurados correctamente. A veces, a un desarrollador web le resulta difícil entender por qué necesita un software tan voluminoso y potente. Todos los lenguajes web, como HTML/CSS, JavaScript y PHP, se pueden implementar sin software adicional (aunque para este último existe incluso un IDE de pago: PHPStorm). Pero, tan pronto como se trata de Java, todo encaja. Los documentos de código largos y complejos no se pueden organizar manualmente.

Pero, como siempre, hay opositores a la ideología. Algunos desarrolladores llaman a los IDE “muletas” que sólo necesitan los programadores poco capacitados. Para ellos, descargar un entorno de desarrollo es como traicionar principios básicos. Desafortunadamente, este enfoque puede dejar al desarrollador atrás en la evolución de la programación: los grandes proyectos empresariales, como las aplicaciones web altamente funcionales, requieren una estrecha interacción entre los miembros del equipo y un rápido lanzamiento y depuración del código. Además, la habilidad para trabajar con los principales IDE es un criterio para el empleo en los mejores puestos.

Por supuesto, hay quienes saben cómo ajustar tan bien sus herramientas de desarrollo que un IDE completo resulta innecesario. Sin embargo, el entorno de desarrollo consume recursos del dispositivo necesarios para ejecutar otras herramientas de desarrollo. Esto es especialmente notable en versiones obsoletas de Windows/Linux: tan pronto como se inicia el entorno de desarrollo, otros recursos se estancan.

Los desarrolladores online casi siempre prefieren los editores de texto. Son más ligeros y te permiten crear soluciones en tu rodilla. No hay herramientas adicionales, no se requiere una configuración profunda y la gama de software es mucho más amplia. Esta es la mentalidad que mantienen los programadores web hasta que empiezan a trabajar con Java.

quiero elegir un programa

El campo de la programación ofrece muchas soluciones para crear código completo. Esto es especialmente cierto para diferentes entornos de desarrollo. No son sólo las grandes empresas como Oracle las que están creando IDE. Trabajar en este tipo de software suele ser prerrogativa de los profesionales que desean optimizar sus actividades. Eso es exactamente lo que pasó con Visual Studio: uno de los mejores IDE de todos los tiempos. Microsoft, que estaba todo preparado para introducir una versión de Windows en el nuevo siglo, simplemente presentó sus herramientas en una sola aplicación. Ahora VS es la elección de millones.

Desafortunadamente, no se puede llamar "para desarrolladores de Java". No, esto no significa en absoluto que no puedas escribir algo en Java en este entorno de desarrollo: incluso existen extensiones especiales. Simplemente se centra más en C, C# y algunos otros productos de Microsoft. Java tiene su propio IDE superior, que presentaremos hoy. Pero, primero, debemos entender cuál queremos que sea el IDE ideal (en sintonía con ).

En primer lugar, puedes decidir inmediatamente que aquellos que funcionan en línea no son adecuados para un desarrollador de Java. Crearán problemas de interpretación y las congelaciones constantes sólo desalentarán la programación. Una solución más razonable sería descargar uno de los programas presentados hoy. Es mejor hacer clic en descargar una vez que tener que soportar errores constantemente. La era de los IDE en la nube aún está por llegar.

Además, el entorno de desarrollo Java debe admitir una serie de tecnologías necesarias para una codificación eficaz. Entre ellos se incluyen los lenguajes de máquinas virtuales Java: en particular Java 10, pero también Groovy y Scala. El control de versiones también es uno de los puntos clave. Git por sí solo no será suficiente: necesitas Mercurial, SVN y otros. Es imposible adivinar cuál será popular dentro de unos años (Git, por supuesto ☺). Un desarrollador web se beneficiaría del soporte para una amplia gama de lenguajes, incluidas bases de datos PL, lenguajes web, tanto de front-end (TS, JS, HTML) como de back-end (uno de los lenguajes populares de propósito general). Dado que la JVM está diseñada para convertir palabras del lenguaje de programación en código de bytes, también se necesitan intérpretes potentes. Ellos son los que pueden hacer que Java sea rápido en teoría y rápido en la práctica.

Bueno, y por supuesto, al igual que el propio lenguaje Java, su entorno de desarrollo debe ser multiplataforma. Todas las demás soluciones obstaculizan el desarrollo del programador. Como eligió Java, significa que eligió la universalidad.

Los tres elefantes del desarrollo de Java

Como siempre, están los tres primeros y todos los demás. La industria del desarrollo web ya se ha acostumbrado a esto y no cambiaremos las tradiciones. La ventaja de nuestra revisión es que no habrá software pago (casi). Puede descargar libremente cada entorno de desarrollo desde el sitio web oficial. Además, esta será una de esas listas principales en las que elegiremos subjetivamente un ganador. Pues tú puedes tomar tu propia decisión basándote en tu experiencia y nuestras conclusiones.

Idea para el desarrollo web

IntelliJ IDEA es un IDE publicado por JetBrains basado en la máquina virtual Java. El entorno en sí también está escrito en Java y parcialmente en Python, y está destinado a ellos. Inmediatamente se identificaron como un entorno para Java, allá por 2001. Luego, el entorno de desarrollo introdujo una biblioteca completa de herramientas de refactorización, lo que inmediatamente llevó a IDEA a la cima. Los desarrolladores optaron no tanto por la comodidad como por la productividad. Algunas operaciones de rutina las realiza íntegramente el entorno de desarrollo.

Prometimos que hoy no habría software pago. Pero lo cierto es que la versión definitiva de IDEA tiene su coste, aunque insignificante (hasta 500 dólares), como para un IDE. Si eres un javaísta profesional que gana 20 dólares la hora o más, esto es una nimiedad. Por cierto, sólo en el paquete Ultimate el desarrollador tendrá la oportunidad de trabajar con la plataforma Java EE.

Pero también existe una versión gratuita de IDEA, que no se puede llamar una versión simplificada. Sí, faltan algunas funciones, pero la compatibilidad con idiomas es similar a la versión comercial. Es conveniente escribir las primeras líneas de código y ampliarlas con complementos.

Tendencias y enfoques modernos en el desarrollo web.

Aprenda el algoritmo para un rápido crecimiento desde cero en la creación de sitios web

IDEA es uno de esos entornos de desarrollo que se pueden llamar verdaderamente inteligentes. En lugar de las correcciones y resaltados que tiene incluso el editor de texto más simple, IDEA ofrece autocompletado: los fragmentos del programa terminado se generan a manos del desarrollador. Ya no vale la pena ni siquiera hablar del hecho de que todos los paréntesis y otros errores sintácticos se cerrarán automáticamente. Y si algo sale mal y IDEA no puede solucionar el problema, alertará inmediatamente al desarrollador de Java al otro lado de la pantalla.

También es cautivadora la refactorización que se produce en varios idiomas a la vez. Los javaistas saben que el código nunca es Java puro, especialmente cuando se trata de desarrollo web. Esto incluye lenguajes de bases de datos, hipertexto, etc. En este punto, IDEA hace lo que muchos aún no son capaces de hacer: al analizar el programa escrito, el IDE separa los lenguajes entre sí y los analiza por separado.

El programa tiene teclas de acceso rápido bien implementadas, a las que, por supuesto, será necesario acostumbrarse. Pero una vez que todo sucede, la productividad se dispara. También pueden activar la depuración de código, que ocurre en la siguiente ventana.

El entorno de desarrollo también destaca por el hecho de que amplía constantemente el número de tecnologías compatibles. Sin embargo, los desarrolladores no dependen mucho de estas actualizaciones. Pueden descargar el complemento correspondiente en cualquier momento.

Eclipse IDE

Este entorno de desarrollo es popular no sólo entre los javaistas, sino también entre los desarrolladores web en general. Una ventaja significativa sobre IDEA será definitivamente el precio: Eclipse es completamente gratuito, al igual que sus complementos. Por cierto, los creadores del entorno de desarrollo no tenían planes de competir con IDEA: querían eclipsar el éxito que obtuvo Visual Studio. Hasta cierto punto, lo consiguieron: los programadores web promedio casi siempre prefieren Eclipse.

¿Qué es incluso mejor que IDEA? Acceso gratuito a Java EE. Está disponible de inmediato, sin pagos adicionales ni instalación de complementos. Por cierto, sobre esto último. Instalarlos en Eclipse es una tarea importante. Pueden "pelear" entre sí, causando inconvenientes al desarrollador. Pero lo positivo es su número. Le recomendamos que elija los oficiales, porque así hay menos posibilidades de que entren en conflicto con el entorno de desarrollo.

Eclipse está diseñado para que lo personalices a tu medida. Por lo tanto, la primera experiencia con un IDE puede desalentar su uso posterior. Ese raro caso en el que uno de los mejores entornos de desarrollo necesita un manual. Afortunadamente, hay muchos de ellos en YouTube.

NetBean

Este es un entorno de desarrollo que nació de la pluma de los creadores de Java: Sun Microsystem. Querían crear la mejor solución para su lenguaje y, por lo tanto, diseñaron un IDE que no solo sea compatible con Windows.

Es el más multiplataforma de nuestra lista. NetBeans se puede ejecutar no sólo en los ejes superiores, sino también en cualquier otro dispositivo que esté equipado con una JVM. El enfoque de Sun es inmediatamente obvio: querían que su lenguaje funcionara en todos los dispositivos (desde una computadora hasta una lavadora). Naturalmente, los "beans" se llamaron el entorno de desarrollo oficial de Java, aunque no es tan bueno. Hoy en día, Oracle, que adquirió Sun, está trabajando en NetBeans.

NetBeans es tan inteligente como IDEA, capaz de realizar una refactorización inteligente. El sistema hace frente a esta tarea mucho mejor que Eclipse, pero peor que IDEA.

Como puede comprender por la cantidad de lo dicho, IDEA será considerada la mejor. Aquí hay una lista de razones:

comprensión de la programación. Nadie completa el código y corrige errores más rápido que IDEA;

eficiencia de refactorización;

precio. Sí, Eclipse es completamente gratis. Pero no comprarías comida mala sólo porque es más barata, ¿verdad?

¡Esta es nuestra visión! Por cierto, Oracle tiene otro IDE en su arsenal, llamado JDeveloper, completamente diseñado para Java. Pruébalo y saca tus propias conclusiones. ¡Y lo tenemos todo!

Tendencias y enfoques modernos en el desarrollo web.

Aprenda el algoritmo para un rápido crecimiento desde cero en la creación de sitios web

Eclipse IDE es un entorno de desarrollo gratuito para crear software. Admite muchos lenguajes de programación, incluidos Java, C++, Python, etc.

Inmediatamente después de iniciar Eclipse IDE por primera vez, debe seleccionar una carpeta donde se guardarán los proyectos futuros. La interfaz del programa consta de varios objetos estándar: una lista de proyectos, una barra de herramientas, una ventana de proyecto y una lista de tareas. Para crear un nuevo proyecto, haga clic en "Archivo", luego en "Nuevo", seleccione el tipo e ingrese un nombre. Para crear una clase, debe abrir la carpeta con el nombre del proyecto en el lado izquierdo del programa, hacer clic derecho en la carpeta "src", hacer clic en "Nuevo" y luego en "Clase".

Eclipse IDE tiene una tienda incorporada donde puedes comprar varios complementos. Se pueden encontrar por nombre o ordenar por categoría. También puede importar complementos mediante un enlace.

Características del programa

Soporte para una gran cantidad de complementos.
Posibilidad de programación en Java, C++, PHP, etc.
Configuraciones de programa flexibles.
Soporte para sistemas operativos Windows XP (32 bit/64 bit) y superiores.

Eclipse IDE es uno de los entornos de desarrollo más populares para Java. Esto se debe principalmente al hecho de que se puede descargar de forma gratuita.




Arriba