It’s About Trust!

"The List"

Language Spec     


Exec Bios

Google VFred

Classic VB


Next Generation Windows Services,
Visual Basic 7 Language Specification

Below is the original Introduction to the first known attempt by Microsoft to develop a language specification for Visual Basic. This has been excerpted from the NGWS beta 1 documentation (cpvb.chm, 6/22/00). Somewhere between the drafting of this specification and the design of the product, something went seriously wrong.

Only one of these four sections survived on Microsoft's website to date. Whoops, section 1.3 - Statement of principles - has now (mid-2004) been removed from as well. Figures, huh?

1.1 What is Visual Basic 7.0?

Visual Basic 7.0 is the next step in the evolution of the BASIC language at Microsoft. It is designed to provide the same ease of use for Web programming using the NGWS Frameworks and Runtime that earlier versions of Visual Basic provided for Windows programming.

This document describes the Visual Basic 7.0 language. It is meant to be a complete language description, not a language tutorial or a user's reference manual.

1.2 The purpose of Visual Basic 7.0

For nearly a decade, the Visual Basic language has been a cornerstone of the Windows platform. It is easy to underestimate the impact that Visual Basic 1.0 had on the Windows market – for the first time, writing Windows applications was a simple and relatively painless task, something graspable by a wide range of programmers. Similarly, the introduction of Visual Basic 4.0 was important for helping to establish Automation as the standard object architecture of the Windows platform.

Microsoft is in the middle of a shift, however, from providing an operating system to providing Web Services. This shift recognizes the reality that applications are beginning to migrate from a standalone executable sitting on a user's hard drive to a distributed application delivered by a Web server across the Internet. A key part of Microsoft's thrust into this new Web Services space is the NGWS Frameworks and Runtime. The NGWS Frameworks and Runtime is designed from the ground up to allow developers to easily write and deploy complex Web applications.

Visual Basic 7.0 is designed to provide the same ease of use for building applications for the NGWS Frameworks and Runtime that earlier versions of Visual Basic provided for developing on the Windows platform.

1.3 Statement of principles

The design of Visual Basic 7.0 encompasses the following principles, in relative order of importance:

  • Visual Basic 7.0 is recognizable as the descendent of previous versions of Visual Basic, and an existing Visual Basic programmer will feel an immediate familiarity with the language.
  • Visual Basic 7.0 syntax and semantics are simple, straightforward and easy to understand. The language avoids features that cause unexpected behavior.
  • Visual Basic 7.0 allows developers to take advantage of the major features of the NGWS Frameworks and Runtime and is consistent with the its conventions.
  • Visual Basic 7.0 is reasonably "upgradeable" from previous versions of Visual Basic. That is, it is possible in a significant number of cases to take existing Visual Basic code and, with a well-defined set of transformations, produce a working Visual Basic 7.0 program.
  • Because the NGWS Runtime is explicitly designed to support multiple computer languages, Visual Basic 7.0 is designed to work well in a multi-language environment.
  • Visual Basic 7.0 is as compatible with previous versions of Visual Basic as possible. Whenever practical, Visual Basic 7.0 has the same syntax, the same semantics and the same runtime behavior as its predecessors.

These principles complement the original design principles of Visual Basic. For the purpose of completeness those principles were:

  • Visual Basic is designed to be as safe a language to write in as possible. In general, Visual Basic tries to balance reliability, ease of use, and efficiency in the definition of the language.
  • Visual Basic is designed to be extremely approachable. A reasonable understanding of the language should be attainable by a large portion of computer users and ease of use is significant.
  • Visual Basic is designed to enable rapid program development, while not compromising reliability.
  • Visual Basic code is predictable and efficient.
  • Visual Basic may be used either as a strongly typed language, or as a loosely typed language. This enables rapid development in the latter case, better correctness of user code in the former.

1.4 Guidelines for language changes

In order to move the Visual Basic language forward, it is necessary to introduce incompatibilities between the Visual Basic 7.0 language and previous versions of Visual Basic. Because of the potential impact of language incompatibilities on users, it is done so only when there is a clear justification. In general, there are only two situations that are considered serious enough to justify an incompatibility:

  • A feature has caused significant confusion or difficultly for Visual Basic programmers, based on the feedback that the Visual Basic team has collected from end users.
  • A feature is fundamentally in conflict with the design of the NGWS Frameworks and Runtime.

When designing a feature that is incompatible with previous versions, the ability to upgrade code from previous versions is taken into consideration, but is not an absolute requirement.

Source: NGWS SDK Documentation, cpvb.chm, 22 June 2000