Compared to multi-billion dollar enterprises, small software businesses are in a very different position when it comes to software development. They have other needs and expectations of their development tools. For a big software corporation like Symantec, it doesn’t matter much if a software product is a small download or not. They sell their products either through retail stores or send their corporate customers media kits. As long as the software fits on a CD or DVD, the file size doesn’t matter.
For small software businesses who often sell their products online, it is important that their applications and trial version can be easily downloaded over the internet. Points such as download size should play a big role in the decision for or against a software development tool in the eyes of a small software business owner.
We at Gurock Software have implemented a critical part of our product
SmartInspect with Borland Delphi. We decided to use Delphi because it was the best tool for the job and we knew Delphi very well already. Other small software businesses might not be aware of the advantages of Delphi and I would like to highlight the pros and cons of Delphi for small software businesses in this article.
Borland Delphi is both a RAD (rapid application development) IDE and a programming language (formerly known as Object Pascal). The IDE itself supports additional languages like C# and C++ (in Delphi 2006), but in this article I will focus on using the Object Pascal language with Delphi.
Delphi 1.0 was released in 1995 for Windows 3.1 as the successor of the highly popular Turbo Pascal development tool. Delphi 2.0, the first 32 Bit version of Delphi, shipped shortly afterwards for Windows 95. Contrary to popular belief, Object Pascal had very strong object-orientated features from the start and gained additional language features like interfaces in later versions.
But Delphi is more than just the IDE and the programming language. The feature-rich standard library of Delphi, the Visual Component Library (VCL), abstracts the Windows API with a nicely designed hierarchy of classes, components and controls. The VCL contains many useful classes and graphical controls to build great Windows applications in a short time.
Advantages for small software businesses
I will start with pointing out the advantages of using Delphi for small software businesses.
- Easy to learn
Learning Delphi is easier than learning most other languages. The Pascal-oriented language is clear and easy to read and you can learn the language very fast by just looking at other peoples’ code. As small software businesses often don’t have the resources to put a developer in learning mode for half a year, this point might be one of the most important. Although Delphi is easy to learn, one should never forget that developers are most productive in the development tool they already know. It could be a good idea to use Delphi for internal side projects first when it comes to learning the new language.
- Win32 and .NET
Delphi 2005 contains a compiler and a base class library for both Win32 and .NET. This means that you can develop native Windows and .NET applications with the same language, class library and IDE. This can be an advantage if you have to develop for both platforms or just want to be sure there is an upgrade path in case you want to switch to .NET later. If you only use the VCL classes and controls, it is even possible to write applications that can be compiled to native Windows code or .NET programs
without changing a line of code.
- Small file size
One nice attribute of applications that are built with Delphi is the small file size. This is possible because Delphi applications are independent of a big runtime library like the .NET framework. A simple graphical Delphi application is just about 300KB in size and can be downloaded even over a 56k modem quite fast. Because the files of a Delphi application are so small, software businesses can target customers over the internet much easier. Around 40% of internet users in the United States are still browsing the web with 56K modems. In most other countries this number is even higher. Especially if a software business is targeting consumers, they should keep the file size and dependencies like the .NET framework in mind when choosing a development tool.
Delphi applications that are compiled as native Win32 programs are almost as fast as natively compiled C++ applications. This makes Delphi well-suited even for graphic-heavy and math-intensive applications. Additionally, graphical interfaces developed with Delphi are much more responsive than their counterparts in .NET and Java and just feel better.
- Safe future
Although there are always rumors about Borland abandoning Delphi, Borland demonstrated their commitment to Delphi over a very long time. Even applications that were written in Delphi 1.0 still work with only minor modifications in Delphi 2005. While Microsoft stopped supporting Visual Basic 6 and let Visual Basic developers down without an easy upgrade path to .NET, Delphi’s future has never been brighter. Additionally, the new communication policy from Borland and their clear roadmaps for Delphi’s future help stopping the rumors about the death of Delphi and demonstrate the commitment of Borland once again.
- Big third-party market
One of the best things about Delphi and its community is the big number of third-party tools and components. There are many high-quality free and commercial graphical components and libraries that can be plugged right into your applications. The good component model of Delphi encourages building reusable code and leads to this amount of ready-to-use components. Are all components of good quality? No, of course not. Like for all development tools, there are components and libraries of good
and bad quality. But just dismissing all libraries and components because there are bad ones seriously reduces your productivity and I highly recommend taking a look at projects like Indy, JCL and FastMM4.
- Highly productive RAD environment
The Delphi IDE contains a powerful GUI designer, refactoring tools, file versioning and other neat features that make writing code and designing great GUIs very productive and straightforward. Especially the GUI designer is very well designed and so intuitive that no other IDE can match the ease of use of Delphi (at least for me).
Disadvantages of Delphi
No development tool is perfect and you should know the disadvantages of the tools to make the right decision when choosing one.
- Fewer developers to choose from
Delphi is not as mainstream as C++, Java or C#. This fact leads to fewer developers when selecting employees for your software business. This point can be important if you plan to grow fast and want to have a large pool of potential developers to choose from. Fortunately, as Delphi is quite easy to learn, any developer knowing object oriented programming will be productive with Delphi in a short period of time.
- Bad Unicode support
One of Delphi’s arguably weakest points is the incomplete Unicode support. The language itself is fully Unicode enabled and has support functions to work with wide strings. The VCL, on the other hand, with its classes and visual controls, has almost no Unicode support. All of these problems can be circumstanced with third-party controls and libraries and it is not too hard to write fully Unicode aware applications with Delphi. But because of the lack of Unicode support in the VCL, Unicode aware programming is more complicated than it should be.
- For Windows, only
Borland Delphi is only available for Windows and you can only develop Windows applications with it. For some products this point is a no-go. For other products that are only targeted at Windows users, this point might be negligible.
When to use Delphi
The following list of software product types is a prime example of where Delphi gives small software businesses an advantage over their competitors.
- Windows desktop applications
Windows desktop applications benefit by far the most of the unique advantages of Delphi. Desktop applications should be responsive, often use feature rich controls and benefit of the RAD nature of Delphi. In my opinion, there is no better tool when it comes to developing generic Windows desktop applications.
- Server applications
If you have to develop a server application, Delphi scores with its great database support, rich communication libraries like Indy and general high performance execution. Developing Windows services is very easy with Delphi too, which is often a requirement when it comes to Windows server applications.
When not to use Delphi
Although you can theoretically write almost all kinds of applications with Delphi (maybe except device drivers), there are some areas where other tools are better suited.
- Cross-platform development
Delphi applications run on all Windows operating systems from Windows 95 upwards. This is nice and often enough, but if you need to develop cross-platform applications that run on other operating systems like Linux, Mac OS X or FreeBSD, Delphi is not the right choice. Although there is Kylix, basically a Delphi edition for Linux, I would strongly advice against using it. It was a problematic product from the beginning and Borland does not plan to release new versions in the near future.
- Mobile applications
If you want to develop applications for a Palm, a PocketPC PDA or mobile phone, Delphi is currently not the product to use. Borland is currently trying to figure out how to support the .NET Compact Framework with Delphi for .NET, but until they release a working version with emulator, debugger and maybe even a compact VCL, you are better off using C# with Visual Studio, Java or C++.
For other software types like web applications, it is not as easy to give a recommendation for or against Delphi. You can use Borland’s WebSnap framework, AToZed’s Intraweb or ASP.NET with Delphi for .NET to build web applications with Delphi. But as there are so many frameworks and languages specialized in web development, it is hard to tell if Delphi is the right choice for web applications. As always, consider all the advantages and disadvantages when you choose your development tool.
I hope this article was helpful to you in deciding if Delphi is the right choice for your next product or if you should take a deeper look at Delphi. Delphi is often overlooked when choosing a development tool and it could give you a competitive advantage for your next product. If you have questions or remarks to this article, do not hesitate to contact me or leave a comment.