0% found this document useful (0 votes)
68 views

How Programming Languages WORD

Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
68 views

How Programming Languages WORD

Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 10

How Programming

Languages Evolve
Tom Jepsen

O
life
nce upon a time, life whil struggle to replace them. These
was simple. Large e new species include a confusing
monolithic comput- hord swirl of languages that are
ers, usually painted es of
blue, ran single-threaded batch new • compiled,
programs under the watchful er • interpreted,
eyes of an operator and a type • Web based,
system programmer. A card s • scripting and modeling
reader served as the input capable,
device, a tape drive provided • object oriented,
storage, • graphically based,
• text-processing based, or
Learning what • founded on artificial
intelligence routines.
forces drive
programming- In addition, all kinds of spe-
cialized languages address the
language challenges of developing specific
evolution applications. To an outside ob-
server, this proliferation might
can help seem strange. Why haven’t
computer scientists and IT pro-
you pick fessionals—people generally sci-
one for entific and rational almost to a
fault—focused on creating a few
your robust and adaptable problem-
project solving languages that could suc-
ceed in any computing en-
. vironment?

ECOLOGICAL NICHES
and a line printer processed out- Quite simply, the rapid spread
put. Programmers wrote busi- of computerization into all
ness applications in Cobol, phases of modern life—and the
scientific applications in Fortran. diversity of application and
In either case, they worked out problem domains this trend has
the program logic on paper created—require a wide range of
first, used a keypunch to problem-solving tools.
produce punched cards, then Programming languages have
ran the resulting deck through evolved to provide such tools and,
the card reader. After a few like evolution in nature, have
debugging sessions, they generated numerous mutations in
received their computed the process, some successful and
results on sheets of fanfold some not. A few forces drive this
paper. If a program required evolutionary process;
documentation, pro- grammers understanding them and which
produced it on a man- ual languages evolved as an answer to
typewriter. these forces may
Today, a few lumbering pro-
gramming languages cling to
independent languages. into handheld personal dig- ital
help you select a language for your development project. assistants, clothing, and jew-
The incredible elry. Computers have become
Send in the clones shrinking computer ubiquitous. Almost all techno-
Much of software program- ming consists of With each succeeding logical artifacts now contain a
reinventing the wheel with a slightly different color gener- ation, computers stored program of some sort.
scheme, turning radius, and spoke orientation. This real- have housed the same Such small computers demand
ization launched programmers on a quest to develop processing power in smaller economical languages that
tech- niques for cloning and recycling code used on packages: First, main- leave a comparably small foot-
previous projects. Structured programming led to code frames shrank to print.
modularization, which in time led to object-oriented minicomput- ers, then
programming and component- based development. The minicomputers dwin- dled to Have code, will travel
quest for reusable software also con- tributed to the desktops. Now ever smaller Manufacturers of mainframes
development of architecture- and platform- computers find their way and even early PCs designed
their products for standalone

68 IT Pro November December 1999 1520-9202/99/$10.00 © 1999 IEEE


preface to The C
operation. The development of local Programming Language’s ond edition (Prentice Hall, Englewood
area networks , client-server architec sec- Cliffs, N.J., 1988), Ritchie and coauthor
- ture, and the Internet have vastly Brian Kernighan acknowledged that
altered the nature and scope of com - they designed C to be deliberately
puting. Software’s physical location is minimalist, noting that “C is not a big
no longer an issue: Components can language, and it is not well served by a
execute locally or travel to another big book.” The two programmers
location to execute remotely . Object developed C to meet the twin and
brokers can be used to set up tempo - sometimes contradictory goals of
rary “relationships” between units architecture independence and a high
of software function and requesting degree of programmer control over
clients in a distributed object envi - machine operations .Thus, while C gave
ronment. Operation in this environ - programmers the ability to explicitly
ment demands mobile , platform- allocate and deallocate memory , it also
independent code . made the length of an integer depend on
the underlying platform.
SELECTING FOR Ken Thompson developed the Unix
SPEED AND FLEXIBILITY operating system in tandem with, and
According to Perl creator Larry largely based upon, C. Thompson
Wall, “ Real languages evolve, they originally intended for Unix to be
don’t revolve. Truly revolutionary platform independent; one of its dis-
computer languages tend not to catch tinguishing features is its generic
on” (“An Ongoing Revolution,” open/close/read/write input/output
Computer, May 1999, pp. 48-49). abstractions. Unix, however, quickly
Com- panies with large investments developed dependencies on the
in legacy software show an underlying hardware . The need to port
understand - able reluctance to Unix to different platforms con - tributed
experiment with novel approaches to to the proliferation of Unix flavors and
programming , contributing to the to the resultant inability of any one
tendenc y of pro- gramming version to capture a large user market
languages to stick around until they share .
become “dinosaurs.” Take a snapshot
of any moment in the history of OO invades the desktop
programming-language develop - The quest for reusability spawned
ment, and you will see the same the notion of the object: a small,
picture. Even as these lumbering dino - reusable unit of software that encap -
saurs take gigantic bites out of the sulates behavior in terms of data and
market share jungle , smaller, faster- the methods that operate upon it. An
moving mammals scurry about, seek- early OO species, Smalltalk, proved
ing an overlooked niche they can well-suited to modeling and rapid
occupy while evolving into something prototyping. A small, interpreted lan -
greater . The history of programming guage with weak typing, Smalltalk
language evolution chronicles the was one of the fi rst languages to use
slow but steady triumph of these com - automatic garbage collection, a fea-
pact speedsters over lethargic giants . ture in which allocated memory that is
Managers and programmers who are no longer being used is automatically
able to spot the evolutionary winners released, without requiring an explicit
early on are destined to be successful call by the programmer . Automatic
in a competitive environment. garbage collection makes memory
management easier and less error -
Early mammals prone. Ultimately, though, Smalltalk
Created by Dennis Ritchie in the never evolved into a language for
1970s, C became one of the fi rst large-scale software development
speedy mammals to emerge from the because, as an interpreted language , it
pro - gramming jungle. In their lacked runtime efficienc y. It also

November December 1999 IT Pro 69


lacked commonly required functions , such as
the ability to convert numbers to strings.
The development of C++ by Bjarne
Stroustrup in the late 1980s overcame many of
Smalltalk’s shortcomings. A compiled
language like its ancestor C , C++ provided
good runtime perfor - mance. It also provided
strong typing , which resulted in better error
check - ing and optimization. These qualities
helped C++ move OO into the pro - gramming
mainstream.
Yet C++ had its own drawbacks . Complex
and difficult to learn, it suf- fered from
unstructured class li braries that required
programmers to spend time looking things up .
C++ also inherited C’ s platform dependence .
Despite their imperfections , C and C++
formed the backbone for much of the systems
programming that underpinned the personal
computer revolution of the early 1990s ,
includ- ing the development of Microsoft’ s
DOS and Windows operating sys - tems.
Another language fi lled the per - sonal
computer niche when IBM

What Interests You?

y leaders and visionaries who will address the scope and direction of change in software. I’d like them to talk about the evolu- tion of object-oriented comp

ons.

70 IT Pro November December 1999


P ERS P ECT I V ES

How Typing Handles Pr ogram Variables


Typing refers to the assignment
int c;
to a category of each declared vari-
main() {
able in a program. Such cate-
c = a + b;
gories—which include integer,
printf("%d\n", c);
float, string, or class—determine
}
how the variable will be
understood and used by the
The same function in weakly
software. Typing has advantages
typed Tcl can be written as
for the programmer who writes the
source code and the compiler or
set a 2
interpreter that gener- ates the
set b 2
object code. For the pro- grammer,
expr $a + $b
having a standard set of data types
provides added readabil- ity,
However, in some cases, weak typ-
reliability, and maintainability.
tions on how variables can be used. ing can lead to ambiguity. In
Knowing a variable’s type enables a
Weakly typed languages are gener- Smalltalk, all variables can be con-
compiler or interpreter to allocate
ally interpreted languages, with a sidered to be of type “object” since
the right amount of storage for the
sparse syntax and good rapid- all variables are objects by default.
variable and to process its contents
prototyping capabilities. Strongly But what does it mean to say that
correctly.
typed languages, on the other two objects are equal or identical?
Types may be implicit or may be
hand, like C, C++, and Java, For example, testing the integer 5
declared explicitly. Fortran IV pro-
require explicit type declarations for identity with itself
vided implicit typing by default—if
for all variables. Normally,
you declared a variable name that
developers compile such languages 5 == 5
began with I, J, K, L, M, or N, the
and the compiler does extensive
language automatically treated the
type checking at compile time to will evaluate as true, since the
variable as a fixed-point integer;
ensure data-type compatibility. If Smalltalk interpreter recognizes the
Fortran IV assumed all other vari-
the com- piler detects an small integer 5 as an identity object.
ables to be floating point. Java, on
incompatibility, it generates a However, testing the fraction 1/5 for
the other hand, does not allow
compilation error mes- sage and identity with itself
default types; all variable declara-
terminates the compile operation.
tions must specify a type.
Adding two and two in strongly (1/5) == (1/5)
Developers classify program-
ming languages as weakly typed or typed C requires several lines of
code: will evaluate as false, since the pro-
strongly typed . Weakly typed lan-
gram evaluates the expression at
guages, like Smalltalk and Tcl, do
int a = 2; runtime, and creates and compares
not require variables to have a type
int b = 2; two different objects.
declaration and place no restric-

packaged Basic , a simple interpreted cessing. Computer programs user documentation; it made sense to
language, with its original PC. Basic needed develop the documentation on the
gave many new PC owners their fi rst computer that ran the program. Script, a
exposure to programming . It would text processing language developed at
later evolve into Visual Basic, a pow- Canada’ s University of Waterloo in the
erful tool for developing graphically 1970s, provided commands for
based Windows applications. formatting text in written documents
and quickly came into general use on
Branching into text mainframe computers .
Another evolutionary path began Researchers at IBM created a text-
with the use of computers for text pro - processing macrolanguage based on
Script, called the Generalized Markup Language. GML let users create a
doc - ument by simply assembling
the nec - essary building blocks of
headings, paragraphs, and formats.
Some devel- opers noticed that text
processing using GML resembled
object-ori - ented programming: You
could create a generic functional
block, such as a paragraph, that could
be customized for a specific
document by specifying an instance
with a specifi c font, page layout, and
so forth.
This comparison resulted in the for scripting software that could pro - ical applications by stringing together
development of the Standard Gener - vide the “glue” between HTML user user interface “controls” similar to
alized Markup Language . SGML requests and server -based applica - Visual Basic.
includes the concept of a document tions written in conventional pro -
type definition, which specifies a set gramming languages. Ultimate adaptability
of elements and the tags used to defi Scripting languages solved the prob -
ne each document element. DTD, Script doctoring lem of providing interactivity between
the specification for hypertext markup The concept of scripting languages is Web users and server -resident appli -
lan - guage (HTML), would play a actually quite old: IBM developed Job cations. This solution does not work
leading role in a truly revolutionary Control Language in the 1960s as a well, however, if all clients try to access
develop - ment—the growth of the scripting language for main - frame the same application at once . A more
Internet and the World Wide Web. computers . Programmers used JCL to scalable way of providing interactivity
initiate execution of applica - tions would be to offload the server appli -
Weaving a worldwide web written in other languages . In the cation by distributing parts of its func -
Although the Internet had its origins 1990s, Visual Basic, though orig- tionality. One approach to achieving
in the Arpanet work sponsored by the inally intended as a system program - such offloading involves downloading
US Department of Defense’ s Ad- ming language, came into wide- software to requesting clients for local
vanced Research Project execution. With Java’s intro-
Agency in the 1960s, it really duction in 1995, this method
took off when large-scale net - Java’s added features, became a reality.
working became feasible Developed by James Gosling
through academic institutions’ including its downloadability and others at Sun Micro -
widespread use of Unix in the and ability to provide systems, Java and its applet-
early 1980s. However, the based animations soon danced
orig- inal text-based Internet execut able content , have led across Web pages around the
of the 1970s and 1980s formed to its inst ant popularity. world, eating up client PC
an arcane, hackers-only world processor cycles rather than
that few outside computer the CPU time of the servers
science departments could from which users downloaded
enter . This
situation began to change in 1989 gateway interface (CGI) spread use as a scripting language for
when Tim Berners-Lee of CERN , scripts . This requirement in developing Windows applications using
envisioning a shared workspace for col turn created the need components written in C or C++.
- laborative scientifi c work, Perl, developed by Wall in the early
developed the Hypertext Transport 1990s, has quickly become the lan -
Protocol (HTTP) and HTML, guage of choice for providing Web
thereby laying the groundwork for servers with CGI and general admin -
the World Wide Web. However, the istrative functions. Interpreted, weakly
real revolution began in 1993, when typed, and platform independent, Perl’s
Marc Andreessen, a young scripts run equally well on the various
programmer at the National Center flavors of Unix, Windows NT, and
for Supercomputing Appli- cations, MacOS. The language, which can still
created Mosaic , a graphically based be downloaded and used free of charge,
client for Web browsing. Mosaic also became one of the fi rst widely
opened the online community to the available open source lan - guages.
general public and initiated the fast- First released in 1990, John K.
paced growth in Web-based applica - Ousterhout’ s Tool Command Lan -
tions that continues today . guage—another “glue” language—
While early Web pages were limited enjoys a large following. Ousterhout
to static display of information, Web designed Tcl (pronounced “tickle”) as a
applications quickly became more scripting language for integrating
interactive and required complex applications written in other lan -
server-side functions, such as database guages. Open source and essentially
lookups and dynamic updating of typeless, Tcl lets users develop graph -
HTML content by means of common
it. Java’s developers, however, envi- sioned it as
capable of far broader application than serving
as a tool for decorating Web pages. They
designed Java as a general-purpose program -
ming language that would provide reusability, a
small footprint, and architecture independence .
An advanced hybrid, Java combines the
strengths of many predecessors . It retains the
strong typing and object orientation of C++,
but eliminates complexities like pointers .
Java shares Smalltalk’s capacity for
automated memory allocation, Perl’s
platform independence , and Visual Basic’s
ex- cellent GUI-development capabili - ties.
But Java’s added features , in- cluding its
downloadability and ability to provide
executable content, have led to its instant
popularity , creating possibilities for truly
distributed computing. Currently, Java and
the JavaScript scripting language com - pete
with Microsoft’ s ActiveX con- trols to
become the industry standard
P ERS P ECT I V ES

A D V E R T I SE R P RO DU C T I N D E X for providing Web-based executable


content.
N O V E M B E R D ECE M B E R 1 9 9 9
FUTURE GENERATIONS
Advertiser / Products Page Number Although Java appears to hold the
current evolutionary crown, I still
Addison Wesley 1 wonder where programming-lan -
Caci Products 63
guage evolution will lead next.
Object-oriented software continues
Epsilon Squared 63 evolving into component software ,
FlowPoint 62 with standardized interfaces and func -
tions. To quote Bertrand Meyer (“On
IEEE Computer Society Membership 4-6 to Components ,” Computer, Jan.
IT Professional 22 1999, pp. 139-140), “A true component
must be usable by software developers
ON!contact Software 64
who build new systems not foreseen
ParaSoft Corp. Cover 3 by the component’ s author .” Add
Perforce Software Cover 2 down- loadability and you have
distributed components that let you
Southwest Research Institute Cover 4 create net - work architectures
TechExcel 64 without worrying about where the
software actually resides. Put
Umax Technologies 62
additional intelligence into the mix,
Boldface denotes advertisements in this issue. and you have mobile agents capable
of moving through the network in a
heuristic fashion and interacting
intelligently with their execution
environments . Web-based languages
continue evolving new capabilities
as well: The Extensible Markup
Advertising Sales Offices Language (XML) promises to extend
HTML’s capabilities by letting
Sandy Aijala
10662 Los Vaqueros Circle users create customized doc - ument
Los Alamitos, California 90720-1314 component types and by per - mitting
Phone: (714) 821-8380 links to multiple sources .
Fax: (714) 821-4010 Combining XML and scripting lan -
[email protected]
guages will likely result in even more
Kim Newman, Gene Selven dynamic behavior .
7291 Coronado Drive, Suite 8
San Jose, California 95129
Phone: (408) 996-7401
Fax: (408) 996-7871
knewman@computer. org

W
ill programming languages
For production information, conference, and
classified advertising, contact: continue to proliferate , or do
Marian Anderson languages like Java repre -
IT Professional sent a trend toward convergence? Will
10662 Los Vaqueros Circle truly user-friendly languages develop
Los Alamitos, California 90720-1314
Phone: (714) 821-8380 that will enable nontechnical people to
Fax: (714) 821-4010 create programs? Will the open source
[email protected] movement make soft - ware
development more democratic and thus
more responsive to the diverse needs
of various users? Will the movement
produce more reliable software? I plan
to explore these and similar issues in
future articles .

You might also like