Partner Collaboration to Drive Innovation (Interview with TMS Software)

About a month ago we published a short blog post about the importance of our partner ecosystem and interviewed DevExpress.  Our partners not only build much needed functional capabilities for RAD Studio developers, but also deliver exciting innovation. One partner that is particularly active on the innovation front is TMS Software. They not only provide valuable suites of components for both VCL and FMX, but also new capabilities, such as the recently released TMS WEB Core framework for Delphi-based web development, or the TMS FNC technology to offer visual & non-visual components from a single code-base that span VCL, FMX, LCL and WEB. Over the years, I have learned a lot from TMS Software’s founder, Bruno Fierens, and I asked him to spend some time with me and give me perspectives on our ecosystem and the future.

I know that you are one of the most passionate advocates for the Delphi / Pascal languages. Tell me what is your latest thinking about our ecosystem?

I absolutely love Object Pascal and Delphi. I believe that this is one of the most important languages with so much unrealized potential. Over the years, we have had our ups and downs, but I am excited about the latest developments and energy in the community. There is no language that is easier to learn, and the RAD Studio visual tooling is superior to many alternatives, so our system creates tremendous value for developers. The pillars of unmatched productivity are: 1) RAD component-based development, 2) strongly typed object -oriented language, 3) focus on easy data-binding and 4) last but not least, a huge language backwards-compatibility. There can, of course, be questions about how fast we move and language evolution. We Delphi developers are not a patient bunch and tend to be very vocal, but it is because we love what we do. We see some good developments, but we think that there can be more and we will actively work with the community to deliver more capabilities for Delphi developers.

What are the main issues you think we should address?

Well, what worries me most is how we get new young developers to learn and fall in love with Delphi. I think that things are improving, but not fast enough. There were times where we go in Delphi meetings and the majority of people are in their 40s or older. Today, we see more young people and they are doing interesting things, However if you look at the popularity of languages, such as Python or JavaScript, we are way behind. We need to all work to promote what is possible to do with Delphi. It will take the whole community, both Free Pascal and Delphi, to make this possible. We also try to help and contribute with the means we have in this area with our academic program we launched last year that offers free components to Delphi students and teachers and that we are expanding all the time. We also launched this year our web academy platform with free webinars where everyone can learn about Delphi and our tools.

How can we promote Delphi better?

This is the million-dollar question. You are not Microsoft, so resources of course are limited. I think there are several main areas where we can focus our messaging. Some are more strategic while others are more tactical.

First, I love showcases, what you did for Delphi’s 26th birthday was great. You assembled a lot more and newer showcases that give people confidence that there are a lot of cool things that people still build with Delphi. We kept using Skype, but that is a bit old news. There is more cool stuff and not just games. There critical infrastructure systems all over the place that are built with Delphi and these cannot be replaced because alternative technologies do not meet performance requirements. And there are new teams that build sophisticated systems with one or two developers that rival solutions that are built by huge companies. This is the power of Delphi.

Second, we need to do a better job with education resources. We do a lot of webinars and videos, but we need to do even more. We need to use a mix of formats. 5 min videos are great, but you do not learn complex features in 5 min, let alone become comfortable enough to implement them. Or even simple “how to do this or that” code snippets as people tend to quickly Google for code to help them. We need loads of code answers ready to be Googled for just as is the case with JavaScript, C# or Python. One of the problems with aging developers is that they have less time to learn. You finish your job and you go home to your family, and you are not up until midnight trying different things. To get to do really amazing things with any language one needs to know a lot. The good news with Delphi is that when you learn, you can do some amazing things and you do not need an army of other developers to help you.

This brings me to my last point. We need to keep innovating. I am very excited about the potential of Web development with Delphi. It is an area that has been weak for a long time. Of course, desktop development is a pillar of Delphi, but with new technologies a Delphi developer can do so much more. TMS WEB Core allows you to build a Web Client with a very low learning curve. I think that fills an important piece in the puzzle and I am very pleased with the reception that we are getting from the community.

What are some of the important aspects of TMS WEB Core that people should know?

It is built for Object Pascal / Delphi. My vision is that any Delphi developer can pick it up and using only Delphi code can build a great functional Web application that leverages all the power and components available for desktop development. We made TMS WEB Core open, so you can plug in different JavaScript frameworks to generate the components you want. We recently integrated it with ExtJS, which works really well. It is very flexible and easy to evolve. At the same time, it is also very open to use existing HTML/CSS templates built by more graphically creative people than the average software developer and this combination can leverage stunning looking user-interfaces. When using it within RAD Studio, the experience is not very different from VCL or FMX. Yes, there is a bit of learning curve, but not huge.

One important aspect to keep in mind is that it does require understanding of Web architectures. I am sometimes surprised that many Delphi developers are not very familiar with how multi-tier applications need to be structured. Frankly, that has been also an issue with FMX, where developers need to know about multiple OS and SDKs, native and non-native behavior, etc. It is not that much different from Windows, but it is different enough. With Web applications you have other considerations that may not be intuitive. We are constantly thinking how this can be improved. One of my earlier points about education speaks about it. We need more of it.

This reminds me of one other initiative that we are collaborating on, Low Code Wizards. The idea is that RAD Studio was the pioneer in Visual Development that obviously is at the core of the current Low Code explosion. We have an opportunity to build on what we do today by creating “wizards” that help developers get started or generate apps or components faster. What are your thoughts on that?

This is an interesting idea. Obviously RAD Studio in itself has many drag-and-drop features. Let’s not forget that its component-based architecture already can fulfil a lot of the low-code promise! A sophisticated component can offer visual configuration where little to no additional application level code is required to achieve the desired functionality. I personally think that the getting started wizards are useful, but what is more useful is wizards that help you build add-on functionality and help not only new users, but also experienced developers. We are working on functionality that can allow developers to configure and deploy a grid feature for example in a few clicks and it will be deployed “the right way”. These kinds of ideas should also help in acquiring more new developers, so let’s see.

Any parting words?

My only hope is that we together continue to advance Object Pascal and Delphi towards the future and make it more successful. There are so many options, bridges into Python, new Web Development, more open-source collaboration. I hope we all make the right decisions and make our customers successful. So many people trust and rely on what we do. We should keep earning that every day.