Delphi is poised to rebound
Borland Delphi 2005
Scotts Valley, Calif.
I got my first serious taste of object-oriented programming using Delphi and its built-in programming language, Object Pascal. I was later lured into the Java camp, where I stayed for many years, so it was with some nostalgia that I returned to the platform to write this review of Borland’s Delphi 2005.
The good news is that Delphi still has a lot to offer today’s development team, whether that team is targeting the enterprise or the client side. Users will find tools and wizards for creating various types of projects, including Win32 executables, DLLs, .NET-managed code, and ASP.NET Web pages. It also breaks from earlier versions in that Object Pascal isn’t the only supported language. It’s now possible to use Delphi to write and debug C# code, and to compile to either Win32 or .NET target environments.
Delphi 2005 also ships with various reporting tools, including Crystal Reports and Rave Reports. To interoperate with their Visual Component Library, Borland also provides its own capable reporting tools, VCL Forms and VCL for .NET.
Database development is a Delphi strength
RAD-style database development has always been one of Delphi’s great strengths. For example, it’s easy in Delphi to define a data source and hook it up to a GUI component, such as a list or table, without writing a single line of code. This capability is something that, after a decade, Java IDEs are only just beginning to provide.
The support for ADO.NET is a welcomed addition. It’s now possible to use a provider/resolver mechanism that uses industry-standard ADO.NET data providers for data access. This same mechanism also provides a design-time view of your data, reducing the round-trip compile/deploy/test/debug delays normally associated with database development. In addition, Delphi leverages .NET's remoting services, providing access to remote objects.
Borland also has bundled a number of tools for exploring and designing database tables, migrating data and testing stored procedures.
Editing code and GUI
The visual GUI editor is used for creating traditional Win32 or .NET client applications. The GUI editor was once the bread and butter of both Delphi and its one-time rival, Visual Basic. Despite all the new enterprise features, it’s still as easy as ever to simply create a GUI form, drag some components onto it, link the events up to event handler code, and compile and run it.
In fact, Borland has done a good job of centering most of the development tasks consistently on the same WYSIWYG-style editor layout. For example, to write reports or create Web pages in Delphi 2005, you drag components onto the visual panel as if you're creating a GUI form, and then you switch to the source code editor to write the event-handler or business-logic code.
The code editor in Delphi has always been excellent, and is neatly integrated with both the GUI editor and the ASP.NET visual editor. The latest version also includes refactoring support, a welcome addition. For unit testing, Delphi 2005 supports the open-source NUnit for C#, or DUnit for Object Pascal.
Web work any way
After trying out Delphi 2005’s much-improved Web and Internet development tools, I had to wonder why anyone would want to create Web applications any other way. (And this is coming from a self-confessed Java fanatic!)
For building an ASP.NET Web application, Delphi’s visual HTML designer supports drag-and-drop of Web components, DreamWeaver-style, allowing them to be configured with little or no code. Web applications can be deployed remotely using the built-in deployment manager (using FTP) if needed.
In addition, database and ASP.Net Web development are brought together with a set of data-aware Web controls, which have been improved and expanded for the new release.
If you’re prepared to look beyond ASP.NET, Delphi also ships with a product called IntraWeb, a suite of third-party Web components that offers many advantages over ASP.NET development. IntraWeb is designed for creating Web sites that require the type of state persistence normally found in traditional client applications. A big difference between IntraWeb and ASP.NET is that IntraWeb pages survive between server requests, i.e., a new page isn’t created each time the browser makes a request.
One of the downsides of IntraWeb is that it tracks user sessions using URL rewriting. As a result, URLs aren’t nice, user-friendly things, like CustomerSearch.html, but are more disturbing, cryptic strings like /EXEC/0/0
6ytoc212hpao413rpqi71dm6gs5. A big dose of the underlying mechanism is exposed to the user in the most prominent part of the UI.
Despite this particular shortcoming, Delphi’s overall ease of use and variety of options for creating solid, scalable Web applications makes Sun’s equivalent Java offering (Java Studio Creator) look like a feature-starved also-ran in comparison. Delphi will have you up and running, creating enterprise Web applications in very little time.
Old guard is old perception
When it was first introduced, Delphi was a world-class Visual Basic killer. Anything that VB did, Delphi did better, with its true OO programming model. Yet, it was still incredibly easy to program. And yet VB still won the critical mass of developer mindshare, largely because it had the backing of Microsoft. When developer mindshare shifted to Java, Delphi was again left
to plod quietly along in someone
In many ways Delphi offers a superior programming model to Java. In fact, Delphi’s highly professional component suite runs rings around the equivalent Java/Swing component toolkit. Delphi also offers many components on top of the default suite of .NET components, and offers it in a package that is generally more productive than Visual Studio.NET.
The product seems to suffer in terms of perception and popularity because it’s one of the old guard from the VB and PowerBuilder days: it’s a closed language sealed inside a proprietary IDE. This has its risks: what if Borland were to suddenly go out of business? Are there enough programmers with real-world experience in Delphi?
For programmers, Delphi may seem career-limiting because all the noise is being made in the Java and .NET camps.
These risks notwithstanding, Delphi continues to offer a robust, dependable, workhorse IDE, language and platform that is definitely worth considering.
Matt Stephens is a senior architect based in central London. He writes books and articles on software design, and speaks at various software conferences. He is the co-author of Agile Development with ICONIX Process (Apress, 2005) and the upcoming Use Case Drive Object Modeling—Theory and Practice (Addison-Wesley, 2005). Check out his Web site at www.softwarereality.com.
PROS & CONS
- Users will find tools and wizards for creating various types of projects, including Win32 executables, DLLs, .NET-managed code and ASP.NET Web pages.
- It’s now possible to use a provider/resolver mechanism that uses industry-standard ADO.NET data providers for data access.
- Despite all the new enterprise features, it’s still as easy as ever to simply create a GUI form, drag some components onto it, link the events up to event handler code, and compile and run it.
- One of the downsides of IntraWeb is that it tracks user sessions by URL rewriting. As a result, URLs aren’t user-friendly.
- With developer mindshare focused on Java, Delphi has been left to plod quietly in Java’s shadow.
- The product seems to suffer in terms of perception and popularity because it’s one of the old guard from the VB
and PowerBuilder days: it’s a closed language sealed inside
a proprietary IDE.
Editor’s note: Product Reviews are written by software developers ADT hires to give readers complete portraits of the tools and technologies they use.