This white paper contains a summary of the history of computing which will help you better understand the future evolution through knowledge of the past.
Further to the short history on computing, the first computer goes back to the time of World War II. In order to easily decipher coded German messages, Alan Turing, a mathematical genius, invented a programmable mechanical instrument that could be used to analyze and decode messages.
Since that time, microcomputers, programming languages and methods have continued to evolve. This is partly due to the constant research conducted in the field, but also to the increasing complexity of requirements and demands in the marketplace.
The following pages contain a summary of the history of computing which will help you better understand the future evolution through knowledge of the past.
Since the introduction of transistors, which are the foundation of microprocessors and computers, programmers have been tweaking tools to more easily describe the procedures to be executed. Transistors only deal with 0s and 1s. This obviously makes it very unpractical to use this language with human beings. Furthermore, microprocessors contain basic instructions designated as assembly language. This language contains basic functions such as the following:
This language quickly becomes too unwieldy for describing large applications. This is why more evolved languages have since been invented:
With the launch of microcomputers in the 1970s, particularly Apple II+ and more specifically, in 1981, the Personal Computer (PC) by IBM, computing became accessible to everybody. A wide range of computer environments was put on the market to allow the general public to develop applications. Each of these computers was shipped with a variant of Basic—GW-Basic was available on all IBM PCs and Quick Basic was published by Microsoft in 1985.
A very popular language at the time was Turbo Pascal. Initially developed in a development environment, it was easy to use and made it possible to create relatively complex applications. It was later acquired by Borland and was renamed Borland Pascal. Actually, the latest incarnation in use is known as Borland Delphi.
Since application development is not for everyone, certain applications were made available at the
end of the 1970s and during the 1980s to make this work easier. This was the age of 3rd
and 4th generation databases. Oracle was one of these popular products, as was DB2 from
IBM. But the most successful during that time was without a doubt dBASE II. With the advent of micro
computing and the availability of this tool, application development was now available to everyone,
particularly with the arrival of FoxPro in 1984 and even more so with Clipper in 1985. Clipper made
it possible to compile databases into executable programs to make them easier to distribute. The
result was that dBase slowly disappeared as a development tool despite the fact that two subsequent
versions, dBase III and dBase IV, were released. It was replaced by Clipper and then FoxPro which
had been acquired by Microsoft.
At the same time, Microsoft launched a new database management
application named Access which was amazingly successful with the general public.
C language is a special case. Initially developed to facilitate the development of tools for UNIX operating systems, it was adopted by the computing community as a preferred language because of its adaptability. Its great flexibility made it a language of choice for the development of highly varied applications. And since it was available for all operating systems (DOS, Unix, Windows and Mac), it was possible to create applications that could be reused.
The specificity of the languages mentioned above is that they are considered procedural, meaning that the programmer must specify line by line how the program should react to each event.
In 1984, the launch of the new Apple environment, Macintosh, followed closely by the Microsoft’s Windows in 1985, changed all that. Procedural languages are not ideal for this type of environment. Because applications must react to user commands that could be from many sources (mouse, keyboard, menu, etc.), applications had to be developed to manage events rather than a series of predefined procedures. That was when object-oriented programming principles, first used in laboratories and research centers, became the dominant development method. Many languages evolved or were invented based on graphic environments and to manage events. Basic became Visual Basic at Microsoft, whereas C++ language, based on C language, was developed by Bjarne Stroustrup, a researcher at the AT&T Bell laboratory. His goal was to invent a language that had all of the required functions for object-oriented programming.
Today, the driving force behind development tools is the Internet. When we talk about the Internet, we don’t necessarily think about the development of applications that run with a browser. What we really mean is that the application can run elsewhere than in the user’s local environment, either in whole or in part. New tools appeared on the market for developing applications that take advantage of the strengths of the Internet.
New tools and programming languages were introduced in the 1990s designed specifically for object-oriented or event-based programming and they use distributed environments. The 3-tier development concept was introduced by segregating the user interface, business rules and data storage in applications. This model is an advanced version of the client/server development module, that was dominant during the 80s and 90s when the local application contained the user interface and business rules. Databases, which are usually installed on a network server, managed the data.
Notice the evolution in development approaches:
The client/server 1 and 2 architecture is an evolved approach using improved databases. However it is a slow transition from the client/server architecture technology to 3-tier architecture. Notice also that we use n-tier rather than 3-tier. They are the same, but the latter expression indicates an even broader distribution of various components in an application. For example, the tables in a database might be managed on a server while the data is on another server. In the same way, a user interface could be managed on the user’s computer, while the display rules are managed on an application server. You could have a situation that resembles:
First launched in 1998, Visual Studio is a complete development environment that provides access to various tools and programming languages, such as Visual Basic, Visual C++, Visual FoxPro and others. At this time, it is one of the most popular development environments with programmers, particularly Visual Basic and Visual C++.
Windev and Delphi are a mixture of database and development environments. Windev is a French product used widely in Europe, but with a more limited market penetration in America. For its part, Delphi is an incarnation of Turbo Pascal.
BBX is still used by many applications developed during the 1980s. To benefit from Windows
environments, many BBX code interpreters appeared on the market. This includes Providex and Visual
Pro/5.
Cobol is also still widely used because of the many programs written with this language
in the past. While few new applications are created with this language, many continue to run on
microcomputers with an interpreter, such as AcuCobol.
Languages and development environments are constantly evolving in an attempt to make the programmer’s job of using emerging technologies easier, particularly Web technologies.
Java, released by Sun Microsystems’ laboratories in the early 1990s, primarily designed to have a universal language that can run on multiple computer platforms, was finally adopted as the basic language for most browsers. Since it was initially conceived to be independent from operating systems, it can easily be adapted to Windows, UNIX, Macintosh and other Web browsers. This should help it be adopted quickly by programmers as a preferred tool for Web applications. Designed primarily for the development of user interfaces, it is not well suited for developing management applications. This is a good reason for separating business rules from the user interface.
Flash, launched by Macromedia in 1996 and now supported by Adobe, was originally designed for developing graphic animations. Several versions later, it is now possible to develop full applications that run in Web mode in a browser with this environment.
With the division of applications into various components, the exchange of information between each portion must be managed and this must be done efficiently. This explains the development of XML (eXtensible Markup Language) data formats. The first version was released in 1998 and was quickly adopted as the standard for exchanging information between applications.
To exploit Windows environments more easily, Microsoft is also developing its Visual Studio development environment, the first incarnation of which dates back to 1998, including various programming languages, such as Visual Basic and Visual C++. In 2002, Microsoft released the first version, primarily for the development of Web applications, followed several years later with an integrated development environment, Visual Studio 2005, often named .Net (pronounced dot net). In 2008, Visual Studio .net was completely rewritten with a new language, C# (C-sharp), a new version of XML named XAML (pronounced Zammel), WCF (Windows Communication Foundation), and WPF (Windows Presentation Foundation and Silverlight).
XAML eXtensible Application Markup Language is an XML development that also allows applications to use the information exchange mode, but within the applications. XAML is the foundation for other technologies, such as WCF and WPF.
Silverlight is an interesting case. As an integral part of WPF, Microsoft has created a distinct, multi-platform product, with the stated intent of competing with and even dethroning the current leader, Flash. Available for less than a year, this product is quickly evolving, but its general adoption remains uncertain.
We notice that, like with other fields, technologies are evolving to continue supporting the development of applications whose complexities always increase. But developers must also be allowed to adapt themselves to changing requirements of computer environments and users, as well as new development methods from software engineering laboratories.
What does the future hold for us? This is still difficult to determine. However, one thing is certain—increasingly, users not only want to access their information from wherever they are, but they also want to be able to enter this information and share it with their colleagues, family and others. Furthermore, this must be possible using mobile communication methods, such as BlackBerry, iPhone, Treo and others. This is called decentralized computing in terms of usage, but centralized as it concerns data directories.
Naturally, development tools are slowly adapting to these requirements, allowing development teams to provide applications that reflect the changing needs of society.
Maestro* offers one-click access to Microsoft Excel virtually everywhere in the application.