DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports
Events Video Library
Refcards
Trend Reports

Events

View Events Video Library

Related

  • The LLM Selection War Story: Part 3 - Decision Framework Through Failure Tolerance
  • Building a Reusable Framework to Standardize API Ingestion in an On-Prem Lakehouse
  • The Update Problem REST Doesn't Solve
  • Stop Guessing, Start Seeing: A Five -Layer Framework for Monitoring Distributed Systems

Trending

  • When Snowflake Lies to You: Understanding False Failures in dbt Pipelines
  • MuleSoft IDP: Enhancing Efficiency and Accuracy in Data Extraction
  • Using LLMs to Automate Data Cleaning and Transformation Pipelines
  • Integrating AI-Driven Decision-Making in Agile Frameworks: A Deep Dive into Real-World Applications and Challenges
  1. DZone
  2. Coding
  3. Frameworks
  4. Summary of the AJAX Frameworks Comparison

Summary of the AJAX Frameworks Comparison

This final post of a series analyzing several libraries and frameworks that augment the client with AJAX capabilities concludes with a comprehensive comparison.

By 
Nicolas Fränkel user avatar
Nicolas Fränkel
·
Oct. 24, 24 · Analysis
Likes (5)
Comment
Save
Tweet
Share
8.5K Views

Join the DZone community and get the full member experience.

Join For Free

In previous weeks, I've analyzed several libraries and frameworks that augment the client with AJAX capabilities.

  • Vue.js
  • Alpine.js
  • HTMX
  • Vaadin

In this post, I'll compare them across several axes.

Analysis

  • Frontend skills: Remember that I started this series from the point of view of a backend developer. In this section, I grade how much you need to know about client technologies to complete the job.
  • Team organization: In the introduction, I hinted that the decoupling of frontend and backend teams profoundly impacted projects. Each team is fast on its own, and they can parallelize their work, but integrating the two can double the initial development time. Here, I grade how easy it is to integrate frontend and backend.
  • Ease of setup: How easy it is to set up the tool from the backend.
  • Ease of styling: Backend developers are not designers by default. Does the tool offer a default, at least average-looking style? How hard is it to create one?

For all intents and purposes, Vue.js and Alpine.js are similar; I'll refer to them as JavaScript frameworks.


JavaScript frameworks HTMX Vaadin
Frontend Skills Need the full HTML, JavaScript (it's in the name), and CSS tryptic Only need HTML and CSS, HTMX takes care of the JavaScript burden No frontend skills needed; Vaadin takes care of everything
Team Organization Depends on each developer's skills:
  • Either separation between frontend and backend development
  • Or they can develop their use case from the database to the UI
Each developer can develop their use case from the database to the UI
Ease of Setup
  • Thanks to WebJars, you can manage dependencies in the POM
  • WebJars Locator allows not specifying the version number in the HTML
  • You still need to reference each library in the HTML page
Everything is in the POM. As Vaadin generates the whole frontend, you don't need additional setup
Ease of Styling No default; one needs to use an existing library, e.g., Bootstrap, or create their own Vaadin comes bundled with the Lumo theme. Other themes are available in the Vaadin Add-ons Directory, such as the Parity Theme. Applying a theme is as easy as setting it as a dependency and adding an annotation.

Creating a custom theme is no small potatoes, though. You can ease the task by starting from an existing one and changing it bit by bit. Vaadin, the company, also provides custom themes for a fee.

Time to Choose

If you are still unsure how to proceed, here are my recommendations.

  • If you're working on a regular business app, e.g., forms, choose Vaadin. Business apps are Vaadin's primary use case and will shine there, immensely increasing productivity.
  • If your app requires good-looking visualization widgets, choose Vaadin as well. For example, its Vaadin Charts component is truly amazing. Note that it's commercially licensed, though.
  • If you want to offer an API from the start, choose Vue or Alpine. While it's possible to use HTMX or Vaadin, it doesn't make sense in this context. I also emphasize "from the start:" Everybody plans to offer an API at some point, but most never do. The possible productivity potential you plan to have in the future is not worth the guaranteed productivity in the next months.

The same goes for distributing your app over several channels — from the start (bis repetita placent).

If you're in none of these situations, it's time to go into more detail. Are your developers skilled in frontend technologies? Are they willing to learn to close the gap? Will you need these skills in the near future? These are a couple of questions that can help you decide which way to go.

Conclusion

This post concludes my series on AJAX and SSR. I hope you had as much fun reading it as I did writing it.

The complete source code for this post can be found on GitHub.

AJAX Use case Vaadin Framework

Published at DZone with permission of Nicolas Fränkel. See the original article here.

Opinions expressed by DZone contributors are their own.

Related

  • The LLM Selection War Story: Part 3 - Decision Framework Through Failure Tolerance
  • Building a Reusable Framework to Standardize API Ingestion in an On-Prem Lakehouse
  • The Update Problem REST Doesn't Solve
  • Stop Guessing, Start Seeing: A Five -Layer Framework for Monitoring Distributed Systems

Partner Resources

×

Comments

The likes didn't load as expected. Please refresh the page and try again.

  • RSS
  • X
  • Facebook

ABOUT US

  • About DZone
  • Support and feedback
  • Community research

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Core Program
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 3343 Perimeter Hill Drive
  • Suite 215
  • Nashville, TN 37211
  • [email protected]

Let's be friends:

  • RSS
  • X
  • Facebook