Entradas

Mostrando entradas de julio, 2026

El problema de la enseñanza de Java

El problema de la enseñanza de Java Durante muchos años Java se enseñó muchas veces desde la herramienta y no desde los conceptos. Un estudiante podía aprender: Applets. Swing. JSP. Servlets. JDBC. En mi caso particular, el primer acercamiento a Java fue mediante un applet. La enseñanza se enfocaba en ver que Java podía ejecutarse dentro de una aplicación gráfica o un navegador, pero no necesariamente en comprender conceptos más amplios como diseño orientado a objetos, separación de responsabilidades o arquitectura de aplicaciones. Porque un applet por sí solo no explica: Clase | Objeto | Responsabilidad | Colaboración entre objetos | Sistema completo Un alumno podía entender cómo crear un Applet y sobrescribir un método como paint() , pero eso no necesariamente lo preparaba para diseñar una aplicación empresarial. En mi caso no llegaba a comprender: programación orientada a objetos; responsabilidades de una clase; separación de capas; arquitectura...

Simplificando Jakarta EE

Al simplificar una aplicación originalmente pensada para GlassFish descubrí que Jakarta EE puede utilizarse en una expresión mucho más pequeña de lo que normalmente se muestra. No es obligatorio implementar todo el stack empresarial. Dependiendo del problema, basta con utilizar los componentes necesarios para construir la aplicación. Una arquitectura web mínima puede quedar así:                                   Navegador | ▼ Jakarta Servlet | ▼ Capa de servicio | ▼ JDBC | ▼ Base de datos Y para la vista: Servlet | ▼ Thymeleaf | ▼ HTML Mientras que el servidor: Main Java | ▼ Jetty embebido | ▼ Servlet Container La...

Yo también pensé que WinForms estaba obsoleto

Durante mucho tiempo fui de los que decía: "WinForms ya está obsoleto. Hoy todo debería ser web." Era una idea que repetía con bastante convicción. Sin embargo, con el tiempo conversé con tres desarrolladores que mantenían sistemas POS desarrollados en WinForms. Al principio pensé que simplemente estaban conservando aplicaciones antiguas, pero mientras conversábamos y conocía cómo estaban construidos esos sistemas, me di cuenta de que estaba juzgando la tecnología de la interfaz y no la arquitectura completa. Los tres tenían algo en común: utilizaban un cliente WinForms para la operación diaria del punto de venta, pero también contaban con un servidor Linux que cumplía funciones específicas, como la autenticación y la administración de recursos necesarios para operar. Lo que más me llamó la atención fue que ninguno de estos sistemas utilizaba un API para procesar toda la lógica del negocio. La API existía, pero cumplía funciones muy concretas, como la autenticación, la distr...