11

I would guess the compiler was primarily a modification of Borland's Turbo Pascal, while the Integrated Development Environment and Visual Component Library required a lot more development from scratch. I haven't been able to find any descriptions of how much time and how many people were required to finish Delphi version 1. Does anyone know?

1 Answer 1

18

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.

2
  • 1
    Thanks for this detailed account. I did stumble about you calling Windows 95 a "16 bit Windows OS", though. Wasn't Windows 95 the first mass market Windows with a 32 bit kernel? I always thought of Delphi 1.0 as "the Windows 3.1 Delphi" and Delphi 2.0 as "the Windows 95 Delphi". Commented May 8, 2020 at 21:16
  • 3
    Nit: Windows 95 was "Chicago". "Cairo" was never quite delivered as originally intended.
    – dave
    Commented Dec 19, 2020 at 23:52

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .