Benoit Schillings is chief technologist for Qt Software (originally Trolltech). Based in the Bay Area around San Francisco, he sets the direction of the company's cross-platform application deployment product.
Newly renamed after its recent acquisition by Nokia, Qt Software held its fifth annual Developer Days conference in Munich this week. To push its 'write once, deploy everywhere' message, this year's event had its first tracks for business managers, alongside the more normal developers' briefings.
Belgian-born Schillings is bullish about the prospects for his company's technology as the web, desktop and mobile domains continue to align and customers want the same experiences on all. ZDNet.co.uk caught up with him to find out why software engineers should invest their time in developing the skills needed to use the Qt toolset.
Q: Qt's cross-platform application framework claims to provide developers with the power to write once and then allow deployment to many desktops
and embedded operating systems without rewriting the source code. Doesn't this inherently restrict an application's final form if it is not bespoke-coded for its exact function?
A: Look, a cross-platform framework will never be a panacea, every platform has things it will need to do differently. What we aim to provide with Qt is 95 percent of the core functionality that will be required for an application to be deployed anywhere, whether that be in a Windows, Mac or Linux environment. Qt is sometimes used for Windows programming even when there is no need for cross platform, just for the quality of the framework.
Java promised write once, run anywhere — and gave us write once, debug everywhere. How does Qt's cross-platform promise play out in practice?
When you write an application using Qt it will look and feel like a native application: ie, write a Mac application and it will look like Mac. Java tried to look like Java on every platform and I think we go one step deeper than this.
If you look at the mobile market, manufacturers need to use the best performance platform at all times because if your code takes twice as long to execute, then you will need twice the power and this is a particularly bad thing on a handset. Qt's alignment to C++ as a compiled language means we can provide cross-platform functionality with the speed of C++. What we are saying is you don't need to write in Java for cross-platform functionality; instead, write in C++ for speed, and align to Qt for cross platform.
So would you say you are anti-Java?
No, absolutely not. I'm not going to say negative things about Java because it is very successful in many fields. But there is no universal tool, OK? Let me give you another example; the Swiss Army knife has a great knife, corkscrew, can opener and screwdriver, but the magnifying glass sucks. It's the same problem with those multi-tool infomercial products. You cannot apply one tool to every problem and get a perfect solution.
Your message seems to be heavily channelled towards the 'code and deploy' process. Have 'design and test' been left out of the equation?
When it comes to testing, we do provide tools such as UI validation, memory-corruption checkers and performance-profiling tools, but again these exist...