Contents of the FUTURE.TXT file
Microsoft Corporation, October 1988
The languages marketplace has changed dramatically since Microsoft
produced the first BASIC for the MITS ALTAIR in 1975. This paper
discusses the directions Microsoft Corporation is taking its language
family. This is based on one guiding principle: give our customers the
best tools possible to meet their needs.
Languages: The Foundation of Microsoft
Languages are the foundation of Microsoft Corporation. They not only
represent the start of the company with the first BASIC interpreter
for the first commercially available PC, but they are also the tools
we use today to write the software that makes us the leading PC
software developer in the world.
The languages marketplace has changed dramatically since 1975, when
Bill Gates wrote the first BASIC interpreter for the MITS ALTAIR. In
the early days of microcomputing, programmers were a select few who
understood the inner workings of the machine they were programming and
were comfortable writing lines of code that few could even pronounce.
Today there are still professional programmers working at the
assembly-language level, but the vast majority are working in higher-
level languages such as BASIC, C or COBOL. However, this is not where
the exciting things are happening in the languages marketplace. The
excitement is with the huge numbers of doctors, lawyers, stock
brokers, real estate agents and other professionals entering the
programming ranks for the first time.
On a platform (the IBM(R) PC, PS/2(R) and compatibles) that has
literally tens of thousands of applications available, why would
people choose to write their own applications? The answer lies in the
great tools that are now available to help PC users solve their
computing problems. Let's take a look at this evolution in the
languages marketplace, and at the challenge we face to create the best
tools possible to meet user needs.
The Evolution of the Marketplace
Since the early days of programming for microcomputers, the languages
marketplace has evolved in two distinct directions -- one for
professional programmers and another for those who write software as a
means of better performing their job or enhancing their knowledge of
The "Quick" programmers are the fastest-growing and most exciting
market. These are non-professional programmers who use a programming
language as a tool to better accomplish their job or better understand
their computer system. Not surprisingly, they have a very different
profile than professional programmers. Their needs are different, and
so are the tools that best fulfill these needs.
This group of users is interesting because of its large size. Because
BASIC is easy to learn with English-like syntax, we have found that a
significant number of people in this category move to Microsoft(R)
QuickBASIC. In studying customers who had recently purchased Microsoft
QuickBASIC, we uncovered some interesting data.
First of all, our research showed that these people represent many
walks of life, from consultants to DP managers, from doctors to
lawyers. The one thing they have in common is their serious use of the
PC as a tool in their job. As you can see below, they do not have
CPU Usage: 54 percent have 80286- or 80386-based systems
RAM: 96 percent have 640K or more
Hard Disk: 96 percent have at least 10MB of hard disk storage
Mouse: 61 percent use a mouse pointing device
Next, their motivation to learn how to program is simple: They have a
problem and need a solution. For many, the first solution is to
acquire an application package such as a spreadsheet or database.
However, a large number of them are unsatisfied with the solution the
application is providing or find the capabilities of the application
package limited. Thus, they decide to develop their own solution.
The problems these users are trying to solve are as wide-ranging as
the possible uses of the PC itself:
Custom report generation 72 percent
Custom database work 63 percent
Graphics (except presentation graphics) 53 percent
Statistical analysis of data
from spreadsheets and databases 52 percent
Accounting systems 45 percent
Software development tools 40 percent
Communications 39 percent
Real-time process control 37 percent
Presentation graphics 26 percent
Games/Entertainment 25 percent
Interrupt processing 24 percent
This information gave us an idea of what problems they were trying to
solve. The next question was, "How can we design a product that will
satisfy their needs?" Throughout this past spring and summer, we held
focus groups and did usability studies to understand the obstacles to
learning to program that potential customers perceived. The
overwhelming answer to the question "Why haven't you tried programming
up until now?" was that they perceived the learning curve to be too
long and steep with today's tools. That is, the investment they had to
make in order to become productive was too large.
The professional programmer today is competing in a fiercely
competitive marketplace. For both those writing software for
commercial distribution and those writing within a corporate setting,
providing the fastest, smallest and most useful application requires
tools that offer the complete development solution.
The needs of the professional language user vary greatly from those of
the nonprofessional. About 75 percent of the C 5.x customers are
professional programmers, earning their primary income writing
software with Microsoft C 5.x. Here are some of the things they are
using C 5.x to write:
Software development tools 59 percent
Communications 56 percent
Custom report generation 55 percent
Custom database work 55 percent
Interrupt processing 54 percent
Device drivers 40 percent
Graphics (except presentation graphics) 36 percent
Statistical analysis of data
from spreadsheets and databases 32 percent
Embedded systems (ROMable code) 30 percent
Accounting systems 24 percent
Real-time process control 39 percent
Presentation Graphics 20 percent
These professional programmers rate attributes such as performance,
reliability and manufacturer reputation at the top of their list of
purchase criteria. They are also on the leading edge of technology --
41 percent are writing applications for Microsoft Windows, and many
have begun or are planning to develop applications for OS/2 systems.
The challenge faced by a programming language vendor is how to create
the best possible tool to meet the needs of these two distinct sets of
users. At Microsoft, we feel that it is impossible to create a single
product that meets the needs of both the professional and the novice
users. Their needs are different, their expectations are different,
and most of all, the ways they use the products are different.
Microsoft has designed two very distinct product families to meet the
needs of these two segments. For each, the underlying mission is to
provide the best possible tool for the customer.
Ease of use, for example, is important for both segments, but where a
simple, fixed environment with a simple editor and debugger can
suffice for beginning users, a much more sophisticated and flexible
programming environment is required for developers using a variety of
tools, highly configured (personalized) editors and powerful debuggers
to write huge applications to run on several platforms (MS-DOS(R),
Microsoft Windows, OS/2). These differences require a fundamentally
different design philosophy for the tools themselves that weighs such
things as compilation speed vs. code execution speed or amount of
memory used vs. functionality.
With the Quick languages, getting the user up the learning curve as
fast as possible is our guiding principle -- which we have termed
"ease of mastery." Microsoft QuickBASIC 4.5 is our flagship product in
this strategy, with other Quick languages to follow shortly. Microsoft
QuickBASIC 4.0 brought the ease and interactiveness of an interpreter
together with the most modern, structured BASIC ever produced.
In Microsoft QuickBASIC 4.5 we've added several new features,
specifically designed to make the user as productive as possible in
the shortest amount of time. QB Advisor represents the state of the
art in hypertext-based, on-line help technology. It provides instant
access to the BASIC language, examples, useful charts and even the
usage characteristics of the variables in the user's program. No
matter where users are -- on a menu command, a BASIC keyword, an error
message or a variable -- all they have to do is press the key,
and QB Advisor gives information specifically relating to the context.
Since one of the most productive ways to learn is by example, the QB
Advisor has at least one (and most times two) examples for every
entry. The examples can be copied out of the help database right into
users' programs for immediate testing or experimentation.
QB Express is a unique, computer-based training (CBT) session that
teaches users the fundamentals of the QB environment. Developed by the
same team that developed the award-winning Microsoft Learning DOS, QB
Express represents a new direction for teaching programming.
Additionally, Microsoft QuickBASIC 4.5 includes Easy Menus. Microsoft
QuickBASIC 4.0 brought a great deal of power to the programming
environment, and with that power a certain level of complexity.
However, through our research, we found that in order to learn
Microsoft QuickBASIC and become productive, only a subset of the full
command set was necessary. Easy Menus provide a smaller, easier-to-
understand command set for the user new to Microsoft QuickBASIC.
In contrast to the learning tools designed for the novice programmer,
Microsoft professional tools will continue to evolve as the state of
the art, providing the complete development solution for the
programmer whose livelihood depends on the tools he uses.
Specifically, the evolution will focus on three areas:
Evolving core technology. Microsoft is a company built on technology.
Whether operating systems, languages or applications, the technology
underlying the product must be state-of-the-art. For languages, this
will include technology such as code generators, debuggers and other
tools; environments to support workgroup software development; and
object-oriented and visual programming for graphical user interfaces
such as Microsoft Windows and Presentation Manager.
Increasing programmer productivity. Professional programmers have had
to settle for standalone tools with little or no integration. A truly
advanced, integrated development environment will be flexible enough
to handle the wide range of tools that professionals will want to
install and powerful enough to handle the huge applications being
Early support of new operating systems and hardware. Professional
developers demand tools powerful enough to exploit new hardware and
systems software platforms. This support allows the professional
developer to move quickly in the competitive software-development
Meeting the Challenge
Microsoft designs each Quick language and professional language with
one goal in mind: To create the best tool possible for the customer
who will use it. For the professional languages, this means providing
the complete development solution -- tools that offer the power and
performance required by the software developer earning a living with
those tools. For the Quick languages, it means breaking new ground in
ease of mastery, shortening the learning curve and making the user
productive as quickly as possible. With revolutionary technology such
as the QB Advisor, QB Express and Easy Menus, products such as
Microsoft QuickBASIC 4.5 represent the future of tools designed for
the millions of PC users without Computer Science degrees who want to
learn to program.
# # #
Microsoft, MS-DOS and the Microsoft logo are registered trademarks of
IBM and PS/2 are registered trademarks of International Business