Marcos de interfaz de usuario basados en Java

Hace poco estuve hablando con un amigo sobre el desarrollo de la interfaz de usuario. También ha sido programador desde que la programación se consideraba un arte arcano (cuando los que lo hacíamos éramos considerados como Gandalf el Gris frente al Balrog). O tal vez, nos vimos a nosotros mismos de esa manera. De todos modos, ambos hemos sido programadores de Java durante gran parte de ese tiempo.

Ambos lamentamos el hecho de que era un cambio de contexto pasar de codificar la mayoría de nuestros proyectos en Java, y luego tener que cambiar a JavaScript para el front-end.

Basado en conversaciones que he visto en línea, varios lectores están calentando sus teclados para reprenderme por quejarme de tener que codificar en JavaScript. Mantenga sus claves frescas, tanto nosotros como nuestros compañeros de trabajo tenemos experiencia y estamos encantados de escribir en JavaScript y cualquiera de sus marcos para nuestros clientes. Pero usar JavaScript no siempre es el mejor enfoque.

En este post, presentamos dos frameworks que te permiten codificar tu interfaz de usuario en Java: GWT y Vaadin.

¿Cuándo Usar Java Para Su Interfaz De Usuario?

La conversación volvió a mí cuando estaba hablando con un cliente, una pequeña tienda de solo un par de programadores y un arquitecto de software que también programaba. Habían decidido que no querían mantener sus proyectos en dos idiomas separados. Su empresa se había estandarizado en Java, y querían usar las mismas herramientas y mentalidad para crear interfaces de usuario potentes y modernas para sus aplicaciones web.

He notado en equipos más grandes que el equipo parece separarse, algunos prefieren concentrarse en el front-end, y otros trabajan principalmente en el back-end o en el código del lado del servidor. Cuando el trabajo se aprueba para el desarrollo, a menudo veo a los mismos programadores que toman o reciben la mayoría del trabajo de front-end de JavaScript, y a otros que toman el back-end.

No estoy diciendo que esto sea algo malo; en realidad, parece ser todo lo contrario. Todo el mundo parece ser más productivo en su zona de confort, pero todos también son conscientes de lo que todos los demás están haciendo y pueden entrar en esa zona si es necesario o cuando sea necesario. Para las tiendas más pequeñas, esto no es una opción. A menudo, el mismo programador escribirá el código de un proyecto completo desde la interfaz de usuario al modelo.

Afortunadamente, hay opciones si desea mantener su interfaz de usuario en el mismo idioma que su back-end si ese idioma es Java. Hablemos de algunos de ellos ahora.

GWT

Google Web Toolkit, o GWT, es una excelente opción.

He tenido mucho éxito con GWT en un proyecto que comencé hace unos 8 años y que aún mantengo. GWT me permitió construir la lógica de vista para una Aplicación de una Sola página completamente en código Java estándar. Viene con un complemento de Eclipse. No lo usé porque usé Netbeans para mi entorno de desarrollo, pero como Eclipse es el estándar para la mayoría de los equipos, esto podría ser muy útil.

Pude descomponer la lógica de los widgets (como un cuadro de texto personalizado) en clases o métodos auxiliares, al igual que lo haría con la lógica de negocios en un proyecto del lado del servidor. A través de la herencia, pude crear varios widgets que tenían requisitos similares fácilmente. El único concepto real de cambio con el que tuve que lidiar fue que la interfaz de usuario está mucho más impulsada por eventos que la mayoría de los servicios web u otro código del lado del servidor.

Hay dos desventajas principales que veo para GWT. Uno es el tiempo de compilación. GWT agrega un paso de compilación al proceso que toma algún tiempo. Las clases GWT que se han construido en Java deben compilarse en bibliotecas JavaScript. He visto varias quejas sobre el tiempo que esto lleva.

El segundo es que ha pasado bastante tiempo desde que GWT ha visto una actualización significativa. Al momento de escribir este artículo, la versión 2.8.2 se lanzó hace más de un año en octubre de 2017. Tres años antes, 2.7.0 fue lanzado, por lo que es cuatro años desde el momento de escribir este artículo. Veo publicaciones y comentarios sobre la versión 3.0, incluidos algunos de hace dos años que preguntan si el póster debe esperar a que salga la versión 3.0 antes de implementar un gran cambio (espero que el póster no siga esperando), pero no puedo encontrar ninguna línea de tiempo sobre cuándo podría salir esa versión.

Aunque soy un gran fan del framework y lo considero lo suficientemente maduro como es, sé que esta vaguedad en la posibilidad de futuras versiones hace que algunos gerentes de proyecto se pongan bastante nerviosos. Nadie quiere estar atado a un marco que termina en un callejón sin salida.

GWT es una biblioteca que seguiré usando y sugeriré a otros equipos que la usen si satisface sus necesidades.

Vaadin

Vaadin es otra gran opción.

Originalmente pensé que el GWT era mi única opción para escribir interfaces de usuario en código Java estándar. Pero cuando hablé con esa pequeña tienda que mencioné anteriormente, me dijeron que habían decidido usar Vaadin para sus proyectos. Así que, por supuesto, tuve que ir a echar un vistazo. Y estoy impresionado.

Seré honesto, al momento de escribir este artículo, aún no he usado Vaadin para crear un proyecto. Pero estoy aumentando un par de proyectos personales para los que necesito front-end y tengo la intención de usar esto. Si Vaadin cumple sus promesas, será un marco perfecto para estos proyectos.

Vaadin promete admitir lenguajes que se ejecutan en la JVM, como Kotlin y Scala. Espero que eso incluya a Groovy. Si lees muchas de mis publicaciones anteriores, sabrás que soy un fan de ese lenguaje porque puedes crear código rápidamente que se puede mantener fácilmente. Estos son requisitos importantes para mí, especialmente la capacidad de mantenimiento. Nada destruye más un proyecto en el futuro que no poder mantener fácilmente el código que ya se ha escrito.

Pensamientos finales

Tiene muchas opciones al diseñar su aplicación web cuando se trata de tecnología de interfaz de usuario. Ya sea que esté diseñando un proyecto o un entorno de producción, tiene muchos requisitos que tener en cuenta.

Dos requisitos que debe tener en cuenta son la facilidad de desarrollo y la capacidad de mantenimiento.

  • Un entorno de desarrollo en el que es difícil trabajar resultará en muchos sobrecostos y hará que traer nuevos programadores sea muy difícil.
  • Un proyecto que es difícil de mantener causará frustraciones y desperdiciará más dinero en el futuro.

En función de las necesidades y requisitos de su equipo, una solución Java completa, desde la interfaz de usuario hasta el modelo, no solo es posible, sino que también es una excelente opción para un desarrollo rápido y una facilidad de mantenimiento.

Cree en el buen código.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

Previous post Tratamiento Dental Innecesario
Next post Depreciación de bienes raíces