Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Full-stack development is dead, long live full-stack development!

Full-stack development is dead, long live full-stack development!

The gap between frontend and backend in web development has widened in recent years. In frontend programming, frameworks such as Angular, React, or Vue.js are predominant, forcing developers to use a different programming language and a different ecosystem.

This has made it more difficult for Java developers to find their way around, and in many projects, frontend and backend developers are separated.

However, it can be beneficial in many ways if a developer can develop both the frontend and backend. But as a Java developer, do I have to get familiar with a whole new ecosystem?

No, there are alternatives!

This talk shows how to develop web applications quickly as a Java full-stack developer. We will compare three variants that suit the Java developer: Thymeleaf with htmx, Vaadin, and Hilla. Based on an example, we look at the advantages and disadvantages to determine which framework is the best choice in which scenario.

Simon Martinelli

June 09, 2023
Tweet

More Decks by Simon Martinelli

Other Decks in Programming

Transcript

  1. About me 1972 1995 2000 2007 2009 2011 2012 2013

    2021 2022 COBOL JSR-352 Java Batch JSR-354 Money/Currency
  2. Thymeleaf Vaadin Hilla Programming Model • Server-side rendering of HTML

    Templates • Dynamic with HTMX • Server-side Java Component model • Rendering on client-side • Client-side TypeScript • Backend Java Skills required • Java • HTML/CSS • Java • Java • TS/JS API • REST for HTMX • Generated from Java Endpoints Components • HTML • Rich Webcomponents • Rich Webcomponents Build • Maven/Gradle • Maven/Gradle • (npm) • Maven/Gradle • (npm) Server State • Maybe • Yes • No Security • Server • Server (and Client) • Client and Server Characteristics
  3. I would use… • Vaadin • If you are a

    Java developer • If you develop business applications • Hilla • If the application has a lot of client interaction • If you want to use Browser APIs • If you already have frontend developers with JS/TS, React or Lit know-how • Thymeleaf • If you want full control over the HTML code • If you want to take advantage of SSR (SEO, No JavaScript, Cache)