RAD Studio 10.4.1 is now available! Learn more. Looking for discounts? Visit our Special Offers page!
CodeDelphiRAD Studio

The Origins Of Delphi R&D Recounted By Danny Thorpe, Original Delphi 1 Team Member

I ran across this post over on StackExchange where Danny Thorpe, one of the original Delphi 1 team members, recounts the effort that went into the research and development behind the creation of Delphi 1.

Enjoy!

“Delphi 1.0 was released Feb 14, 1995. By my (now somewhat foggy) recollection, research / experimentation that directly contributed to defining the Delphi visual development experience started around 1992.

The research group included some folks who had previously worked at Xerox Parc Place on human-machine interface design and theory, as well as the Turbo Pascal core team. I think this research grouped numbered 3 or 4 full time engineers, plus part-time contributions and consultations from the Pascal engineering leads. Weekly demos became a standing-room-only event for the entire development tools team.

Several prototypes of various approaches to defining program logic using only visual graphs were built, but were considered unsatisfactory due to rapidly escalating complexity for the developer. The canonical use case / app development benchmark for comparing IDE prototypes became “Implement a calculator app”.

This research led to Delphi’s visual+code development model, where source code defined program logic and graphic designers defined UI composition, and the two were implicitly tied together and kept in sync.

Most of this research took place in Borland’s offices at Green Hills Road, before the Pascal and C++ teams moved to the new Borland campus in 1993.

This UI research was concurrent with development of Turbo Pascal for Windows 1.5 and Borland Pascal 7.0, both released in 1992. The core Pascal product team numbered roughly 10-15 full time employees, including engineering, quality assurance (me!), doc, and product marketing.

The OWL application framework of Turbo Pascal for Windows (developed for Borland by a contractor experienced in Windows development) provided many examples of pain points we did not want to repeat in Delphi. So in that regard, development of Turbo Pascal for Windows starting ca 1991 also contributed to the architectural and thematic goals and philosophies of Delphi and VCL.

One of the hard lessons learned from the Turbo Pascal 6 Turbo Vision framework and again from OWL was that object frameworks tend to create a high barrier to entry. Object inheritance and virtual method overrides require the developer to understand a lot about what they are inheriting from, what it does for them, and what it requires of them. This realization led to the event-driven programming model of Delphi, which all but eliminated prior knowledge requirements on developers. Events are largely “contract-free”, requiring no knowledge of inheritance or virtual overrides. This makes it much easier to get started and be productive with Delphi compared to previous products.

Development of an entirely new 32 bit Pascal compiler also took place during the same period, with a team of about 3 engineers brought in through acquisition of their company. This became the 32 bit Delphi compiler at the heart of Delphi 2.0.

At some point along the way (ca 1993, possibly earlier), the Pascal leadership team (Gary Whizin, Zack Urlocker, Anders Hejlsberg, and others) made a conscious decision to create and ship a 16 bit Delphi product first, as an on-ramp to a subsequent 32 bit Delphi product. There was concern (ca 1993) that there wouldn’t be enough 32 bit machines or OS’s on end-users’ desks to drive sufficient sales of a 32 bit dev tool. Windows NT already existed and was fully 32 bit, but its adoption rate was frightfully small and it was not considered, marketed, or priced as a mass-market end-user OS. Borland was founded on the sales strategy of low price at high volume, which requires a mass-market platform – for developers, and for the users of the products the developers created with Borland tools.

Planning to release a 16 bit Delphi product first also dovetailed with Microsoft’s plans for a mass-market 16 bit Windows OS release (Win95). The release of Delphi 1.0 was completely dependent on the release of Win95 (“Cairo”), so slips in the Win95 release date were simultaneously welcomed by the Delphi dev team and cursed by the Borland sales teams.

You’ll notice that Delphi 1.0 shipped in February 1995, but Win95 shipped in August 1995. The Delphi leadership team decided to take a gamble on releasing Delphi targeting a beta Win95 OS. I’m sure ending the 3 year gap in Borland product releases (No product from the Pascal dev team from 1992 to 1995) was a key factor. True, Delphi 1.0 and the apps it produced did run on Windows 3.1, but all attention and anticipation was on Win95.

This may have been the first product Borland released supporting a beta OS. After Delphi, releasing tools for Microsoft beta OSs became common practice.

Delphi 2.0 development began in earnest almost simultaneously with Delphi 1.0’s genesis. At least within the last year of Delphi 1.0 development (possibly much earlier), it became a release requirement that apps written in Delphi 1.0 VCL must recompile and run as 32 bit native apps in Delphi 2.0 with no code changes. Win32 was always the goal, Win16 was a means to get there.

And that’s how Delphi 2.0, with an entirely new optimizing 32 bit compiler and 32 bit VCL and 32 bit IDE and debugger shipped only 1 year after Delphi 1.0. Critical parts of the 32 bit compiler and VCL were already running before Delphi 1.0 shipped.” – Danny Thorpe

Head over and give Danny an up vote for his recounting of the history of Delphi 1 on StackExchange!

Want even more Delphi history? Check out the Delphi 25th Anniversary site!


Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder.
Design. Code. Compile. Deploy.
Start Free Trial   Upgrade Today

   Free Delphi Community Edition   Free C++Builder Community Edition

About author

FMXExpress.com has over 600 articles with all kinds of tips and tricks for Delphi FireMonkey on Android, IOS, OSX, Windows, and Linux.
Related posts
C++CodeDelphi

Learn To Use Python Objects Inside Your Delphi Source Code With This Windows Sample App

C++CodeDelphi

Manage Your Collection Of Pages Easily With TCardPanel Component For Your Delphi VCL Application

CodeDelphiRAD Studio

Learn How To Use FireDAC In The Dynamic-Link Libraries With DLL Sharing Sample In Delphi

C++CodeDelphi

Learn To Build A Python GUI For Working with HTTP Requests With Requests Library In A Delphi Windows App

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

IN THE ARTICLES