For this Community Spotlight edition, I interviewed Jay Jay Billings, a Research Scientist and Ph.D. candidate in Energy Science at the University of Tennessee. Jay has been leading a group of Software Engineers for 8 years in the Computer Science Research Group of the Computer Science and Mathematics Division at Oak Ridge National Laboratory. He and his team picked Vaadin for developing a part of Eclipse ICE. Let’s find out more about it.
Hey Jay! Thanks for accepting the invite. Let’s start with your profile. What can you tell us about yourself?
Hey Alejandro! Basically, I'm a physicist who uses computers to simulate how various things should work. Computational physicists are somewhere in between theorists and experimentalists. I lead the Scientific Software Development Team at ORNL, which is a group of five research software engineers that look at problems in service of ORNL's mission.
So, I guess you have used Java, right?
And I know you use Vaadin too! How did you discover Vaadin? Why did you decide to use it?
I saw the name "Vaadin" floating around on the web, but didn't think much of looking into it until I started using some similar tools. I was trying out some things from the Eclipse Rich Application Platform (RAP) and noticed in their documentation that one of their renderers supported Vaadin. I gave it a look and thought it was really nice technology.
Jumping forward about six months, I found a need for it on Eclipse ICE, a workflow environment and simulation workbench that we've developed at ORNL and based heavily on Eclipse technologies, such as the Rich Client Platform. Eclipse RCP is really great, but for a variety of reasons, we need to move ICE to be fully web-based. There are a number of ways to do that - RCP running on Broadway, RCP in VNC/etc., Eclipse RAP, Eclipse Scout, Vaadin, or other tools.
Vaadin won for Eclipse ICE because our 2.x line is wedded very strongly to the OSGi and about 1200 other Eclipse bundles. All of the other frameworks I tested had conflicts with our stack, but Vaadin slid right in and worked, in my opinion, better and much more smoothly than the other tools, especially with the architecture of our 2.x line. Now we are using Vaadin for a number of different projects, including ICE.
How about the learning curve?
Painless. An “untrained monkey” could figure out how to use Vaadin if I could pick it up so easily. Joking aside, I was shocked at how simple it was. If I may be technically critical of other UI frameworks for a second, I found Vaadin's design to be much more logical and sophisticated. SWT, for example, assembles components by requiring that the parent is injected in the constructor. That is possibly the most annoying way to use a UI framework because I can't assemble anything without a parent composite. With Vaadin I can create the UI element and assign it to the parent later, which makes it easier to configure more complicated things.
Vaadin was far easier than the alternatives and lets us keep our 2.x line going until we are ready to move forward on our 3.x line, which should start soon.
True, the learning curve is pretty flat with Vaadin. Is there anything else you'd like to say to the Vaadin Community?
We're really looking forward to joining and engaging such an exciting community and project. We're very interested in how we can collaborate with others in the community on any science-related Vaadin projects, and how we can help in general. Basically, we're really looking forward to doing some cool stuff!