Programming Windows: In the Beginning (Premium)

As noted previously, Windows 1.0 finally arrived in November 1985, two years after it was first announced. Described by Microsoft as an “operating environment” for MS-DOS, Windows provided a mouse-driven GUI under which traditional DOS applications, as well as new Windows applications, could run side-by-side in tiled windows.

The initial version of Windows didn’t offer overlapping application windows in deference to Apple, though individual Windows applications could display their own overlapping sub windows for dialog boxes and the like. But even in its earliest and most basic incarnation, Windows provided still-modern features like a system-wide clipboard by which applications could share data, display-independent graphics capabilities, broad driver support for graphics cards and printers, and more.

To understand why such advances were important, consider an example.

By 1985, the notion of “windows” within applications had become common. DOS-based Developer environments like Borland Turbo Pascal supported this functionality, allowing programmers to juggle multiple source code files and output displays. So did DOS-based productivity applications, like Lotus 123 and Microsoft Word, where being able to switch between multiple documents on the fly was obviously useful.

In DOS, these applications all had to implement windowing independently, and each had its own methods for drawing the screen, keeping hidden content in memory, determining keyboard shortcuts, and more. For the user, the differences could be confusing and make for an inconsistent experience when moving between different applications, especially if they were made by different vendors. And inter-application data interoperability was either non-existent or, via special Terminate and Stay Resident (TSR) utilities, difficult to use and inconsistently available and compatible.

Windows, like other GUIs, sought to end the confusion and make life easier on both application developers and users. That windowing functionality, which evolved along with Windows as the product moved from versions 1.0 to 3.1 over several years, was an integrated part of the system, something that developers didn’t need to independently duplicate and something that users only needed to learn once. And data interoperability, inside of an application or between different applications, was automatic.

Put simply, Windows abstracted the underlying system for both audiences. Developers could write applications to the then-new Windows API. And users could use Windows applications in this environment, sure that they would look and work similarly and would interoperate with each other and with the underlying PC seamlessly.

(Fun aside. Where the Macintosh mouse had a single button, the Microsoft Mouse, which was first released alongside Microsoft Word for DOS, had two. The first of the two buttons functioned similarly to the single Macintosh mouse button, allowing the user to “click” ...

Gain unlimited access to Premium articles.

With technology shaping our everyday lives, how could we not dig deeper?

Thurrott Premium delivers an honest and thorough perspective about the technologies we use and rely on everyday. Discover deeper content as a Premium member.

Tagged with

Share post

Please check our Community Guidelines before commenting

Windows Intelligence In Your Inbox

Sign up for our new free newsletter to get three time-saving tips each Friday

"*" indicates required fields

This field is for validation purposes and should be left unchanged.

Thurrott © 2024 Thurrott LLC