The Pragmatic Engineer

The Pragmatic Engineer

Deepdives

Microsoft’s developer tools roots

Microsoft is quietly building a monopoly in the developer tools segment. Does the history of the tech giant help explain how this is happening?

Gergely Orosz's avatar
Gergely Orosz
Jan 21, 2025
∙ Paid

Ask 10 startups or scaleups if they use the “Microsoft stack”, and I’d be willing to bet that almost none do. By “Microsoft stack”, I mean using any one of C# or F# as a programming language, the .NET framework, ASP.NET for web development, or SQL Server as a database. However, if you asked the same companies if they use one or all of Visual Studio Code, GitHub, Copilot, TypeScript, or npm, then all may reply that they do.

The questions might seem different, but they are in fact almost identical. VS Code, GitHub, TypeScript, npm are all technologies owned and operated by Microsoft which are increasingly popular with startups and modern tech companies, but just don’t have strong Microsoft branding.

The Windows maker is quietly investing more in developer tools than any Big Tech giant. It acquired GitHub for $7.5B in 2018. It likely spent hundreds of millions of dollars per year to develop Visual Studio Code – then and then gave it away for free while upselling some of its services. It also offers GitHub Copilot for $10/month or $100/year, which may currently be a loss-making price point.

So, why is Microsoft investing so much into developer tooling, and why does the rest of Big Tech seem comparatively uninterested in competing in this area? This question has been bugging me, so I attempted to find an answer. In order to properly understand what’s happening today, it’s useful to go back in time to when Microsoft became a highly profitable “dev tools monopoly” once before, in the 2000s.

This deep dive covers the first part of the story, covering:

  1. A programming language interpreter company. Microsoft started out as a company selling BASIC interpreters to various hardware companies.

  2. More and better developer tools. Following the success of MS-DOS and Windows, the company still built developer tools like Microsoft C, QuickC and MFC.

  3. Journal for developers. Microsoft Systems Journal (MSJ). In the same year as going public, Microsoft started a printed magazine for MS-DOS and Windows developers.

  4. Visual C++, a Development System for Windows. Microsoft created this IDE to make it easier to develop apps for Windows.

  5. Visual Studio. The first IDE by the company that supported multiple programming languages.

  6. Microsoft Developer Network (MSDN). Microsoft managed to figure out how to charge a large premium for quality documentation and access to the latest software.

  7. “Developers, developers, developers!” This now-famous chant had more context: Microsoft knew that it needed developers to adopt the newly launched .NET framework, to make it a technology adoption success.

1. A programming language interpreter company

Most people associate Microsoft with the ubiquitous Windows operating system, but the company actually began by creating a language interpreter.

Building a BASIC interpreter in two months

On New Year’s Day in 1975, an advert for a minicomputer appeared on the front page of Popular Electronics, then the world’s most popular electronics magazine. It was for the Altair 8800; a small computer with an Intel 8080 CPU. The price was $439 (around $2,500 today) and the Altair couldn’t do much by itself: it had to be extended with memory (up to 4KB), and additional interface boards needed to be purchased to make it practical to use, like a typing board, cassette tapes, floppy disks, etc. All these were separate purchases, and some weren’t available at launch.

The price was incredibly low for its time. Before the Altair 8800, computers that were equally capable cost several times more, whereas the Altair was accessible to hobbyists. Its manufacturer, MITS (Micro Instrumentation and Telemetry Systems), hoped to sell 200 units, but sold 2,500 units in five months, and the device became the first commercially successful computer.

The ad announcing the Altair 8800 in Popular Electronics

The advert caught the attention of programmers Bill Gates and Paul Allen and Paul Allen, who predicted the device would quickly become popular, and spied an opportunity to develop software for it. They contacted MITS offering to develop an interpreter for a popular programming language called BASIC (Beginner's All-Purpose Symbolic Instruction Code). It’s a simple enough language:

INPUT "Enter the value of n: ", N

IF N <= 1 THEN PRINT N : END

A = 0

B = 1

FOR I = 2 TO N

C = A + B

A = B

B = C

NEXT I

PRINT "The", N, "th Fibonacci number is:", B

END

BASIC code to calculate the nth Fibonacci number

Allen and Gates did not have an Altair computer, but realized time was of the essence; so Allen wrote an Altair simulator based solely on the Intel manual for the 8080 chip (!!) Meanwhile, Gates wrote the BASIC interpreter to run on this simulator. In March, Paul Allen flew to meet the manufacturer, and demonstrated that it worked flawlessly: he loaded the interpreter into the machine, and then proved correctness by typing in simple programs like printing 2+2, sums of numbers, squares of numbers, and so on.

MITS was interested in distributing BASIC with the Altair, as the software would make their kit more useful for developers. This was the point when Allen and Gates created a corporate entity to do business: on 4 April 1975 they named and founded “Microsoft.” The company’s first contract was a licensing agreement to allow Altair to distribute their version of BASIC under the name “Altair BASIC.”

Microsoft BASIC

Microsoft’s emergence coincided with the start of a boom in affordable personal computers; every new hardware wanted to ship software to be more appealing to professional and hobbyist developers. A BASIC interpreter made all such systems easier to sell, and Microsoft developed and licensed many more BASIC interpreters to other manufacturers, including to Apple for the Apple II, to IBM, the Z-80, and the Commodore 64.

Smartly, these versions of BASIC were called “Microsoft BASIC” and the company extended the functionality of BASIC, adding improved string manipulation and better graphics support. Plus, the “Microsoft” brand name was displayed whenever the interpreter started up, which raised the company’s profile with users.

The first version of Microsoft Basic for the Apple II was on a cassette. Source: Global Nerdy

2. More and better developer tools

Microsoft’s commercial breakthrough began with creating and distributing the DOS operating system in 1981, and then the Windows operating system in 1985. In 1990, Microsoft launched Windows 3.0 and also introduced Microsoft Word and Microsoft Excel. This combination of an operating system and word processor helped Windows gain more popularity, and made the OS even more popular. Here’s how sales of the different versions compared:

  • Windows 1.0 (1985): 500,000 sales in the first two years (priced at $99 – about $290 in today’s money)

  • Windows 2.0 (1987): about 1 million sales in the first three years

  • Windows 3.0 (1990): about 4 million sales in the first year

  • Windows 3.1 (1991): about 3 million sales in the first 3 months at $149 (around $335 today)

At this point, it might have been logical to focus on just building an operating system and associated tools like the office suite, image editors, etc. However, Microsoft kept building additional code interpreters and more full-fledged developer tools. One reason for this was that the developer tools allowed developers to build more and better applications for MS-DOS and Windows. Below are notable developer tools Microsoft created between the mid-80s and mid-90s:

QuickBasic: an editor and debugger for Microsoft Basic, released in 1985.

Source: Blog Anda

Microsoft C. A C compiler built in 1983, which Microsoft released new versions of, regularly. In 1984, the company rewrote the compiler to add more features and better performance. The expectation was that this compiler would help developers build more and better programs for MS-DOS, even though other C compilers already existed, including a big competitor called Borland C.

A notable innovation by Microsoft was CodeView, a standalone debugger built for a full-screen debugging support, rather than a line-oriented debugging approach like most debuggers at the time.

Microsoft Visual C, version 7.0. Source: WinWorld
Debugging with CodeView in Microsoft C. Using the full screen to show and be able to work with debugging details was an innovation. Source: WinWorld

QuickC: a C editor, compiler and debugger, released in 1987. The UI feels like a continuation and extension of QuickBasic’s. The more advanced functionality of being able to watch an expression, or modify a variable during debugging, were made possible with this tool.

Source: WinWorld

Microsoft Foundation Class Library (MFC) made it easier to develop Windows desktop applications. This library implemented a thin wrapper around Windows APIs, allowing the use of APIs as C++ classes. MFC added support for APIs like:

  • User interface: window management (the CWnd), dialog boxes (CDialog), Menus (CMenu), and many other common elements (e.g. cButton, CListBox, CTreeView etc)

  • Application architecture: the app itself (CWinApp), document-view architecture elements (CDocument, CView), frame windows (CFrameWnd)

  • Environment APIs: filesystem (CFIle), registry access (CRegKey), dialogs (FileDialog)

  • Multithreading (CWinThread, CCriticalSection)

  • … and many others

In 1992, Microsoft introduced the MFC library in its Microsoft C/C++ 7.0 release, which was the first to add support for the C++ programming language, not just the C.

3. Journal for developers: Microsoft Systems Journal (MSJ)

In 1986, five years after the release of MS-DOS, and a year after the release of Windows 1.0, Microsoft started a publication for programmers working with Microsoft technologies. It was called Microsoft Systems Journal, and was released twice per year. Here’s how the first edition kicked off:

“This first issue of the Microsoft Systems Journal is devoted in its entirety to Microsoft Windows operating environment, Microsoft's most important system software product since MS-DOS®,

Windows has encountered remarkable success both as a retail product and as a development environment since its release last November. While much of the product's initial popularity can be attributed to its flexibility as a "switcher" for traditional applications and the included sample applications, its ultimate success will depend on the acceptance of native Windows applications. (...)

In future issues we will focus on other areas of interest to developers, including C programming, device drivers, extended and expanded memory, debuggers, code portability, and the inside view of MS-DOS and Microsoft XENIX®. We will tackle the subjects that interest serious developers most—from user interface design to guidelines for writing terminate-andstay-resident programs. Our aim is to confront the real issues confronting serious developers.

Write to Us We invite you to write to us, to subscribe, and equally important, to tell us what you think we should include in the Journal. Beginning in January 1987, our issues will expand to full size, more than twice the length of this special issue. We hope the Journal will become one of the most important publications you receive.”

The publication was an experiment, and the first edition covered Microsoft’s latest innovations like the Advanced Router Terminal, contained detailed tutorials with diagrams and screenshots like how to transfer complex between two Windows applications using a service called Windows Dynamic Data Exchange), and a feature called “Ask Dr. Bob” where Dr Bob answered readers’ trickiest questions. Here’s one response which could have been written today for Windows 11:

Q: “Dear Dr. Bob – what happens when I run the same program simultaneously in Microsoft Windows? Are the two versions entirely distinct or do they share code and data? — Unclear

A: “Dear Unclear,

When an application is loaded more than once, the loadings of the application are referred to as different "instances." Generally, multiple instances of the same application share the same code segment but have different data segments. Windows applications also share resources such as menus, icons, cursors, and bitmaps, since such resources are read-only data.

During initialization, an application can determine whether or not it is the first instance of that application. If it is not the first instance, it can retrieve some data that must be shared from the previous instance.”

The magazine was a success and went to publish bimonthly from 1987, and then monthly in 1992. Each issue included deep dives into various APIs, and Microsoft regularly shared news of new operating systems and APIs for developers.

Front pages of the Microsoft Developer Journal magazine. Source: Jacob Filipp

In 2000, MSJ was merged with MSDN magazine, and eventually ceased publication in 2019. I was surprised Microsoft invested time and effort to write, print and distribute a magazine that likely didn’t directly result in more revenue. If anything, publishing a print magazine is a hassle which might have lost Microsoft money, based on the economics of magazine publishing. However, it shows the company appreciated that a healthy developer ecosystem requires information sources for people to learn how to build things more efficiently, and what tools there are available. Today, this happens online, but the internet was a smaller place back then, so Microsoft filled an information void with the publication.

It’s worth noting Microsoft’s approach and to consider how small things like this publication helped build a loyal developer base. For context, Microsoft was a mid-sized, fast-growing company with around 1,800 employees and revenues of $385M ($1.1B today) when it launched this magazine.

4. Visual C++, a Development System for Windows

In 1993, Microsoft released its new product, Visual C++, which was a continuation of Microsoft C/C++ 7.0. It was the first time the “Visual” brand was used, and the biggest sales point was not the C or C++ language, but that Microsoft added the MSDN 2.0 library, which made developing Windows applications a lot easier. Visual C++ was advertised as “The development system for Windows” and included a software development kid (SDK) for Windows 3.1:

This post is for paid subscribers

Already a paid subscriber? Sign in
© 2026 Gergely Orosz · Privacy ∙ Terms ∙ Collection notice
Start your SubstackGet the app
Substack is the home for great culture