This is my recent interview with Embarcadero. While we don’t use Delphi, their technologies are probably the most interesting alternative to Microsoft .NET technologies, and Delphi Prism can be used even inside Visual Studio. Their hot new multi-platform FireMonkey technology is very interesting as well.
I’ll be asking some questions related especially to mISV business, too.
Could you please quickly introduce yourself?
I’m Andreano Lanusse, Technical Lead Evangelist for Embarcadero’s Developer Relations organization. I spend a great deal of my time with developers, both onsite and at conferences and user groups, to ensure the company’s tools meet the expectations of customers. Prior to Embarcadero, I worked at Borland for thirteen years in numerous roles, including support coordinator, engineer and product manager. I also worked as a principal consultant for Borland Consulting Services on the development and management of critical applications. I hold a bachelor degree in business administration from Sumare Institute (Brazil) and an MBA in project management from FGV (Brazil). I’m also certified in Product Management from UC Berkeley, have Borland and Microsoft Certifications, and I am a Scrum Master.
Your new FireMonkey technology allows developers to create multi-platform apps. Do these applications look exactly the same on Windows, Mac and iOS?
It is the choice of the developer and what they are aiming for. FireMonkey is designed to be a rich platform and applications can look fully native on each platform. Or applications can take advantage of FireMonkey’s capabilities to deliver fully custom experiences and the same custom appearance on all platforms.
The exception is platform specific characteristics such as menus, common dialogs, etc – for example Mac menus are part of the desktop whereas Windows menus are part of the app, and iOS does not have menus – in these cases FireMonkey always yields to what’s correct for the particular platform.
FireMonkey applications use the GPU to render user interfaces using FireMonkey’s scalable vector powered “style engine” and FireMonkey’s 3D forms. These capabilities allow developers to build “rich” applications with GPU powered effects, transitions, animation, and image processing.
Is it usually necessary to write any platform-specific code when developing FireMonkey-based applications?
It’s usually unnecessary to write platform specific code, but you may need to if there is a platform specific API or library that you wish to use that is not available or is different on other platforms.
The difference between FireMonkey and native Delphi is probably larger than between .NET WinForms and WPF. Would you agree?
Yes, I would say so. Certainly FireMonkey’s multiplatform support is a significant distinction compared to VCL. But, FireMonkey is “native” Delphi. FireMonkey, like VCL, is not a JIT or dynamic language platform. FireMonkey is not aiming to be an entertainment or media platform – it is designed to bring “rich” content and user experiences to business and industry application solutions. But where VCL is a Windows only, FireMonkey is designed to run Windows, Mac, and Mobile devices.
Delphi Prism is a plugin for Visual Studio, which allows you to use Delphi syntax in the .NET environment. What cool things can you do with Delphi Prism that are difficult to do with VB.net/C#?
Like Visual Studio’s VB.NET and C#, Prism supports all Microsoft .NET Technologies and Windows platforms, but Prism also supports Mono and MonoTouch platforms on Linux, Mac, and Mobile devices. Our partner RemObjects will soon be offering a Prism language compatible compiler that outputs Java byte code. The Prism language has advanced language capabilities not available in VB.net or C# such as deep integration of parallelism into the language, full language integration of nullable types and Aspect Oriented Extensions via Cirrus support.
What are the coolest things that one can do with Delphi XE that are not easy to do with C# or VB.net? I’m specifically asking about Delphi XE here, because if I get this right, Delphi Prism can do *everything* that C# and VB.net does (and more).
Build applications for all versions of Windows, which support keyboard, touch, gestures, styles, mouse, etc., based on visual development.
Do you believe native applications will become fashionable again, and that mobile applications will drastically slow? Why or why not?
Native applications have never been out of fashion. Look at Microsoft Windows, Office and games – they are native. Or, look at the iPhone apps – they are also all native and running in mobile devices. The Mac is growing, but lacks the applications necessary to support the users. Windows is a winner in this area, since there are already millions of applications available. The mobile application market is only in its early stages and there is still so much to explore in this area. Five years ago, we couldn’t imagine what we are doing with phones today and, next year, new devices will come out doing things we could not imagine. New devices, social networks and consumer behavior will drive the future of mobile apps.
Do you think that it is still usually unnecessary to think about mobile apps, companion web-apps or multi-platform applications, when running a mISV business with a native desktop app being the main product?
No. Today, end-users make decisions from anywhere, and access to the data is key part of their decisions. If a mISV doesn’t provide an interface, they are quite simply out of the game. Interfaces could be a mobile app, web interface or multi-platform app. The important thing is to allow the end-user to access the data.
Could you name some of the biggest challenges presented by interface guidelines, and how developers can overcome them?
I don’t see specific challenges related to interface guidelines, the challenge today is to support so many different devices: PC, iPhone, Android, HP WebOS, Web, etc. Users do not exclusively sit in front of desktops anymore; they use all kinds of devices to communicate. The need to support multiple devices became a challenge for developers, since it forced them to use different IDEs and languages. Today with FireMonkey, we allow developers to create business application for Windows, Mac and IOS very easily, and in RAD Studio XE2, they are able to create web-applications optimized for iOS and Android.
Do you think that violating the interface guidelines can sometimes be a good thing? Could you give us an example?
Yes, in order to improve the user experience, sometimes it is necessary to violate the interface guidelines. As example, a Windows request to support 800×600 as minimum resolution. You can organize and provide more information in a 1024×768, improving the user experience. In fact, the majority of developers today use 1280×800 and higher.
And the last question – what do you have to offer to mISVs and hobbyist programmers?
We provide the fastest IDE in the market – the Delphi language, which is easy to learn and use. We also provide the C++Builder IDE for C++ development. Both IDEs are based on the component development, drag and drop, easy to deploy, maintain and run.
We offer the Delphi and C++Builder Starter Edition for mISVs and hobbyists. This version includes a streamlined IDE with a code editor, ultra-fast Delphi compiler, and integrated debugger. It also offers two-way visual designers to speed development, hundreds of visual components, and InterBase Express for connectivity with the InterBase database.
Getting started on realizing a product vision or getting a startup off the ground can be difficult without seed capital or sales revenue. Outfitting developers with professional level tools can be cost prohibitive before they have product to sell. So the Starter Editions have an “indy“ license, which allows developers to build software for themselves, non-profit organizations, friends and so on. If their revenue level reaches a certain point, they can upgrade to a specially priced Professional Edition license.
About Andreano Lanusse
Andreano Lanusse is a software development expert who is enthusiastic about the industry. At Embarcadero, he is focused on helping to make sure the products being developed meet the expectations of Embarcadero’s customers, as well as defining market strategies for Latin America. You can find his blog at: http://blogs.embarcadero.com/andreanolanusse