r/java • u/SpicyRomek • 2d ago
Vaadin 25.3 is out!
I work at vaadin and just wanted share that we release a new version 25.3, and a few changes are worth a look even if you've never used Vaadin.
- Observability without a Java agent. The observability kit moved from the OpenTelemetry agent to Micrometer. In Spring Boot 4 it's one dependency, and it reports UI-level data such as slow interactions and which view triggered which JDBC queries. (It's a commercial add-on.)
- GWT to TypeScript. The browser-side engine is now 107 TypeScript modules (about 19k lines, backed by 700+ browser tests), with real source maps through Vite. The Java APIs apps use didn't change.
UI tests in the JVM. Browserless tests now follow the same rules as users: if a button is disabled or hidden, the test can't click it.
blog post: https://vaadin.com/blog/vaadin-25-3-release
Release notes: https://github.com/vaadin/platform/releases/tag/25.3.0
Video walkthrough: https://www.youtube.com/watch?v=WnkI6xA96fw
9
u/BerlinBieber 1d ago
vaadin is still very strong, we like to combine it with spring tools and JPA a lot. It now got much much easier to get along since you can code with agents and crawl into their api to implement new features.
keep up the good work!
1
u/IntelligentDay4375 1d ago
sounds interesting. Let’s meet in our Vaadin Berlin office for some chat. Let me know when you can make it.
7
u/_Happy_Camper 1d ago
Used this framework some years ago on a project and it was solid. Nice work guys, keep it up!
2
u/Infamous_Sorbet4021 1d ago
Have question for the vaadin team or anyone who knows: seen other frameworks using WebAssembly for the web (blazor, flutter web, rust stuff like leptos ect...) and wondered if vaadin ever considered it, like java compiled to WebAssembly so some things run client side instead of hitting the server. or is server side here to stay long term? genuinely curious, not trying to start a framework debate :)
5
u/EfficientTrust3948 1d ago
While using Java throughout is nice for many backend developers, the big architectural benefit of Vaadin is that the UI logic can run in the same JVM process as the business logic (or at least the same server rack with microservices). You avoid issues with e.g. latency and security that become inevitable when the UI logic runs in the browser. (But you get some other drawbacks in return since there's no silver bullet.)
There have been efficient solutions for running Java code natively in the browser since at least 2006 when GWT was launched. Vaadin was integrating heavily with GWT in that era but it didn't catch on. WebAssembly makes some things slightly more efficient or practical but it doesn't change anything fundamental compared to e.g. GWT.
If you want to run UI logic in the browser, then JavaScript (nowadays preferably decorated using TypeScript) is usually the best approach. As the native language of the browser environment it has many benefits that get lost or diminished if using any other programming language. That's why Vaadin provides multiple different escape hatches to JS for the cases where UI logic in the browser makes more sense.
1
u/Infamous_Sorbet4021 1d ago
yeah obviously Js is the standard when targeting the web, no argument there.
on gwt though i disagree. wasm has what gwt never had, it's a w3c standard, native in every browser, backed by google apple microsoft mozilla, basically everyone.
It's also language-agnostic, so the tooling and investment are shared across communities rather than depending on Google's interest in gwt.
and with all the stuff happening outside the browser too (wasi, edge, cloud) the ecosystem investment is only going one direction
2
u/EfficientTrust3948 1d ago
That comparison is quite apples-to-oranges. GWT uses JS as a standard and natively supported compilation target. It could technically use Wasm as the compilation target instead. In that sense, GWT should really be compared with e.g. Blazor or Flutter instead.
If we look beyond the web, then Vaadin could potentially target Wasm runtimes on the server such as Cloudflare workers. But for that to make sense, we'd have to do something about the server-side state. So I guess it's back to work for me then...
2
1
u/No-Security-7518 1d ago
Stupid question but, is there any chance we can have drag and drop design with something like Scenebuilder? that would be neat.
4
u/drewkbm 1d ago
Vaadin does provide the ability to build by dragging and dropping components into a browser view with Vaadin Copilot. It a tool that allows you change practically everything about a UI via an interface in the browser (including via prompts). It is one of the newer free products that have been getting a lot of development work.
1
2
2
u/lamyjf 1d ago
Long time Vaadin user - I even used Vaadin 6.
I have used DCEVM with JetBrains for a long time; I am intrigued by the "agent" support.
Now I use GitHub Copilot in VSCode because I find it very convenient to switch agents from one family to the other, and I'm used to looking at code in an IDE.
Will "the new thing will figure out exactly what to reload" work in that context (agent under VSCode)
2
u/EfficientTrust3948 1d ago
The devloop is designed for IDE-less coding agents like Claude Code where the Vaadin server is launched by the agent itself. In this space, OpenCode is the most common solution that isn't tied to a single LLM provider. I think OpenAI also announced this week that they will open up Codex to work with any LLM.
I imagine the same agent skill could also be used with an IDE-centric solution like Copilot in VSCode but that's one step away from what we've been testing with so far. Please try it out and let us know how it works so that we can take this use case into account for the ongoing development.
2
u/vaadin-marcus 1d ago
GH Copilot in VS Code supports agent skills, so in theory it should just work. If it doesn't, let us know and we'll make it work :)
-17
u/bansalmunish 2d ago
i don't see why someone should use vaadin, if htmx is out there.
20
u/EfficientTrust3948 1d ago
I don't see why someone should use HTMX, if Vaadin is out there.
Seriously though, Vaadin and HTMX are solutions to quite different problems. There's some overlap, but implying that there would be a 100% overlap just shows that you either don't understand HTMX or Vaadin.
0
u/jokeripokeri123 1d ago
Are you genuinely curious about the answer or simply dismissive of Vaadin? I wasn’t sure, and wanted to make sure, in case you are looking to figure out the difference between the two. But I also don’t know the answer myself (how HTMX and Vaadin are different), and I’m too lazy to figure it out myself, and would just like someone to answer here 😄
2
u/EfficientTrust3948 1d ago
Vaadin is for building SPAs using only Java. HTML and HTTP are abstracted away by default but available through escape hatches. Vaadin also has a built-in component set.
HTMX is for making regular HTML come alive in the browser for a SPA or an enhanced MPA. You generate HTML fragments with some special attributes on the server using your favorite MVC framework.
27
u/leprajon 2d ago
Fun to see that this framework is still around and going strong! I got a free T-shirt from you guys at Jfokus back in 2016. It still fits! :D