By: David Intersimone
Abstract: Microsoft recently introduced a new language called C#. More languages have appeared in recent years. Do we really need another programming language?
Wednesday, August 9, 2000
Scotts Valley, CA
On June 26, 2000 Microsoft introduced the language reference for a new
"See Sharp"). The chief designer of C# is none other than our dear
Distinguished Engineer in the Developer Division at
Microsoft. C# combines features from C, C++, Visual Basic, Delphi, Java,
and adds a few extra green crystals. You might be asking yourself, "Does the world need
another programming language?"
I'm reminded of a television commercial about Prunes. The commercial
asked the question, are three enough? are six too many? You might
ask the same question about programming languages. How many do we
need? Do we have enough languages? Should developers create new
languages? Should programmers add new language extensions to existing languages?
My answers to all of the questions are: not sure, not sure, lots, no, yes, and
Programming languages (and the compilers, debuggers, and other tools) help
developers build the software that takes advantage of business opportunities and solve
real problems. Years ago a
new programming language, PL/I (Programming Language One), from IBM combined the
best features of FORTRAN, COBOL, ALGOL 60, LISP, assembly language, and current programming
language research. PL/I was supposed to be the perfect language for both
business and scientific programming. It was sometimes called the
"kitchen sink" of languages, it had everything. Yet, we have
seen many new programming languages appear during the short history of our
New programming languages, and extensions to existing programming languages
keep our craft, our industry, and our imaginations alive. Imagine if we
were still programming everything in assembly language (I know, some of you
still do). Imagine if we were still using Fortran for systems
programming. What if we were building web applications and web pages with
COBOL and COBOLscript? Would the developer's world be a better
place? Would we be more productive? Would we be able to go home at
5pm every night? What would we do without types, strings, structures,
objects, packages, loops, runtime libraries, garbage collection, pointers,
functions, parameters, dynamic arrays, recursion, exceptions, inheritance,
interfaces, templates, and the rest?
As a language junkie, I have watched the arrival of a new programming
language with the enthusiasm of a child tasting their first bowl of ice
cream. I have stayed up late at night reading through the language
specification and programmers reference manuals. I have read all of the
magazine articles, books, and newsgroups for information about new
languages. I have waited, with anticipation, for tools and industry
infrastructure to support the new language. By now you must know that I am
really crazy. But I can't help myself. I love being a
programmer. Having lots of programming languages in my bag of tricks is
just one part of being a good programmer.
I met Microsoft's announcement of C# with excitement. I also enjoyed
the C# announcement on a personal level because Anders was a big part of the
language. Anders will always be a member of the extended Borland family. C# has many
influences from Anders' work at Borland on Turbo Pascal and Delphi. My
congratulations go out to Anders and his team. I look forward to reading
more information about C# in the future.
Author's Note: This article does not reflect any forward looking plans or statements about Borland products, future support for any languages, platforms, etc.
Many popular programming languages have
appeared over the years. Of course the word "popular" is a very
subjective term. What defines the popularity of a programming language? Is
this like a beauty contest, a popularity contest? I won't try to come up with a
criteria for selection to this list. I've based my choices on 30+ years of
computing experience, anecdotal evidence of language use, language listings on
the internet, in magazines and books, and feedback from my peers. You can
also add your comments to the thread associated with this article. I've
listed each language with its year of introduction and notable features.
My popular programming language list is not a complete listing of languages - compiled, interpreted, scripted, or otherwise. I will leave complete and updated language lists to others on the internet. I have provided some links to other sources of langugage histories and lists. I will consider updating this article at a moments notice based on feedback, clearer thinking, and continued reflection. With new languages being created all the time, this article represents a moment in time.
There are many other notable languages. These languages are covered on
numerous web sites. Besides the languages listed above, it is worth noting
a few of the thousands of programming languages that have been created over the
years that were notable in their own way. I could have listed a few more
here as well. I may make further additions in the future.
PlanKalKuel (1945) by Konrad Zuse
- first programming
language - one data type-bool (1 bit). Objects are built up from arrays of
Short Code (1949) by John
W. Mauchly - first programming language used on an electronic device.
APL "A Programming Language" (1962) by Kenneth E. Iverson. The APL language includes a set of symbols (letters, numbers, punctuation,
algebra, and special shapes), a very simple set of rules, and a large function library. Data can be either numeric or text.
(1964) by David J. Farber, Ralph
E. Griswold, and F.P. Polensky - Bell Labs. Featured string manipulation, used for pattern matching.
by Wallace Feurzeig, Daniel Bobrow, et al Bolt, Beranek, & Newman and Seymour
Papert, MIT . A dialect of LISP featuring interactivity, modularity,
extensibility, flexibility of data types. Logo is best known for
its "turtle graphics."
Prolog "Programming in
Logic" (1971) by Alain Colmerauer, Robert Kowalski, and Phillipe Roussel. Designed for natural language processing applications. Control
structure was depth-first search with backtracking.
Oberon (1988) - Niklaus Wirth, ETH - continues the refinement of
Pascal. Modula added the "module" to encapsulate functions,
procedures, and data structures. Modula also included single processor (sequential)
concurrency and hardware access. Oberon added inheritence, extensible
record types, multi-dimensional open arrays, garbage collection. Oberon
eliminated variant records, enumeration types, subranges, lower array indicies,
and for loops.
(1981) by DARPA (Defense Advanced Research Projects Agency) and a group of
companies and educational institutions - lexically scoped (default), can be
dynamically scoped, data structures, closures, multiple values, types using
declare and a variety of numerical types.
Eiffel (1985) by Bertrand Meyer and ISE - Language includes
design by contract, assertions, and statically typed/dynamically bound objects.
Python (1991) by
Guido van Rossum.
Interpreted object-oriented language. The language includes modules, exceptions, dynamic typing, very high level dynamic data types, and classes.
There are too many languages to write about in this article. The list of
known programming languages is over 2000 and growing. There are many
sources of programming language information on the Internet. Below you'll
find a few of these links.
David Intersimone "David I"
Server Response from: ETNASC01