Syam Pillai has vast experience in software development. He started in 1986 and continues to work in software projects as the Group Head of IT at Habib Bank AG Zurich. He is one of the winners of the Vaadin Community Award 2021.
What programming languages have you used professionally?
I started with C and assembly initially. Later on, moved to C++ in the first half of the '90s. The first major C++ production application was released for the bank in 1994.
Nowadays, everything is in Java. I embraced Java in 1996 with Java 1.0. Initial versions of Java had their own challenges. The lack of a JDBC driver was my primary concern but that got resolved soon. Right now, I use Java 16. Moved to it soon after its release.
What upcoming Java features do you find interesting?
I'm currently interested in Project Loom. Otherwise, other language features will definitely get added with new versions.
Why is Java so popular and powerful?
Maybe I am biased because of my historical connection to it. I developed a Virtual Machine (VM) in C++ and used that to develop a banking application. Other developers I had in my team were not fully familiar with C++, so I had to develop a domain-specific dialect for them. That was the time I met with some Java engineers from Sun Microsystems. They told me that instead of maintaining my VM, they had something called Java that supports the same VM concepts. After that, I fell in love with Java! A VM and a dynamic class loading mechanism were the main features I wanted.
The JVM is a magnificent piece of software. What do you think about the Java ecosystem?
I can't live without a class loader. Contrary to other application developers, I always keep the logic in the database! The middle-tier caches it and runs the business logic but it always pulls it out from the database. A business logic update is always done at the DB level. It may look weird but I have my own reasons.
What are some of the reasons to have the business logic in the database?
If you talk to anyone in the business, they want to protect their data. Data is precious to them. In the case of enterprise applications, maximum security is mandatory around the data and the database that stores it. Developers know that business logic is key and it requires the same level of protection. If you leave business logic in the middle tier, you have to build another level of protection around it. This is one reason.
The second reason is that one can have versioning of the business logic at the DB level. Plus, you can have access control (a very important part of enterprise applications) at the DB level, as well. For example, suppose I write a piece of business logic that displays some sort of sensitive data on the screen and I don't want everyone to get access to it. It can be easily controlled in the DB. So, when the middle-tier wants to pull it out to execute it, the DB won't spit it out if the access is restricted. One may argue that this sort of protection can be built or configured on top of frameworks such as Spring, but DB traditionally has had these features for a long time.
Of course, you need to have such features already programmed at the DB level. In my case, it was already done years before other frameworks emerged.
You mentioned Vaadin before. How did you discover it?
Initially, when Sun Microsystems engineers told me that applets were the future, I didn't believe it. Sun was pushing it for some time around those days. Then, they themselves realized it. Later on, when the Servlet technology came out, I knew that it was the right choice for the web. I had been looking for web-based front ends since then. I tried a framework called Echo2 but I wasn't totally happy with it. There was another one I tried—ZK.
I still don't remember how I came across Vaadin but, definitely, it was through a web search. It was Vaadin 6 at that time. I immediately fell in love with Vaadin because of Java.
What are the best features of Vaadin?
Syam, congratulations on winning the Vaadin Community Award, and thanks for the job you have done with the Vaadin add-ons.