Many of my friends are surprised that I choose to use Delphi as my primary desktop technology, especially for Greenfield projects.
They worry that Delphi is obsolete, only used on legacy systems. I’m reminded of this rather amusing comment on a forum:
“My colleague told me to abandon Delphi, it’s obsolete, Silverlight is the future.”
I appreciate their concern, but I choose to use Delphi because it is the best technology for my needs. We all have different preferences/requirements and to paraphrase Aristotle “we like what we are good at.” But for me, Delphi is awesome. I’ll try to explain.
Delphi is compiled to native code, so the performance is great. Without the overhead and inconsistencies introduced by a Virtual Machine (garbage collection, etc.) Delphi is an excellent candidate for real-time and embedded systems. The compiler is extremely quick, resulting in a fast build-debug loop, and improved developer productivity. Furthermore, deployment couldn’t be simpler as the compiler produces a single executable.
Although the Delphi compiler optimization lags behind C++, its speed is a great trade-off for all but the most demanding needs. The Delphi environment is as close to a managed environment as you can get whilst still remaining native. Object Pascal is far simpler and safer than C++ which further improves developer productivity and code maintainability. It is the perfect balance between C# and C++. The guys over at KaM Remake made the same observation, their post is well worth the read. As much as I like C++, I find I’m much more productive in Object Pascal.
Delphi can target Windows (7-10, server 2012/2016) using either the traditional VCL framework, or the more recent FMX. You can even deploy into the Windows Store. Using FMX you can target Windows, MacOS, iOS, and Android from the same code base. Thanks to FMXLinux, you can also target Linux. If you need to target more platforms, you can use Lazurus and FreePascal. You can literally target anything with Object Pascal:
“Free Pascal is a 32, 64 and 16 bit professional Pascal compiler. It can target many processor architectures: Intel x86 (including 8086), AMD64/x86-64, PowerPC, PowerPC64, SPARC, ARM, AArch64, MIPS and the JVM. Supported operating systems include Linux, FreeBSD, Haiku, Mac OS X/iOS/iPhoneSimulator/Darwin, DOS (16 and 32 bit), Win32, Win64, WinCE, OS/2, MorphOS, Nintendo GBA, Nintendo DS, Nintendo Wii, Android, AIX and AROS. Additionally, support for the Motorola 68k architecture is available in the development versions.”
The VCL has continued to evolve. It is still a premier technology for Windows development. FMX is Delphi’s modern cross-platform vector-based graphics framework. It too is more of an evolution of the VCL to address modern cross-platform development.
“There is an evolution of technology, not constant revolution.”
Object Pascal has also evolved, offering many features expected of modern languages such as Generics, Anonymous Functions, Type Helpers, support for AOP, etc. There’s more work to be done, especially in terms of reducing verbosity, but the language is in pretty good shape and improvements are on the official Roadmap.
You can build anything with Pascal, from compilers to operating systems, from business applications to games. Whatever you can do in C++, you can do in Object Pascal.
Whilst I appreciate XAML and QML, I’ve always preferred component based frameworks over declarative. I find them much quicker to develop in, and much simpler to use. Component based frameworks make RAD possible, and RAD is the fastest way to build software. FMX brings RAD to the world of cross-platform development.
Awesome Software Created in Delphi
Finally, I really enjoy programming in Delphi. Sure it has it quirks, is a bit verbose, shows its age, etc. but there is something fundamentally elegant about this technology, it is always a pleasure to code in. I feel happy when I’m using Delphi. If a tool makes me happy, does the job, that’s win-win.