I'm slowly progressing with my #Java#SpringBoot project, which I started to learn how to use the framework. But I'm a bit worried about #EclipseIDE eating most of my 8 GBs of RAM each time I run the project. It's a very simple one so far... Does a Spring project really need to use so much resources (this never happened, not even close, with "vanilla" Java), or is Eclipse having a memory leak?
In 45 minutes I made a #kotlin#javalin application from scratch, which uses #webjars to include #htmx from a #maven pom file. It uses static #HTML files for the first load, and then renders HTML from #jte templates for #SSR of the parts of the pages that need that kind of interaction. There's no #springboot (or any #spring at all) and no #SPA like #angular or #react.
Now because simply setting up a project says close to nothing about its real world viability, next step is an actual usecase ( :
Once again, #TDD and #HexagonalArchitecture meant that when I hooked up the "real" timer broadcaster (using WebSockets), everything just worked.
Only took 35 lines of WebSocket code and 10 lines of #SpringBoot configuration code and a few #htmx attributes on the HTML page. (Not counting the separate transformer code that generated the HTML.)
I don't know if anyone on the @quarkusio core team will read this, but here is the thing. Your framework is way too good to hide it under the "cloud-native" umbrella. The way to increasing adoption in the broader Java community is to make it more visible that Quarkus is just as capable of building good old fully-featured monoliths, as is of blazing-fast microservices.
I think of doing a web app for managing your personal comic-book collection. It should let you add titles with essential data (writer(s), artist(s), editor, cover art, ratings (with stars), reviews...), read, edit, and delete those data.
It would be made with #Java+#SpringBoot, server-side rendered with a templating engine (#Thymeleaf), and use a #MySQL DBMS. This way you could run it locally, self host privately and/or share everywhere. FOSS licensed of course.
Below are two identical barebones starting projects in #Quarkus and #SpringBoot, respectively. Notice, how Spring follows the (to my understanding) more common 3-level nested approach (domain, organization, project), while Quarkus omits the project level entirely.
I am trying to address those differences to a Spring developer, thus I'd like to know, was that an intentional decision, or some sort of internal RedHat convention that the @quarkusio team just stuck with?
2010 - my first encounter with Spring. Did that professionally until 2019.
2019-2023 - Discovered Go and it became my daily driver.
2022-2023 - Picked up Java again, via Quarkus. Enjoyed it a lot, but still kept pushing for Go.
2024 - Reunited with Spring Boo. Had to admit that Go is a dead-end for the things im working on.
Go is fantastic, but not great for the good old monolithic line-of-business apps on our agenda.
🎉 Thrilled to announce the official release of my new book 'Modern frontends with htmx'! Discover how to master #htmx with #SpringBoot and #Thymeleaf for rich, interactive web applications. Say goodbye to JavaScript complexity!
Demystifying GenAI and ChatGPT
-- harness the practical and pragmatic parts of AI
-- you don't have to run your own models and LLMs
-- call out to OpenAI straight from your Kotlin/Java SpringBoot codebase
-- the real magic is finding a good use-case
-- most of what you hear and see out there today isn't a good use for LLMs in the first place
This is a great option for a long-time Java dev that doesn't want to spring (ahem) into JS. Great option esp for adding some interactivity to legacy JSP/Struts or similar. Lots of #php folks are using htmx as well.