[javaone 2025] A Java Developer’s Guide to Navigating the Frontend Landscape

Speaker: Dan Vega

See the table of contents for more posts


repo with examples: https://github.com/danvega/java-developer-frontend-landscape

General

  • “The front end changes a lot but so do we”

Java Frameworks

  • Web application frameworks – Spring MVC, Struts, etc.
  • Java template engine – Thymeleaf, JTE (java template engine – newer option), freemarker, Mustache (logicless; only substitute values) groovy templates
  • Component based UI frameworks – Vaadin (pure Java), JSF, Wicket (clear separation of markup and logic)
  • Hybrid – JHipster (development platform for Spring Boot with Angular/Refactor/Vue and microservices), Hills (from creators of Vaadin. Combines Spring Boot and react)
  • Desktop frameworks – JavaFX

HTML/CSS/JavaScript

  • package managers – npm (website, cli, registry), pnpm, yarn, jsr
  • nvm is like sdkman but for Node; let’s you have different versions
  • build tools – webpack, parcel, rollup.js, esbuild (fast tool to create bundles; written in .go), vite
  • runtimes – nodejs, dino (creator of node; wanted to start fresh), bun (all in one tool – runtime, package manager, build tool)
  • htmlx – like the new jquery. Attach attribute to HTML.. Ex: hx-post, hx-trigger, hx-target, hx-swap

JavaScript Frameworks

  • React, Angular, Vue
  • Can update DOM quickly, hold state, best for single page applications, interactive dashboards, real time applications

Consider when choosing

  • Team skillset
  • Solo dev vs team
  • Greenfield vs existing project
  • Architecture needs of project
  • Back office vs customer facing
  • Whether SEO is important
  • Whether needs to look good

My take

Great overview/comparison of the many choices out there and their features. It’s great it came with a sample repo to reference. The demos were good too for seeing some of them running.