5 Reasons Why Enterprises Use Vaadin For Their Web Application UI Needs

Ankurman Shrestha
11 min readNov 16, 2018

--

Pre-PS — The following are my personal opinions and doesn’t represent the views of the company.

— -

Design-driven companies outperform the S&P500 by 219% over a 10-year period. By 2020, user experience (UX) will overtake price and product as the key brand differentiator.

The above 2 data-points were critical in helping me make my final decision to accept the position at Vaadin compared to two other competing offers I had on the table.

This was 12 months ago; right after graduate school when I was seeking a mission-driven company to kickstart my professional career.

Without knowing much about the enterprise web application development world, I figured the best way to learn about our technology and its application across different industries would be to ask the right questions directly to our end users.

So I jumped right in.

After hundreds of conversations with business and technical decision makers and developers using the web UI technology at JP Morgan Chase, AMEX, DellEMC, Anthem, GSK, AT&T, Comcast, Adobe, XPO Logistics, VW, US Courts, and State of NY, Montana, & Utah, among others, I now have the data and insights that I’ve presented below.

The 3 most common questions web application decision makers are asking themselves when updating their web UI technology stack to avoid technical debt are

  1. How do we leverage in-house Java resources to build modern-looking UIs for our web applications and minimize the overhead cost of having to hire front-end developers and not have to maintain multiple technologies?
  2. What is the productivity gain we can achieve by sticking with one language for web application development and avoid context switching between JS based client-side (Sencha ExtJS, JQuery, PrimeFaces, Angular, etc) and Java for the server-side?
  3. What is the path of least resistance to migrate our existing legacy/monolithic systems or Swing desktop application to the modern web such that we avoid technical debt in the long run?

Below are the findings of my research on why enterprises use Vaadin. The following 5 points were part of the recurring answers I got from the interviews I had.

5 Reasons Why Enterprises Use Vaadin For Their Web Application UI Needs

Mark Reinhold giving a keynote on the future of Java at Oracle CodeOne 2018 in San Francisco

Reason #1:

With Vaadin, you can leverage your in-house back-end (Java) resources to build modern-looking UIs for your business web apps without having to deal with multiple front-end technologies.

A CTO who has formerly worked at Amazon, Wells Fargo, and Bank of America shared with me how he evaluated the framework before adopting it for his company’s technology stack —

“I didn’t have any funding to grow our headcount. So I didn’t have the luxury to hire front-end JS specialists. Plus, I couldn’t kick out Java which has lots of libraries that help with our development. We looked at React, Angular, and Vaadin.

Since we had experienced Java developers in-house, Vaadin looked like a promising solution that would not only minimize our tech stack but also minimize the investment in training.

Our previous UI technology was Sencha ExtJS. It would take 4 months for a new team member to get ramped up on it. But with Vaadin, we have shortened our ramp-up time by 300%. I can have a decent Java programmer start contributing to our core codebase within 3–4 weeks.

Initially, the migration seemed like a significant investment over the short-term. But over a 3-year period, when we compared the cost of maintaining and supporting our Sencha system versus Vaadin, we realized we were able to lower our total cost of ownership (TCO) by almost 40%.

So if I were you, I’d ask the architects about their TCO with their existing tech stack and evaluate how much Vaadin can help them lower costs while improving developer productivity and speed to market. Those are all valid business and technical reasons why you want to use a new technology.”

Reason #2:

Vaadin allows you to build web applications in one language (Java), ensure type safety, web-security, and avoid context switching like when JS is used on client-side and Java on server-side.

The CTO of a healthcare company offering a business intelligence product built on Vaadin told me this —

“The reason why we chose Vaadin at my last company, where Google, Accenture, and TechData Corp used our web app was that it enabled us to develop and debug in one-language without having to switch contexts between the client-side and server-side. That was one of the main strengths we saw with Vaadin and also why I chose Vaadin for my current company.

We’ve found that our developers can get more work done and the quality of the code is good and not buggy. So it’s coding and debugging efficiency, and the quality of the code that’s coming out is high; those are valid business reasons for us to use Vaadin.

When you’re doing it in two different languages for the client-side and application-side, you’re dealing with two paradigms, you have to switch contexts, and you have to set different rules for the browser and server-side.

For us, our productivity gain with Vaadin is in the range of 30–50%.

In our conversation, we also discussed web security.

“Regarding security-issues, you have to escape input characters, you have to determine they are within certain ranges — do you do that in the JS or Java?

Let’s say I am a full-stack developer and now I have to remember if I did it on JS or Java. When you have a front-end and a back-end team, they have to communicate. You have to set up rules and they have to follow those rules.

But if you have one paradigm, it’s easier because you’re doing it in one place. So security can suffer when you’re dealing with two languages. Again in my last company, we had to be ISO certified and the penetration testers only found 2 non-critical issues in 5 years on our Vaadin app. That was a huge business win for us.”

Download the 48-page in-depth report here: https://pages.vaadin.com/vaadin-vs-angular

Reason #3:

Vaadin enables you to go-to-market up to 85% faster and cut your development time by up to 50% when building the same UIs compared to Angular, PrimeFaces, JSF.

The following is from my conversation with a Application Architect in the cybersecurity space who’re using Vaadin 10 for their new product’s UI —

“We had a vendor who didn’t meet our timeline in 3 occasions for our identity management app that was built on PrimeFaces. So we decided to do it in-house. Since we are a Java shop, Vaadin seemed logical.

We cut our development time by half for the initial build with Vaadin compared to PrimeFaces.

Vaadin is really powerful where you have a UI with lots of dialogs, windows, pop-ups, etc. Managing forms and dialogs had become painful for us using JS as we would hope for the UI to work across different browsers.

We have an interface where you create a report based on SQLs to schedule meetings. That took us a couple of weeks to build in PrimeFaces because a lot had to be written in JS for idiosyncrasies like dialogs. But another UI with a similar complexity took us 2 days to build with Vaadin. Not only was JSF painful to use, with Vaadin we were able to go-to-market 85% faster than before.

Vaadin’s main selling point is that it takes care of the communication layer between the client and the server and provides ready to use implementations for many commonly used components out of the box. It ensures cross browser compatibility for evergreen browsers for the included components, which means that we’re able to save a lot of time by not having to write browser specific UI code.

Below is my conversation with a Java developer who tried building similar UIs on Angular & Vaadin:

“As a Java developer, I don’t have to learn JS/Angular.

That gave me time to focus more on the application code than having to worry about client-side REST API calls all the time.

I’m not an Angular expert so this may vary from developer to developer. It took me 2 days to just setup Angular in my system.

But with Vaadin, I installed your plugin in Eclipse and BAM! I ended up using the Spring initializer that gives you a Vaadin starter demo app and comes embedded with a web server. With the help of that, I was able to develop a complete working product and get it in front of end business-users in 2 weeks and was also able to iterate on that.”

Learn the difference between design-driven and reuse-driven approach you can take to migrate your Swing desktop app to the modern web: https://vaadin.com/consulting/swing-to-vaadin

Reason #4:

When migrating a Swing desktop application to the web using Vaadin, you can reuse up to 50% of the existing Swing codebase and do a lot more with less code in less time.

The following was my conversation with a CEO who oversaw the migration of their Swing desktop app to the web using Vaadin

Speed of implementation and code reuse were two of the main benefits we saw by using Vaadin.

Even though Vaadin is similar to Swing, it’s a LOT cleaner and learner and much better implemented. Using the reuse-driven approach, we were able to reuse almost 50% of your existing codebase.

We evaluated Vaadin with Angular and React and with the same number of developers, we learned we could do the migration faster with Vaadin. We’re passing around POJO’s to the framework and even with a server-driven architecture, our Vaadin app is very performant.

Plus, we were using JTable in Swing. Compared to Vaadin GRID, the difference is night and day. We got 50% unsolicited testimonials from our customers who used the web version of our app.”

Reason #5:

With Vaadin as a part of your UI tech stack, you have the assurance of official long-term support & maintenance for the different framework versions while maintaining a lean technology stack.

This was an interesting finding. In my conversations with technical decision makers at Fortune 100 companies, I learned that a majority of them are Java shops.

This conversation with an application architect at a Fortune 100 healthcare company gave me new insights about Vaadin that I had not thought of before—

“Vaadin has been around for 18 years. That’s almost 3 times longer than the other frameworks out there (Angular, React, Vue). We evaluated them all.

But as a Java shop, when you carefully evaluate the productivity gain and speed-to-market you can get with Vaadin while maintaining a lean technology stack and having a real company backing the framework; that is a solid business case.

It is reassuring for us as a global company that in case of critical technical blockers with our enterprise apps, we can reach out to you directly for support. And that we don’t have to rely on our developers scraping StackOverFlow to resolve an issue.

Apps in the healthcare space can have a shelf-life of 2–3 decades. Vaadin’s enterprise-level official support gives us the confidence to build customer-facing web apps with the framework.”

TL;DR

Based on the discussions I’ve had with our community members, Vaadin could enable you to*:

  • Leverage in-house back-end/Java resources to build modern-looking UIs for your business web apps without having to deal with multiple front-end technologies;
  • Build web applications in one language (Java), ensure type safety, web-security, and avoid context switching like when JS is used on client-side and Java on server-side;
  • Reuse up to 50% of the existing Swing codebase of your desktop app and do a lot more with less code in less time;
  • Go-to-market up to 85% faster and cut your development time by up to 50% when building the same UIs compared to Angular, PrimeFaces, JQuery;
  • Shorten the ramp-up time for your developers by up to 300% compared to technologies like Sencha ExtJS;
  • Increase developer productivity by double digits and reduce total cost of ownership (TCO) of the technology including development, maintenance, and support by up to 40%;
  • Build web apps with long shelf-lives with the assurance of official long-term support & maintenance for the different framework versions; and
  • Maintain a lean technology stack.
  • Your Mileage May Vary

That’s a wrap up of my key learnings about Vaadin in my 1 year with the company. I’ve barely scratched the surface of the web application development world.

But I’m inspired by Joonas’s vision that Vaadin was founded to make it easy for developers to build modern-looking web apps. This does make sense when you think that when UX is simple, the user feels empowered by being able to focus on what matters the most.

In the case of web app development, why should the developer be distracted by their apps misbehaving on different browsers, or latencies stopping their flow?

The user interface (UI) should be beautiful and intuitive enough to make training and instructions unnecessary.

We stand by our mission to — Fighting For Simplicity. But as you may know, making something simple is not that simple. But that’s our guiding compass.

As a company, we’re dedicated to making the development of UIs easy. That way, developers can focus on simplifying the UX of the apps they build.

All of this because when your app just works, your users will fall in love with it. And when your developers find it easy to build that app with Vaadin, that’s the only way we can realize our mission.

I have one parting question for you —

When it comes to your current web application technology stack and team, what are the top 2–3 metrics you’re trying to improve — developer productivity, time-to-market, total cost of ownership, web security etc?

Let’s be technology agnostic here and discuss what’s best for your company’s use-case. I’ve got nothing to sell here but have lots to share with you and learn from you.

If you enjoy a healthy mix of business and technical conversation and want to learn how you can transform your web application team’s performance, let’s connect.

You can reach me directly on my cell: +1 (408) 763 8988, by email: ankur@vaadin.com or book a time to chat on my calendar here.

PS: For your time on the call, I’d be happy to send you one of our T-shirts (no strings attached). Currently only shipping within the United States.

--

--

Ankurman Shrestha

Intellectually curious researcher of a wide range of topics. I practice radical candor, investment portfolio diversification & love deep talks. #DataDrivenFTW