Today (or maybe tomorrow, depending on who you talk to) is the
25th anniversary of Borland's introduction of the Delphi RAD
environment for Object Pascal. Delphi changed my life as a
programmer forever. It also changed my life as a book publisher for
awhile. The Delphi Programming Explorer, a contrarian
tutorial book I wrote with Jim Mischel and Don Taylor and published
with Coriolis, was the company's biggest seller in 1995. We did a
number of other Delphi books, including a second edition of the
Explorer for 32-bit Windows, Ray Konopka's seminal
Developing Custom Delphi 3 Components, and others,
including Delphi 2 Multimedia Adventure Set, High
Performance Delphi Programming, and the ill-fated and
much-mocked Kick-Ass Delphi. We made money on those books.
A lot of money, in fact, which helped us expand our book publishing
program in the crucial years 1995-1998.
It took OOP to make Windows programming something other than
miserable. I was interested in Windows programming from the outset,
but didn't even attempt it while it was a C monopoly that involved
gigantic switch statements and horrendous resource
files. With OOP, you don't have to build that stuff. You inherit
it, and build on it.
There is an asterisk to the above: Visual Basic had no OOP
features in its early releases, and I did quite a bit of Windows
BASIC work in it. Microsoft flew a team out to demo it at the
PC Techniques offices in late 1990 or early 1991. A lot of
Windows foolishness was exiled to its runtime P-code interpreter,
and while a lot of people hate P-code, I was used to it from UCSD
Pascal and its descendents. What actually threw me back in my chair
during the Thunder demo (Thunder being VB's codename) was the GUI
builder. That was unlike anything I'd seen before. Microsoft bought
the GUI builder from
Tripod's Alan Cooper, and it was a beautiful and
almost entirely new thing. It was Visual Basic's GUI builder that
hammered home my conviction that visual software development was
the future. Delphi based its GUI builder on OOP, to the extent that
Delphi components were objects written within the VCL framework. I
enjoyed VB, but it took Object Pascal within Delphi to make
drag-and-drop Windows development object-oriented from top to
bottom.
People who came to OOP for the first time with Delphi often
think that Delphi was the first Borland compiler to support OOP.
Not so: Turbo Pascal 5.5 introduced OOP for Pascal in 1989.
Although I wasn't working for Borland at the time, I was still in
Scotts Valley writing documentation for them freelance. I wrote
about two thirds of the Turbo Pascal OOP Guide, a slender
book that introduced OOP ideas and Object Pascal specifics to Turbo
Pascal 5.5 users. A little later I wrote a mortgage calculator
product using BP7's OOP features, especially a confounding but
useful text-mode OOP framework called Turbo Vision. I licensed
Mortgage Vision to a kioskware vendor, and in doing so anticipated
today's app market, where apps are low-cost but sold in large
numbers. I cleared $17,000 on it, and heard from users as late as
the mid-oughts. (Most were asking me when I was going to start
selling a Windows version. I apologized but indicated I had gone on
to other challenges.)
I mention all this history because, after 25 years, a lot of it
has simply been forgotten. Granted, Delphi changed the shape of
Windows development radically. It did not, however, come out of
nowhere.
One of the wondrous things about Delphi development in the late
90s and early oughts (and to this day, as best I know) was the
robust third-party market for Delphi VCL components. I used to
wander around
Torry's
Delphi Pages, marveling at what you could buy or simply
download and plug into Delphi's component palette. I have all of
TurboPower's Delphi VCL products and have made heavy use of them
down the years. (They're free now, in case you hadn't heard. Some
but not all have been ported to the Lazarus LCL framework.) I've
also used
Elevate's DBISAM for simple database apps, and
Raize Software's
DropMaster for drag-and-drop data transfers across the Windows
desktop. Those are simply the ones I remember the best. There were
many others.
I don't use Delphi much anymore. I still have Delphi 7, and
still use it now and then. The newer versions, no. It's not because
I don't like the newer versions. It's because what I do these days
is teach "intro to programming" via books and seminars, and I can't
do that with a $1,000 product. Well, what about the Delphi
Community Edition? I tried to install that in 2018. The binary
installed fine. But the registration process is insanely complex,
and failed for me three times for reasons I never understood.
Sorry, but that kind of nonsense gets three strikes and it's out.
On the other hand, if I were actively developing software beyond
teaching demos, I'd probably buy the current version of Delphi and
go back to it. I'm willing to deal with a certain amount of
registration kafeuthering, but I won't put my students through it,
especially when Lazarus and FreePascal can teach the essentials of
programming just as well.
Nonetheless, Delphi kept me programming when I might otherwise
have given it up for lack of time. It allowed me to focus on the
heart of what I was doing, not on writing code for user interface
elements and other mundane things that are mostly the same in all
applications. Back when Delphi was still a beta product, Project
Manager Gary Whizin called Delphi OOP programming "inheriting the
wheel". That's where the magic is, and Delphi is strong magic
indeed.