1991: Java
Designed by research staff at Sun Microsystems, Java is a simple, portable
object-oriented language. It first appeared in their short-lived InteractiveTV project which was was
eventually given up for the web oriented version of Java we see today. The feel of the Java language
is fairly similar to that of C++, but it also borrows ideas from Modula-3, Mesa, and Objective-C.
According to its designers, Java was intended to be object-oriented, robust, secure, architecture
neutral, portable, high-performance, threaded, and dynamic. Certainly Java succeeds at being
object-oriented and threaded, it is fairly architecture-neutral and quite portable. Its performance is
currently poor, but new JVM implementations that employ just-in-time compilation are helping to
improve Java's speed. Java is fairly dynamic, but not as much so as other interpreted languages like
LISP or Perl. Java security is better than many other embeddable languages, but still has significant
problems to overcome, both in its security model and in various implementations.
The fundamental structural component of a Java program is the class. All data and methods in Java are
associated with some class, there is no 'global' data or functions as in C++. Classes can be members
of packages; package and class membership help determine scope and visibility of data and methods.
Java does not include features that its designers felt would compromise the similicity or safety of
the language, so Java has no true pointers, no true multiple inheritance, no operator overloading, and
no macro preprocessor. The lack of multiple inheritance could have been a serious shortcoming, but
Java does support the definition and interitance of multiple stateless "interfaces", which serve for
most areas where multiple inheritance might be desired. Java also has no facility for generic
functions, but since the language imposes a rooted class hierarchy (all object classes inherit from
the root class 'Object'), any need for generics is greatly reduced.
The feature set of Java is fairly broad: it has inheritance, strong type checking, modularity
(packages), exception handling, polymorphism, concurrency, dynamic loading of libraries, arrays,
string handling, garbage collection, and a pretty extensive standard library. Java 1.1 added powerful
reflection and object class manipulation capabilities, and uses these to support object
serialization I/O. The newest version of the language, Java 1.3 (released in 2000), includes nested
classes, persistence, and reflection as well as many additional standard libraries.
Initiatives are underway for Java microprocessors, a Java OS, Java re-use framework (Beans), and a
ISO Java standard.
Click to view a sample Java program
1991: Python
Originally conceived, by Guido Rossum, to be an extensible scripting language for
the Ameoba operating system, Python would be made into a portable language of its own very early in
its development.
Python is an interpreted, object-oriented language. It is intended to be highly effective, easy to use,
and extensible. The syntax of Python is very simple and statement-oriented. Block structure is
specified with indentation. Python supports a good set of primitive and composite data types:
integers, floats, complex numbers, strings, lists, and associative arrays (dictionaries). Data values
are typed, but strong type checking is not enforced. Like most scripting interpreters, Python does
have the ability to execute a string as code. Python supports a conventional set of flow-control
constructs: if-then, while and for loops. hon also has exceptional-handling constructs similar to
those in Modula-3. Python supports subroutines, independent modules, and object classes.
It is also supported by a feature-rich standard library; which includes extensive string manipulation,
I/O, parsing, date handling, low-level networking services, high-level protocol and data format
handling, image I/O, and a variety of operating system-specific services.
Considered a good language to use for certain kinds of web programming, the standard library of Python
supports HTTP and CGI services, as well as a Windows-specific library support ActiveX scripting (so
that you can use powerful Python for active server pages instead of the intentionally weak VBScript).
Python can be extended by adding C/C libraries, and it can also be embedded in an application to serve
as its extension language.
There was originally only one Python implementation, an interpreter which ran on a wide variety of
Unix platforms as well as Windows and Macintosh. Later, an implementation was created that compiled
Python to Java bytecodes (jPython) and there is also one that targets the Microsoft C# environment.
The newest versions of Python include v2.0 which was released in 2000.
Click to view a sample Python program
1991: Visual Basic
As a language, Visual Basic has evolved enormously since its commercial
introduction in 1991 by Microsoft. Visual Basic is an advanced structured dialect of Basic that is
intended for application development.
The "Visual" in the name Visual Basic does not really refer to the language, but to the development
environment. The VB integrated development environment that Microsoft distributes has extensive
facilities for on-screen design of graphical user interfaces: dialog boxes, window interfaces, menus,
etc. It also provides a rich but complicated interface for code management and debugging. GUI programs
are easy to write in Visual Basic, and the development environment provides copious support for coding
the necessary event handling subroutines.
The syntax of Visual Basic is similar to that of other modern Basic dialects, but with many additional
features. The following primitive data types are supported: integers, reals, strings, booleans,
currency, dates, and object references. Variables may be declared, but need not be. Type checking can
be performed, but is enforced only for declared variables and parameters. Composite data types include
arrays and user-defined records. Control structures include various conditional and iteration constructs, and rudimentary error handling mechanisms. Memory management in Basic is automatic.
Visual Basic is nominally an interpreted language, but newer implementations include native code
compilers. During execution, Visual Basic programs are normally supported by a run-time library.
The popularity of Visual Basic is derived partly from its extensibility. New components, especially
GUI elements, can be added to the language run-time system and transparently used by application
developers. There is a large community of programmers who design and distribute
"Visual Basic Controls" (VBXs) and "ActiveX Controls" for use in Visual Basic.
Click to view a sample Visual Basic program
1992: Dylan
Developed by Apple Computer in 1992 by their advanced technology east lab, Dylan
(DYnamic LANguage) is a dynamic object-oriented language with both procedural and functional features, intended for application
development and system programming.
The language syntax for Dylan is original, but structurally resembles Scheme. The language offers
inheritance, type-safety, polymorphism, garbage collection, macros, modularity (named modules),
reflections, error handling, multi-methods, and extensibility. Data types defined by the language
include a variety of numbers, strings, symbols, various collections such as sequences, arrays,
vectors, and hash tables.
In Dylan, as in Smalltalk, everything is an object. Even numbers are organized into a class hierarchy.
Functions are also objects, and support a large number of interesting mechanisms including composition,
currying, mapping, and reduction. Classes are also objects, with support for dynamic class definition
and other advanced OOP techniques. Dylan facilities for GUI and database programming have been
implemented, and most implementations of the language permit interfacing with external C/C++
libraries.
It was originally intended for the Macintosh, but has been ported to many other computers.
Implementations of Dylan are available for most platforms including Unix, Macintosh, and Windows.
Dylan has been implemented as an interpreter, as a C front-end, and as a native compiler.
Click to view a sample Dylan program
1993: Ruby
Based on earlier less known programming languages, Ruby was first a teaching
language created in the late 1960's based on Markov processes. It eventually developed into a
hardware specification language based on higher-order functions during the mid 1980's. The Ruby OOP
language is the 3rd programming language to bear that name.
Ruby is an interpreted scripting language, fully object-oriented and designed for easy extensibility.
The syntax of Ruby is simple but bears a strong resemblance to Perl. All data types in Ruby are object
classes, like in Smalltalk. Pre-defined data types include integer and float numeric types, strings,
arrays and hash tables, and structures. Control constructs in Ruby include a wide variety of
conditionals and several kinds of loops, along with several controls structure variations like break
and continue. Ruby does not have declarations; variables are weakly typed, and their scope is denoted
by prefixes. It supports many important OO features, including classes with inheritance, class
methods, and even closures. Ruby also supports exceptions with functionality similar to that of Java.
However, it does not seem to support reflection or threading.
While Ruby resembles Perl in many respects, it differs substantially in its representation of data.
Perl treats numeric data, strings, lists, and hashes as built-in types, while Ruby implements
everything as objects. Another interesting aspect of Ruby is its notion of Modules. A class can
implement any number of modules; they are similar to Java interfaces and to Flavors Lisp mix-ins.
There are many extension libraries and toolkits available for Ruby, including database, network, GUI,
IO libraries.
The current version of Ruby is 1.6.1 (released in 2000), and is available for Linux and other Unix
systems, Windows, DOS, and some other platforms.
Click to view a sample Ruby program
1994: JavaScript
Invented by Netscape Communications for adding dynamic behavior to web pages,
JavaScript was originally called 'LiveScript'. Sun Microsystems, developer of Java, took an interest
in this powerful script and, along with Netscape, made some adjustments to re-introduce the script
under the new name of JavaScript. Unlike Java, which can be used to develop entirely standalone
applications, JavaScript works primarily with Web pages.
JavaScript is a loosely typed scripting language with object-oriented and block-structuring features.
The syntax of JavaScript is similar to that of C or Java, but simpler and not as rich. Primitive data
types include integers, reals, strings, and a associative arrays. Javascript is loosely typed, any
variable can contain data of any type, and conversion is mostly automatic. The language definition
includes extensive facilities for controlling and manipulating parts of web pages, especially HTML
forms.
Each version of Netscape Navigator has brought a new version of JavaScript, and later versions also
include a complicated security model for restricting the hostile capabilities of scripts embedded in
web pages. Microsoft web browser also support Javascript, but under the name "JScript".
Click to view a sample Java program
1995: VBScript
Although VBScript was first developed in 1995, the first release of VBScript (v2.0)
was part of Microsoft's Internet Explorer 3.0 which came out in 1997. VBScript has no
language-defined I/O facilities, so that any I/O that it supports must be provided by object classes
supplied from the controlling application environment. In a web browser client, these objects are not
available, but in a web server environment they are.
VBScript (Visual Basic Scripting Edition) is a subset dialect of Visual Basic. It is an interpreted,
procedural language intended for creating application extension scripts and for adding interactivity
to web pages. VBScript's syntax resembles that of Visual Basic in that statements are bounded by
end-of-line, and normal Basic keywords are used for control structures and code modularity. It
supports a modest set of data types: various numeric types, strings, dates, booleans, arrays, and
object references. Variables in VBScript are typed, however, they are not stongly type enforced by the
interpreter. VBScript supports subroutines and functions, and can interact with objects provided by
its environment (usually a scriptable application). It does not support the definition of new object
classes, nor does it support overloading or polymorphism. The language has fairly good support for
handling time, dates, and strings. The newest version of VBScript also supports a dictionary object,
an associative array for storing string data.
VBScript is most commonly employed in web browsers and web servers from Microsoft. Under the 32-bit
Windows environment, any application can employ VBScript if it is installed; Microsoft intends
VBScript to be the baseline or typical scripting language for simple OLE applications.
Click to view a sample VBScript program
| History Index | Back: 1951-1970 | Next: 1991-2001 |