Taking a Look at CodeGear Turbo Delphi 2006
- By Peter Varhol
Most programmers of a certain age learned data structures in the Pascal language. Marveling at the power and simplicity of the language, you have probably never forgotten it. Okay, casting was hard, and pointer arithmetic impossible. But you learned that if you planned far enough ahead, then you never had to do these things. Um, except casting.
As a college professor developing simulation frameworks for students, I did some serious programming with Turbo Pascal for Windows. I moved to Visual Basic and Java as times changed, but I did my best work in Pascal.
When CodeGear, the new development tools subsidiary of Borland, offered me a preview of the new Turbo development tools, I jumped at the opportunity. While I also looked at Turbo C#, I spent the most time working with Turbo Delphi—a language that can be described as Pascal on steroids. However it is probably better described as a form of Visual Basic with a more functional and complete pointer-oriented language.
What Happened to Delphi?
Delphi was never completely phased out. But Borland was accepting its inevitable decline for a period of time. Now CodeGear—bless its developer heart—has decided to fight Delphi's decline with the return of the "Turbo" name, one that once signified an inexpensive, high-quality product with fast compilers.
Retaining its reputation as an inexpensive, high-quality product, Turbo is no longer turbo in performance. But it can still outclass Visual Studio in the speed of compile. Turbo is available as a free download (you'll be charged if you want it on CD), while the professional version is $500. The professional version lets you create new custom controls for the IDE and use a reports engine. The free version doesn't allow for these capabilities but you can still develop useful applications with it.
I hadn't used Delphi for ten years. My first surprise was the user interface. I had flashbacks to TogetherSoft and the Together IDE. A few years ago, Borland moved its non-Java tools toward the Together framework, giving them the Together look and feel. Today the layout is functional, if a bit old-fashioned in appearance.
The Delphi programmer essentials are included in its interface: the GUI builder, the controls, the property sheet, and the code-behind with Pascal procedure stubs. You can call the Win32 API, and because you have pointers, you don't have to call it in the unintuitive fashion of Visual Basic.
You'll quickly master Turbo Delphi if you've used IDEs in the last five years. And if you've programmed in Pascal in the last ten years, then you can become productive within a day. As a member of the latter group, it took me a day to build a sample application.
Delphi Pros and Cons
CodeGear added some modern touches to Turbo Delphi. You can build Web services easily and create HTML and XML documents. Anachronistically you can still build ActiveX controls, too.
Delphi is lacking a project type to create active Web pages. You have to use lower-level CGI scripts or a technology Borland calls IntraWeb to create them. IntraWeb seemed straightforward, but I didn't spend a lot of time exploring this feature. Instead of learning a new development model for Web applications, choose a different development environment with which you're already familiar. Or you can use Delphi for .NET, which offers the ability to build both .NET Winforms and ASP.NET applications.
Delphi for Win32 required installation of the .NET Framework, even though the environment did not seem to make use of it. The .NET Framework version is still at 1.1, so don't expect the most modern Framework features.
The documentation seemed to take a backseat. I was not impressed with the ability to navigate and find things in the online-only docs. Because the docs repeatedly referenced .NET access, I realized quickly that the same documentation serves both the Win32 and .NET versions. While Turbo is freely available, putting effort into building good documentation is part and parcel of product development.
If you want to use the software for longer than two weeks, then you have to register it. I have no problem registering; collecting user information is a big part of CodeGear's business model. But the product registration process hung twice on me, and while it didn't prevent use in the two-week period—and I was finally able to register—it seemed like an archaic mechanism with which to rebuild a developer community. You can also call in your registration, which is even more archaic.
You must understand pointers to have a true grasp on computer programming. While garbage collectors and finalizers are the lingua franca of modern programming and important to understand, it is not possible to grasp the concept of data structures without pointers. Turbo Delphi offers a good visual design environment and a language that gives you more power than Visual Basic.
Fighting against Turbo Delphi's decline is important. Not all programmers are going to rally around the bland, mass-produced Java or .NET languages. The principles that Niklaus Wirth expounded through Pascal are reasonable parameters on which to base a language for the ages. If it is no longer a modern, general-purpose language, then it is a useful language and IDE for building Windows applications. Delphi will even do services and Web applications in .NET or through its own mechanism.
The other alternatives, such as Turbo C++ and Turbo C#, are in the same vein, functional for many tasks but not as mainstream development tools. While you can't beat Visual Studio for its flexibility in developing many different kinds of applications, the simplicity behind the Turbo products has appeal to those who think tools have gotten too complicated.
Ultimately, Turbo Delphi may do little more than maintain the Delphi community. Accomplishing this goal is commendable enough. But Turbo Delphi may also be the answer for developers who are struggling with the complexities of .NET or Java, which are both larger and more complete languages and environments. There exists a class of less complex applications for which developers can be more productive with a product such as Turbo Delphi. The industry will cheer its reemergence if Turbo makes inroads for this kind of development.
Peter Varhol is editor in chief of FTPOnline. (The parent company of FTPOnline, Fawcette Technical Publications, Inc. was acquired by 1105media in December.)