GWT was an attempt to let you live in java land and also still get the (tremendous) benefits of deploying to the browser Javascript VM. We used it on a java backed project, but we were not building an SPA so didn't see all the benefits.
It still blows me away that we settled on JavaScript as a VM. It wasn't designed for that, and it took a superhuman effort to make it work well enough.
I feel like there's an adjacent universe where the JVM lives in every browser and JS was a weird failed experiment. But it turned out that the browser was the universal UI everyone had waited for, and Java didn't connect to it while JS entrenched itself there.
GWT was a glimpse of trying to send us to that universe, via a twisty back door. But it was never gonna happen.
You can thank Sun Microsystems for this. They had the world in the palm of their hand with HotJava, but decided to abandon it. If they had continued, Java would been the language of choice for the web and they likely wouldn't have been acquired by Oracle.
HotJava, IIRC, was more focused on Swing apps. Swing just wasn't the right thing for users; the HTML DOM turns out to be more comfortable. Even though it means sometimes failing out to the Canvas, which gives you nothing.
NB: I was very distantly part of the Swing team. I did early reviews of its design documents.
Considering we have full replacement frameworks like React, Flutter, etc built as DOM replacements, I would say Swing was definitely the right thing for users. Probably could have offered an "easy markup enhancement" library for plain documents, but anything extensively dynamic should be written with a proper UI framework.
It's a hard sell for the majority of users and the mainstream market at the time. Flash apps had cute, lazy loaded, ~lightweight, animated mini apps. Anything java at the time was heavy, enterprisey, requiring more setup to get blocky GUIs that didn't do much.
I wish to live in that universe, and hope that WASM will bring it closer to us. Clearly, Javascript gets compiled to some intermediate representation, that then gets JITed/interpreted and then interacts with the native browser API.
I wish us devs would have access to that intermediate representation.
the client side java didn't last long, flash and js were more mechanically sympathetic on too many aspects (dev culture, user expectation about load time, cute visuals)
That's cool but I get a chuckle when I see server side html rendering being all the rage now and thinking to myself, should I tell the juniors about servlets, JSP and Struts?
I haven't used it for a long time, but it's still alive: https://www.gwtproject.org/