Vaadin Talk

@thorstenstueker got me interested in Vaadin. I’m still learning how to get started.

This video is interesting as he shows a Hello World. Watch from the start and he’ll explain some stuff and around 10 min in, you’ll see him add a text field, button, and a msg box.

Java looks super familair to me. Very similar to Xojo and PHP languages. :slight_smile:

Tutorial: Tutorial | Vaadin Docs
Video: https://www.youtube.com/watch?v=bxy2JgqqKDU

My goals:

I’d like to learn how to create forms with inputs that can commit themselves like I do with php/ajax with a variety of inputs triggered by input onChange via MySQL/Maria or similar. An API to the db would be acceptable since it’s not just a web app, if it makes sense.

I’d like the app to deploy to Web, Desktop, iOS, and Android with the same source realizing there could be some target specific code. I’d also like to learn about the workflow to create each target and how to host the web app as I currently use nginx/php.

Basically I want what Geoff Perlman says Xojo can do, but a tool that is actually cross-platform.

So it is simple. First of all, starts with the Desktop. Java Swing provides you with all you need to provide Desktop Applications for all available platforms including MacOS, Linux, Unix, Windows, even on Raspberry PI and all other Types of small linux computers like rock from Radxa. You even can use it as embedded Solution with an internal Monitor for a raspberry (I have several applications builded with this technology stack).

The Logic of this entire App, means the entire Business Logic you can use also for Webapps. Simply take care that your business logic is not tight to the Views but to their own logic classes. So you can write a GUI for your Vaadin Web Application and use exactly the same Logic for the Vaadin Application.

While that makes Fun you could now also think: whoa I want an IOS and Android App. Simple. Take CodenameOne, refactor your Logic classes, write the GUI for the mobile App and mount it together with the logic. Boom. Runs. That’s why it makes such amount of fun.

When and if you want a Desktop App which is looking more like an App you also can be lacy. Write the CodenameOne App for Android and IOS and you get the same App without any problem running on Desktop as a Side effect. So compile your Stuff and run it where ever you want. It’ll work.

It is pretty interesting you’ll find out to start that way while you can also reuse the entire stuffs for Vaadin. The routing is fast made and the concepts are similar between CodenameOne and Vaadin. Even Swing has the same fundamental technics. Exactly that makes fun.

While Vaadin needs to be a Web Application it needs also to be always a MultiUser application like you know. So it has many stuffs around. All of that Spring Boot will handle beside the Vaadin framework. That makes fun and is not that complex.

So if you want to write your Code so that it is an App like it will be as a mobile App running in the same form on Desktop Computers and notebooks, simply build directly CodenameOne apps.

Later you can rewrite all the stuffs for Vaadin without any problem. Simple and fast, without real problems. That is why I am writing exactly inside that Stack and I really love it.

Sounds super interesting, but many of those works are greek to me.

I’m in the hunt for a project I can examine / debug. I learn via trying things / discovery.

I just submitted a request to find a consultant / tutor to help me convert Xanadu from PHP to Vaadin. Fingers crossed!

Would be a chance to get that Job done in a fast way and to give you the chance to work further on it later.

1 Like

Depends on what characteristics you are comparing. Xojo and PHP are definitely not C family languages like Java. In that regard Java would be more comparable to JavaScript, C# (which was actually MSFT’s answer to Java after JScript ran into legal issues) and C itself. There are people who really hate the bias towards terseness, the case-sensitivity, the semicolons (the horror!) in C-family languages; I am not one of them. What Java, Xojo and PHP have more in common is that they are more primarily line-of-business languages with automatic memory management of some form or other. I would not write a commercial game in any of the three, or a device driver or certain other things. I assume that is what you refer to.

Since I have spent much of my recent career in C#, I tend to find Java a bit older and more crufty in some minor ways but could live with its particular warts if I had sufficient motivation. I’m starting to think at this point in my career, given the gig I’ve just taken on which will hopefully consume all my time for at least a couple of years and is 100% C# / .NET 7+, I will never have that opportunity unless in full retirement maybe. It is not just a question of Java the language, but of the whole ecosystem.

By the time that fork in the road arrives, if it ever does, .NET Maui (and/or 3rd party vendors / FOS projects) may have evolved enough to provide something comparable to what @thorstenstueker is advocating with his particular toolset that will be more immediately, “hit-the-ground-running” familiar to me.

In my head that code looks similar to Xojo and PHP. Pretty easy to comprehend. :slight_smile:

1 Like

See Hal, now you start to use Java. It’s okay, try out and find out. And yes, C# needs a bit more time for the ground hitting technology. Why ever they lost so much time: they lost it. But at the end: you can write Software with that language and you have a future view with Java written Software. Get it on and get the Job done.

Right, and this applies to all modern and powerful tools. It’s also true that you can only get ahead through hard work and sweat. And this undertaking only succeeds if the general conditions are right: excellent documentation, tutorials, support, a vibrant community, sustainable roadmap/vision. Modern and successful tools have all of this in their luggage, otherwise they would not succeed today.

Xojo Inc. has been doing a lot right on this topic for a very long time, at least as long as they focused on win and mac. Then they took a wrong turn. If someone still has full order books until retirement or can survive patching workarounds, it is perhaps still a safe bet, but only then. For the rest it is very likely a better choice to pick an alternative. Given the market pressure on free tools, there shouldn’t be that many hobby Xojo developers left for a sustainable business model.

I will freely confess that my interest in reinventing myself as a Java / Vaadin / whatever dev isn’t very high given I can retire whenever I wish and I have deep and broad experience in .NET, a platform with which I’m generally very well pleased – and I have a gig that will engage me on that platform the next couple of years and probably more. And, I am building a “headless” product – the output is not a web site this time, but a consumable API. As such … if I recast myself in a new platform it will likely be because I am retired and have lots of time on my hands and a specific cross-platform project that interests me. Much as our own DaveS is doing with the Swift toolchain.

1 Like

I heard back from a Vaadin / PHP dev. We plan to talk soon. My plan is to hire them to create a starter project that can do the basics of what Xanadu PHP can do and then discuss how everything works. :slight_smile:

1 Like

Sounds promising Hal. Good luck.

FWIW, I tried Vaadin a few months ago with Thorsten’s help and it’s really a very nice solution and well thought out and simple, and fair business model. If you want “more”, you have to pay, but that’s manageable.

If you don’t want that, you’re a bit on your own, since the forums don’t appear to be very active, so you end up paying for the time for your own workarounds instead of investing in the professional widgets. If someone like you is willing to invest a little, it seems like a smart solution.

1 Like

anyhow if you are paying user at vaadin they help also with their support for stuffs. It is not so that they have no Support, at the end Support is what you pay for. Sadly for now I need to develop a JavaFX Web Solution for another Customer…so I am out of Vaadin for a time to get that Job done but when I am back I may be able to help and assist. What ever. Sometimes…often…but not all times.

Yesterday, the Vaadin Dev I hired to make a template went over the code with me. I’m impressed with Vaadin ( and the Dev )…

I still have a lot to learn, but I was able to make some simple changes. In the pic below, I changed the header BG Color, made the header sticky, and changed its z-index… Now the header stays in place while the body can scroll if the content is longer than the body.

I also found that Vaadin has a Drag and Drop Designer. It’s a Vaadin Pro feature aka not free, but there is a free trial. :slight_smile: Vaadin Pro also comes with “Charts, GridPro, Map, Board, and more”.

Vaadin Pro is $1668 USD per year. That sounds expensive, but that’s less than Xojo Pro Plus aka Enterprise which I’d pay if Xojo had not so many bugs.

For now I plan to try the Vaadin Designer under the trial period, probably this week…

I think Xojo should be very worried about Vaadin. Xojo is very good at onboarding. Remember your first Xojo Hello World? If Vaadin could make that easier, Xojo would be in deep trouble…

3 Likes

Plus they have Hilla, https://hilla.dev/ for those who want to put more into the frontend than a sole SSR approach. So similar to Xojo they have 2 Web flavors, but 2 working ones :wink:

1 Like

Xojo had not as many users like Vaadin. Vaadin is a big company with a wide customer base. It is not a small company. That’s the difference. And for the Money they maintain and support all this stuff. Which is a but more professional for Web Development than Xojo. Only a bit. With Vaadin you can design all kinds of Web Apps. And together with Hilla Framwork you can do what you want. With Server driven Java UI or with Client based and Rest Server supported JavaScript UI with Hilla Framework. All of that highly secure and reliable, stable und running for years.

1 Like

I’m pausing on Vaadin. I just don’t have the time to spend learning everything that I already know in other frameworks. If I had a time, I’d go for it though. I like the language. Code makes sense. I want to learn more.

My problem is that PHP is working for me pretty darn well and every day, Xanadu gets better.

2 Likes

It is your decision, no question. But think about if that will be that what you really want and then stay with your decision. And trust me: you can do with PHP around 10% of the functionality of vaadin and Java. It is more than only a bit Web coding. Much more. And I can’t understand that: cause I was warning you, you need to learn Ava before.

1 Like

Yup, this is the real price. It’s not learning the language (they’re all pretty much the same for the common things you do, unless you get into something really esoteric), but learning the framework(s) and the ecosystem to become productive. Which is why I’m looking for a sweet spot between “big enough that it isn’t led by one guy and could disappear tomorrow” but “small enough to do what I need without requiring 10 years to master.” It’s where the argument for a huge ecosystem really falls down for me.

Reminds me about this bit in a talk by Jim Coplien (the rest is worth a listen, as well – great perspective on the state of modern software development and “agile”): Jim Coplien On What Agile Really Means - YouTube

3 Likes