SlideShare a Scribd company logo
1 of 3
Download to read offline
28 APPLICATION DEVELOPMENT ADVISOR q www.appdevadvisor.com
D
EBATES on programming languages
are always sure to inspire more heat
than light. A previous article
looked at a number of languages
quantitatively as opposed to qualitatively,
concluding that once a language has made it
into the mainstream, it tends to be quite dif-
ficult to kill-off quickly or completely, and
that the industry is generally multilingual.1
As an industry it would be fair to describe
software development as being strongly
fashion-led. As with fashion, there is the per-
ception that whatever is at the shows and in
the magazines is what everyone is doing. As
with fashion this is not the case: people
still wear their old clothes and get on with
their lives. The call to “wake up and smell
the JavaBeans”2
because Java is the answer,
everyone is doing it, and C++ and all other
languages are in free fall is about as far
from reality as the view that Java is an
Internet language for a minority of pro-
grammers. From the other corner of the
debate, the fact that a language may be
better (whatever that means) than another
language has never stood in the way of it being
unsuccessful in the market place. The ele-
gant Eiffel is a classic example of this; the mar-
ket is a harsh antidote for idealism.The truth
is always a subtler blend of opposite views,
and tends to have less regard for fashion, logic
or conservatism.
Silent majority
It is easy to fall into a polarised view based
on one’s work environment.There are many
COBOL shops where the idea of GUIs
and curly bracket languages seem distant,
faddish, and irrelevant; there are vibrant ecom-
merce companies steeped in XML, Java
and Perl to the degree that there is almost
denial there has ever been another purpose
for software; there are Microsoft-only sites
where the idea that other viable operating
systems exist, and are measurably more
reliable, is at best hearsay; there are places
in academia where there is still a strong
belief that formal methods are viable con-
tenders for the mainstream; and so on.
The message is that software development
is more multicultural, in this respect, than
many individuals or consultancy groups
would like to admit—it is difficult to take
a position of extreme moderation and be
heard.
For many programming languages the con-
cept of the silent majority applies.There are
many languages that are definitely not fash-
ionable but are still quite widely used, away
from the glare of publicity. They are used in
the context of continued development of exist-
ing systems—euphemistically called main-
tenance by many, an unfortunate and
inappropriate term that software borrowed
from the physical engineering disciplines—
and, perhaps surprisingly, for the develop-
ment of new systems. With the year 2000
boundary condition out of the way, it is worth
taking stock of some of the better known.
Fortran
Fortran started life to prove a point: a
compiled language could produce machine
code with efficiency close to that of hand-
crafted assembler. John Backus led his
team at IBM in this endeavour between
1954 and 1957. He freely admits that
they made the syntax up as they went
along, preferring to focus on a close match
between the language and the features of
the underlying IBM 704 on which it was
originally developed. This certainly explains
something of the language’s syntax and
its frequent lack of consistency.
Although it has long since outgrown its
original acronym (FORmualTRANslation
because, at the time, its syntax had a vague
resemblance to mathematical notation) its
efficiency and ability to be first to market
for the numerate disciplines ensured that it
would win out of the more elegant ALGOL
58 and ALGOL 60.
Fortran has evolved radically through a
number of standards and extensions. Modern
Fortran is radically different to the FOR-
TRAN of the early 1960s (and not simply
because Fortran 90 sanctioned the lower case
spelling of the name). Programming using
exclusively modern Fortran features leads to
Enterprise Development Solutions
Now that the year 2000 crisis has subsided,
Kevlin Henney finds how legacy languages will fare
in the future, and charts their past development
MindYour
Language
differences comparable to the difference
between Java and classic C.
It was once said in the scientific pro-
gramming community that whatever language
they were using in the year 2000 it would
be called Fortran. It would appear that this
prophecy has been fulfilled. Fortran is still
taught on science and engineering courses
around the world, and is used extensively with-
in these communities. Although Fortran has
enjoyed popularity in commercial pro-
gramming domains, it has been largely dis-
placed leading to the mistaken perception
by many developers in the industry that it
has completely disappeared. The greatest
threats to Fortran’s position in its tradi-
tional market have come from C, C++ and
tools such as Mathematica.
COBOL
When people talk of legacy systems, COBOL
is without a doubt the language that most
often springs to mind. Along with Fortran
it is the language that one can most often
expect to find in the history of programmers
over the age of 30. It is not simply a mat-
ter of history, though. Y2K raised many peo-
ple’s awareness of how much COBOL was
out there. Although distinctly unfashionable,
COBOL code globally constitutes the most
code in any single language. Estimates vary,
but in terms of lines of code we are talking
international telephone numbers.
What we now know as COBOL started
life as an interim report (the final one was
never completed) resulting from a user
push for a business-oriented language under
the auspices of the US Department of
Defense and the newly formed Conference
on Data Systems Languages (CODASYL)
committee. Because of the perceived urgency,
the interim report was published as a stop-
gap measure in 1960 until the ‘real’ COBOL
could be completed. The final report never
happened.
Because of the vacuum for suitable busi-
ness languages, COBOL rapidly took hold
of this niche in the 1960s. Once there, it
proved difficult to displace regardless of
critique of its elegance, design, and other
attributes—“sticks and stones...”. Only
with significant changes in development plat-
form and software architecture has COBOL’s
dominance been challenged—PCs, client serv-
er, GUIs, object-orientation and theWeb have
all threatened it. However, in these cir-
cumstances COBOL has, through propri-
etary extensions, been extended to cope.
Although these have not led to anywhere near
the same market presence as the COBOL
mainframe association, they are still sig-
nificant. Through such adaptive extensions
and a splintering of mainframe dialects,
there are many COBOLs out there, and not
simply the ones defined through ANSI
standards.
What is COBOL’s future as the Y2K
teams wind down? Although some com-
panies have chosen to redevelop their sys-
tems to a new architecture and to a different
business model, there is less incentive to
throw it out of the many environments
where errant code has been fixed. The
language is still taught on many computing
courses, and has refused to be displaced
by more transient 4GLs, which have them-
selves caused upgrade problems. While the
demand for COBOL may drop a little, it is
unlikely to do so drastically.
PL/1
PL/1 (Programming Language 1) was orig-
inally touted as the last programming lan-
guage. As is often the case with such
ambitions, it certainly wasn’t, finding itself
in the company of thousands of other lan-
guages during the 1970s inflationary peri-
od of language growth.
It was conceived in the mid-1960s as a com-
plete general purpose programming lan-
guage, equally suited to scientific, business,
and systems programming. As such it used
the ALGOL, FORTRAN, and COBOL of
its times as starting points. A further criti-
cism often levelled at it was that because it
was many languages rather than one, it all
too easily allowed developers to program in
their original language’s idioms. It has been
said that one can program FORTRAN in
any language, and PL/1 certainly enabled this
to happen in a more complete sense than
most.
PL/1 was developed by IBM. Originally
named NPL (New Programming Language)
it was further developed at the company’s
Hursley labs in the UK, where it was felt that
the name might cause confusion with the
National Physical Laboratory.
SIMULA killer
The only other language at the time with sim-
ilar ambitions was Algol 68, which became
lost in complexity and committees. Usable
implementations of Algol 68 only began
appearing in the mid-1970s, long after the
original definition. It was competing with
PL/1, whose implementations were improv-
ing after a shaky start in the 1960s.The back-
ing of IBM and an ANSI/ECMA standard
in 1976 saw to it that in spite of its signif-
icant complexity, PL/1 stayed afloat while
Algol 68 persisted only in memory and
language design influence. PL/1’s com-
plexity led to the formation of subsets,
including PL/C and the official 1981 ANSI
standard PL/1 subset.
PL/1 was always poised for the big time,
to the point that it was used as the second
language in the classic Elements of
Programming Style (the other language in that
being FORTRAN 66).3
Its touted posi-
tion as the only programming language
one would ever need was responsible, in
Norway, for preventing major public fund-
ing of SIMULA, the first object-oriented lan-
guage. However, with the possible exception
of ALGOL, PL/1 did not displace those lan-
guages that it was intended to supersede. It
has been used typically for large systems, and
never fully broke away from living on main-
frames and minis. IBM sites were the most
likely to use it, and so its original status as
a vendor-created language was also never fully
shaken off. Its use has certainly declined in
favour of either newer or other old and
established languages, such as FORTRAN
and COBOL.
C
C is the progenitor of the curly bracket
family, which includes C++, Java, scripting
languages such as Perl, and interface definition
languages such as OMG IDL. It is descend-
ed from ALGOL 60, via the BCPL rather
than the Pascal lineage. Based on his expe-
rience of the Multics project, KenThompson
at AT&T experimented with a number of
languages, including BCPL, for developing
the kernel of what was to become Unix.
Dennis Ritchie developed C in 1972 as a
high-level systems programming language
for this purpose, rather than for the gener-
al purpose role in which it has since found
favour.
The fate of C and Unix were intertwined
in the early 1980s, but the uptake of C as
a general systems programming language
spread it far beyond the Unix environ-
ment, displacing assembler and other high-
level languages as the standard for systems
programming on many systems.The 1990s
saw C become accepted as general purpose
programming language, and it became a typ-
ical sight on developer CVs, either as the lan-
guage of choice or as a common second
language. C is a small language, with only
a handful of keywords and concepts.
However, some of these concepts and syn-
tax rules are tricky for the newcomer (and
even the experienced developer, as wit-
nessed by the International Obfuscated C
Coding Contest). This has often made it a
difficult language to move to for develop-
ers experienced in languages based on a
fundamentally different mindset, such as
COBOL.
The original de facto standard, the “White
Book”, came out in 1978.4
This is commonly
known as K&R C or Classic C. ANSI
JANUARY–FEBRUARY 2000 29
Enterprise Development Solutions
became involved in standardising the lan-
guage, leading to the C89 standard, and ISO
become involved soon after. A new standard,
C99, is about to hit the streets.The empha-
sis on portability has served to create a very
narrow dialect range for the language.
Compared to other languages, initial stan-
dardisation had little to do in the way of
accommodating radical differences between
compilers, and focused more on precise
exposition. Recent standardisation has
focused on extension, mostly in the areas of
internationalisation and numeric pro-
gramming. The former is a natural conse-
quence of the expansion of software markets
and the last follows from a sense of com-
petition with Fortran.
Classy C
The most successful divergence from regular
C is what was originally known as C with
Classes, and later renamed C++. This began
in the early 1980s and features in the lan-
guage influenced the standardisation of C.
C++ is largely compatible with C, which
helped it gain a foothold in the areas tra-
ditionally dominated by C; where C has led,
C++ has inevitably followed. For instance,
C has made inroads into the embedded
systems community, which traditionally
shunned higher-level languages, and C++ has
followed, leading to subset specifications such
as Embedded C++.5
Although C++, now an
ISO standard language, extended C in the
directions of safety, object-orientation, and
generic programming, it still retains its C her-
itage. It represents a challenging move to OO
for many non-C programmers.
However, C has not been completely
displaced by C++ or its more differentiat-
ed offspring, Java. Partly because of the mass
of existing code already written in C, and
partly because it holds a place as the low-
est common denominator most powerful
language available.The Open Source move-
ment of Linux, Perl, Apache, and others, and
the original free software movement, exem-
plified by GNU, is largely C-based. QA
Training’s experience of C is that the
demand for the language is still high,
although the profile of course delegates
has evolved during the last decade. Many
Visual Basic developers wish to get to grips
with C to better understand and interact with
the Windows API, and C++ developers
wish to find out more about the legacy
inherited from C.
In the The End of History and the Last
Programming Language, Richard Gabriel
forwards a theory for what makes a successful
programming language.6
C fulfils all of the
criteria; in one form or another it seems to
be here to stay as a living language.
Ada
Ada was a language born of committees, the
US Department of Defense, and Pascal. It
was a product of the 1970s and the endur-
ing belief that a final programming language
could still be created. Following a recog-
nition of the rising cost of embedded soft-
ware development, the DOD commissioned
a Higher Order Language Working Group
that was to identify requirements for DOD
languages and use them to evaluate the cur-
rent set of languages, which was large,
given the pre-Cambrian language explosion
of the 1970s. The result of the work was
that no existing language was entirely suit-
able, and work began on developing a
new one based on ALGOL 60, Algol 68,
Pascal and PL/1. Ada—after Augusta Ada
Byron, Lord Byron’s daughter and Charles
Babbage’s assistant, and allegedly the
world’s first programmer—became a stan-
dard in 1983, and a new standard was
approved in 1995.
Coming from the Pascal tradition, the syn-
tax of Ada is simple and readable. However,
Ada’s design tried to please all of the people
all of the time. The power of the features
crammed into its syntax often cause it to be
characterised as a complex language. It is very
easy to use a simple subset and be unaware
of the more advanced features, but in most
programming contexts simple features alone
are not enough.
Unfamilar model
Because Ada was created as a general pur-
pose language without having the benefit
of evolution to temper its features, some
of the concepts introduced in the first
round, Ada 83, were awkward to use or
insufficient. Ada 95 saw a host of new con-
cepts and features added to the language
to meet these perceived shortcomings,
some of which represented different lan-
guage models. For instance, although
object-based in its original incarnation, it
lacked many of the facilities, such as
inheritance or any form of dynamic pro-
cedure dispatch, which would qualify it as
object-oriented. Ada 95 introduced a
more complete object model, significantly
making Ada the first internationally stan-
dardised language to include OO fea-
tures. However, the model introduced
did not build on the existing task model
for concurrency, the newer protected type
features for monitor-like types, or the
common form for objects used in other sta-
tically typed languages. Although power-
ful, this makes Ada 95’s object model an
unfamiliar one to the majority of OO
developers.
Ada’s basis in defence work has ensured
that it still has a home there, but it is by no
means the exclusive choice for all such
software. The overhead associated with
many of its features and its runtime support
system has held it back from smaller embed-
ded systems use. Its reputation for safety has
led to its continued use in larger embedded
and safety-critical systems. Ironically, it
was Ada code that was used on Ariane 5’s
ill-fated maiden flight.7
Although this
expensive firework ultimately occurred
because of a failure to carry out appropri-
ate tests, there is a further irony that had the
system been written in C, the disaster
would probably never have happened! The
other significant market for Ada has been
in education, where it replaced Pascal in a
number of universities. However, the time
for even that market appears to be passing
with many universities favouring Java as a
first language.
Conclusion
Although not an exhaustive survey of old lan-
guages, this article has not been about find-
ing out whether or not a language is the right
fit for you, but how languages evolve and fill
niches, and how many programmers nav-
igate their own path between the Scylla
and Charybdis of fashion and pragmatism.
Certainly, when niches disappear we can
expect languages to follow, but although there
are always parts of industry undergoing
seismic shifts, it seems that there are also parts
of it that aren’t. s
Kevlin Henney is a Principal Technologist for QA
Training. He can be contacted at
khenney@qatraining.com
References
1. Henney, K. “Speaking in Tongues”,
Application Development Advisor,
2(1), Sept./Oct. 1998.
2. Guttman, M. Letters response to
“Java is an OO Language?”,
Application Development Advisor,
3(1), Sept./Oct. 1999.
3. Kernighan and Plauger. The Elements
of Programming Style, 2nd edition,
McGraw-Hill, 1979.
4. Kernighan and Ritchie. The C
Programming Language, Prentice
Hall, 1978.
5. The Embedded C++ home page,
www.caravan.net/ec2plus
6. Gabriel, Richard P. Patterns in
Software: Tales from the Software
Community, Oxford University Press,
1996.
7. The Full Report for Ariane 501,
www.esrin.esa.it/htdocs/tidc/Press/
Press96/ariane5rep.html
30 APPLICATION DEVELOPMENT ADVISOR q www.appdevadvisor.com
Enterprise Development Solutions

More Related Content

What's hot

Evolution of programming languages
Evolution of programming languagesEvolution of programming languages
Evolution of programming languagesNitin Kumar Kashyap
 
Principal of Programming Language
Principal of Programming Language Principal of Programming Language
Principal of Programming Language Satyendra Mohan
 
Julia vs Python 2020
Julia vs Python 2020Julia vs Python 2020
Julia vs Python 2020Devathon
 
Industrial Translation
Industrial TranslationIndustrial Translation
Industrial Translationmshikano
 
Two Way Language Translator Patent Application
Two Way Language Translator Patent ApplicationTwo Way Language Translator Patent Application
Two Way Language Translator Patent ApplicationBizpreneur
 
Programming language
Programming languageProgramming language
Programming languageAyesha Waheed
 
A Research Study of Data Collection and Analysis of Semantics of Programming ...
A Research Study of Data Collection and Analysis of Semantics of Programming ...A Research Study of Data Collection and Analysis of Semantics of Programming ...
A Research Study of Data Collection and Analysis of Semantics of Programming ...IRJET Journal
 
Evolution of programming language
Evolution of programming languageEvolution of programming language
Evolution of programming languageSameer Saini
 
Machine language to artificial intelligence
Machine language to artificial intelligenceMachine language to artificial intelligence
Machine language to artificial intelligenceSuneel Dogra
 
So you want to be a programmer
So you want to be a programmerSo you want to be a programmer
So you want to be a programmerBusayo Oyebisi
 
Comparative Study of programming Languages
Comparative Study of programming LanguagesComparative Study of programming Languages
Comparative Study of programming LanguagesIshan Monga
 
Grade 10 introduction and history of programming
Grade 10   introduction and history of programmingGrade 10   introduction and history of programming
Grade 10 introduction and history of programmingRafael Balderosa
 
Generations of programming language
Generations of programming languageGenerations of programming language
Generations of programming languageJAIDEVPAUL
 
How to build language technology resources for the next 100 years
How to build language technology resources for the next 100 yearsHow to build language technology resources for the next 100 years
How to build language technology resources for the next 100 yearsGuy De Pauw
 
Programming language
Programming languageProgramming language
Programming languageShuja Qais
 

What's hot (16)

Evolution of programming languages
Evolution of programming languagesEvolution of programming languages
Evolution of programming languages
 
Principal of Programming Language
Principal of Programming Language Principal of Programming Language
Principal of Programming Language
 
Julia vs Python 2020
Julia vs Python 2020Julia vs Python 2020
Julia vs Python 2020
 
Industrial Translation
Industrial TranslationIndustrial Translation
Industrial Translation
 
Programming names
Programming namesProgramming names
Programming names
 
Two Way Language Translator Patent Application
Two Way Language Translator Patent ApplicationTwo Way Language Translator Patent Application
Two Way Language Translator Patent Application
 
Programming language
Programming languageProgramming language
Programming language
 
A Research Study of Data Collection and Analysis of Semantics of Programming ...
A Research Study of Data Collection and Analysis of Semantics of Programming ...A Research Study of Data Collection and Analysis of Semantics of Programming ...
A Research Study of Data Collection and Analysis of Semantics of Programming ...
 
Evolution of programming language
Evolution of programming languageEvolution of programming language
Evolution of programming language
 
Machine language to artificial intelligence
Machine language to artificial intelligenceMachine language to artificial intelligence
Machine language to artificial intelligence
 
So you want to be a programmer
So you want to be a programmerSo you want to be a programmer
So you want to be a programmer
 
Comparative Study of programming Languages
Comparative Study of programming LanguagesComparative Study of programming Languages
Comparative Study of programming Languages
 
Grade 10 introduction and history of programming
Grade 10   introduction and history of programmingGrade 10   introduction and history of programming
Grade 10 introduction and history of programming
 
Generations of programming language
Generations of programming languageGenerations of programming language
Generations of programming language
 
How to build language technology resources for the next 100 years
How to build language technology resources for the next 100 yearsHow to build language technology resources for the next 100 years
How to build language technology resources for the next 100 years
 
Programming language
Programming languageProgramming language
Programming language
 

Viewers also liked

Prefixos de lloc i de negació
Prefixos de lloc i de negacióPrefixos de lloc i de negació
Prefixos de lloc i de negaciójosemanuelcremades
 
ertification to rinl
ertification to rinlertification to rinl
ertification to rinlThangarasu A
 
Personalitydevelopmentbest2015
Personalitydevelopmentbest2015 Personalitydevelopmentbest2015
Personalitydevelopmentbest2015 pailaravisankar044
 
Android bankosy malware iicybersecurity
Android bankosy malware iicybersecurity Android bankosy malware iicybersecurity
Android bankosy malware iicybersecurity David Thomas
 
INNOVATIVE PRODUCT- MULTY VITAMIN TABLET
INNOVATIVE PRODUCT- MULTY VITAMIN TABLETINNOVATIVE PRODUCT- MULTY VITAMIN TABLET
INNOVATIVE PRODUCT- MULTY VITAMIN TABLETSAM KURIAN
 

Viewers also liked (7)

Prefixos de lloc i de negació
Prefixos de lloc i de negacióPrefixos de lloc i de negació
Prefixos de lloc i de negació
 
ertification to rinl
ertification to rinlertification to rinl
ertification to rinl
 
Personalitydevelopmentbest2015
Personalitydevelopmentbest2015 Personalitydevelopmentbest2015
Personalitydevelopmentbest2015
 
Det händer innan jul av Ingemar Pongratz
Det händer innan jul av Ingemar PongratzDet händer innan jul av Ingemar Pongratz
Det händer innan jul av Ingemar Pongratz
 
Android bankosy malware iicybersecurity
Android bankosy malware iicybersecurity Android bankosy malware iicybersecurity
Android bankosy malware iicybersecurity
 
INNOVATIVE PRODUCT- MULTY VITAMIN TABLET
INNOVATIVE PRODUCT- MULTY VITAMIN TABLETINNOVATIVE PRODUCT- MULTY VITAMIN TABLET
INNOVATIVE PRODUCT- MULTY VITAMIN TABLET
 
leg day
leg dayleg day
leg day
 

Similar to Mind Your Language

Looking into COBOL and Being Serious About it
Looking into COBOL  and Being Serious About itLooking into COBOL  and Being Serious About it
Looking into COBOL and Being Serious About itCharlie
 
Programming And Programming languages.pptx
Programming And Programming languages.pptxProgramming And Programming languages.pptx
Programming And Programming languages.pptxRohan Basnet
 
History of Computer Programming Languages.docx
History of Computer Programming Languages.docxHistory of Computer Programming Languages.docx
History of Computer Programming Languages.docxJawaidAbdulHameed
 
Backus turingaward lecture
Backus turingaward lectureBackus turingaward lecture
Backus turingaward lectureKulOusemnes
 
Key Features Of The Pseudo Code
Key Features Of The Pseudo CodeKey Features Of The Pseudo Code
Key Features Of The Pseudo CodeAngilina Jones
 
Can Programming Be Liberated from the von Neumann Style? by John Backus
Can Programming Be Liberated from the von Neumann Style? by John BackusCan Programming Be Liberated from the von Neumann Style? by John Backus
Can Programming Be Liberated from the von Neumann Style? by John Backusmustafa sarac
 
Programming Language Evolution
Programming Language EvolutionProgramming Language Evolution
Programming Language EvolutionKushan Dananjaya
 
Introduction to C Language
Introduction to C LanguageIntroduction to C Language
Introduction to C LanguageTarun Sharma
 
Programming language
Programming languageProgramming language
Programming languageLia Safitri
 
A History of Computer Programming Languages.pdf
A History of Computer Programming Languages.pdfA History of Computer Programming Languages.pdf
A History of Computer Programming Languages.pdfSohaib Roomi
 
Advanced_programming_language_design.pdf
Advanced_programming_language_design.pdfAdvanced_programming_language_design.pdf
Advanced_programming_language_design.pdfRodulfoGabrito
 
OBJECT ORIENTED PROGRAMMING.docx
OBJECT ORIENTED PROGRAMMING.docxOBJECT ORIENTED PROGRAMMING.docx
OBJECT ORIENTED PROGRAMMING.docxAleKi2
 
Unit 4 Assignment 1 Comparative Study Of Programming...
Unit 4 Assignment 1 Comparative Study Of Programming...Unit 4 Assignment 1 Comparative Study Of Programming...
Unit 4 Assignment 1 Comparative Study Of Programming...Carmen Sanborn
 
Java As A Programming Language
Java As A Programming LanguageJava As A Programming Language
Java As A Programming LanguageJennifer Wright
 
Computer languages
Computer languagesComputer languages
Computer languageswow_so
 
Basic programming concepts
Basic programming conceptsBasic programming concepts
Basic programming conceptssalmankhan570
 
Summer training report on java se6 technology
Summer training  report on java se6 technologySummer training  report on java se6 technology
Summer training report on java se6 technologyShamsher Ahmed
 
Invasion of the dynamic language weenies
Invasion of the dynamic language weeniesInvasion of the dynamic language weenies
Invasion of the dynamic language weeniesSrijit Kumar Bhadra
 

Similar to Mind Your Language (20)

Looking into COBOL and Being Serious About it
Looking into COBOL  and Being Serious About itLooking into COBOL  and Being Serious About it
Looking into COBOL and Being Serious About it
 
Programming And Programming languages.pptx
Programming And Programming languages.pptxProgramming And Programming languages.pptx
Programming And Programming languages.pptx
 
History of Computer Programming Languages.docx
History of Computer Programming Languages.docxHistory of Computer Programming Languages.docx
History of Computer Programming Languages.docx
 
Backus turingaward lecture
Backus turingaward lectureBackus turingaward lecture
Backus turingaward lecture
 
Key Features Of The Pseudo Code
Key Features Of The Pseudo CodeKey Features Of The Pseudo Code
Key Features Of The Pseudo Code
 
Unit ii oo design 9
Unit ii oo design 9Unit ii oo design 9
Unit ii oo design 9
 
Can Programming Be Liberated from the von Neumann Style? by John Backus
Can Programming Be Liberated from the von Neumann Style? by John BackusCan Programming Be Liberated from the von Neumann Style? by John Backus
Can Programming Be Liberated from the von Neumann Style? by John Backus
 
Programming Language Evolution
Programming Language EvolutionProgramming Language Evolution
Programming Language Evolution
 
Evolution of Computer Languages
Evolution of Computer LanguagesEvolution of Computer Languages
Evolution of Computer Languages
 
Introduction to C Language
Introduction to C LanguageIntroduction to C Language
Introduction to C Language
 
Programming language
Programming languageProgramming language
Programming language
 
A History of Computer Programming Languages.pdf
A History of Computer Programming Languages.pdfA History of Computer Programming Languages.pdf
A History of Computer Programming Languages.pdf
 
Advanced_programming_language_design.pdf
Advanced_programming_language_design.pdfAdvanced_programming_language_design.pdf
Advanced_programming_language_design.pdf
 
OBJECT ORIENTED PROGRAMMING.docx
OBJECT ORIENTED PROGRAMMING.docxOBJECT ORIENTED PROGRAMMING.docx
OBJECT ORIENTED PROGRAMMING.docx
 
Unit 4 Assignment 1 Comparative Study Of Programming...
Unit 4 Assignment 1 Comparative Study Of Programming...Unit 4 Assignment 1 Comparative Study Of Programming...
Unit 4 Assignment 1 Comparative Study Of Programming...
 
Java As A Programming Language
Java As A Programming LanguageJava As A Programming Language
Java As A Programming Language
 
Computer languages
Computer languagesComputer languages
Computer languages
 
Basic programming concepts
Basic programming conceptsBasic programming concepts
Basic programming concepts
 
Summer training report on java se6 technology
Summer training  report on java se6 technologySummer training  report on java se6 technology
Summer training report on java se6 technology
 
Invasion of the dynamic language weenies
Invasion of the dynamic language weeniesInvasion of the dynamic language weenies
Invasion of the dynamic language weenies
 

More from Kevlin Henney

The Case for Technical Excellence
The Case for Technical ExcellenceThe Case for Technical Excellence
The Case for Technical ExcellenceKevlin Henney
 
Empirical Development
Empirical DevelopmentEmpirical Development
Empirical DevelopmentKevlin Henney
 
Lambda? You Keep Using that Letter
Lambda? You Keep Using that LetterLambda? You Keep Using that Letter
Lambda? You Keep Using that LetterKevlin Henney
 
Lambda? You Keep Using that Letter
Lambda? You Keep Using that LetterLambda? You Keep Using that Letter
Lambda? You Keep Using that LetterKevlin Henney
 
Solid Deconstruction
Solid DeconstructionSolid Deconstruction
Solid DeconstructionKevlin Henney
 
Procedural Programming: It’s Back? It Never Went Away
Procedural Programming: It’s Back? It Never Went AwayProcedural Programming: It’s Back? It Never Went Away
Procedural Programming: It’s Back? It Never Went AwayKevlin Henney
 
Structure and Interpretation of Test Cases
Structure and Interpretation of Test CasesStructure and Interpretation of Test Cases
Structure and Interpretation of Test CasesKevlin Henney
 
Refactoring to Immutability
Refactoring to ImmutabilityRefactoring to Immutability
Refactoring to ImmutabilityKevlin Henney
 
Turning Development Outside-In
Turning Development Outside-InTurning Development Outside-In
Turning Development Outside-InKevlin Henney
 
Giving Code a Good Name
Giving Code a Good NameGiving Code a Good Name
Giving Code a Good NameKevlin Henney
 
Clean Coders Hate What Happens To Your Code When You Use These Enterprise Pro...
Clean Coders Hate What Happens To Your Code When You Use These Enterprise Pro...Clean Coders Hate What Happens To Your Code When You Use These Enterprise Pro...
Clean Coders Hate What Happens To Your Code When You Use These Enterprise Pro...Kevlin Henney
 
Thinking Outside the Synchronisation Quadrant
Thinking Outside the Synchronisation QuadrantThinking Outside the Synchronisation Quadrant
Thinking Outside the Synchronisation QuadrantKevlin Henney
 

More from Kevlin Henney (20)

Program with GUTs
Program with GUTsProgram with GUTs
Program with GUTs
 
The Case for Technical Excellence
The Case for Technical ExcellenceThe Case for Technical Excellence
The Case for Technical Excellence
 
Empirical Development
Empirical DevelopmentEmpirical Development
Empirical Development
 
Lambda? You Keep Using that Letter
Lambda? You Keep Using that LetterLambda? You Keep Using that Letter
Lambda? You Keep Using that Letter
 
Lambda? You Keep Using that Letter
Lambda? You Keep Using that LetterLambda? You Keep Using that Letter
Lambda? You Keep Using that Letter
 
Solid Deconstruction
Solid DeconstructionSolid Deconstruction
Solid Deconstruction
 
Get Kata
Get KataGet Kata
Get Kata
 
Procedural Programming: It’s Back? It Never Went Away
Procedural Programming: It’s Back? It Never Went AwayProcedural Programming: It’s Back? It Never Went Away
Procedural Programming: It’s Back? It Never Went Away
 
Structure and Interpretation of Test Cases
Structure and Interpretation of Test CasesStructure and Interpretation of Test Cases
Structure and Interpretation of Test Cases
 
Agility ≠ Speed
Agility ≠ SpeedAgility ≠ Speed
Agility ≠ Speed
 
Refactoring to Immutability
Refactoring to ImmutabilityRefactoring to Immutability
Refactoring to Immutability
 
Old Is the New New
Old Is the New NewOld Is the New New
Old Is the New New
 
Turning Development Outside-In
Turning Development Outside-InTurning Development Outside-In
Turning Development Outside-In
 
Giving Code a Good Name
Giving Code a Good NameGiving Code a Good Name
Giving Code a Good Name
 
Clean Coders Hate What Happens To Your Code When You Use These Enterprise Pro...
Clean Coders Hate What Happens To Your Code When You Use These Enterprise Pro...Clean Coders Hate What Happens To Your Code When You Use These Enterprise Pro...
Clean Coders Hate What Happens To Your Code When You Use These Enterprise Pro...
 
Thinking Outside the Synchronisation Quadrant
Thinking Outside the Synchronisation QuadrantThinking Outside the Synchronisation Quadrant
Thinking Outside the Synchronisation Quadrant
 
Code as Risk
Code as RiskCode as Risk
Code as Risk
 
Software Is Details
Software Is DetailsSoftware Is Details
Software Is Details
 
Game of Sprints
Game of SprintsGame of Sprints
Game of Sprints
 
Good Code
Good CodeGood Code
Good Code
 

Recently uploaded

WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Bert Jan Schrijver
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...SelfMade bd
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech studentsHimanshiGarg82
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...masabamasaba
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfonteinmasabamasaba
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...chiefasafspells
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...masabamasaba
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...Jittipong Loespradit
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...masabamasaba
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park masabamasaba
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...Shane Coughlan
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benonimasabamasaba
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxAnnaArtyushina1
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...masabamasaba
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...masabamasaba
 

Recently uploaded (20)

Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 

Mind Your Language

  • 1. 28 APPLICATION DEVELOPMENT ADVISOR q www.appdevadvisor.com D EBATES on programming languages are always sure to inspire more heat than light. A previous article looked at a number of languages quantitatively as opposed to qualitatively, concluding that once a language has made it into the mainstream, it tends to be quite dif- ficult to kill-off quickly or completely, and that the industry is generally multilingual.1 As an industry it would be fair to describe software development as being strongly fashion-led. As with fashion, there is the per- ception that whatever is at the shows and in the magazines is what everyone is doing. As with fashion this is not the case: people still wear their old clothes and get on with their lives. The call to “wake up and smell the JavaBeans”2 because Java is the answer, everyone is doing it, and C++ and all other languages are in free fall is about as far from reality as the view that Java is an Internet language for a minority of pro- grammers. From the other corner of the debate, the fact that a language may be better (whatever that means) than another language has never stood in the way of it being unsuccessful in the market place. The ele- gant Eiffel is a classic example of this; the mar- ket is a harsh antidote for idealism.The truth is always a subtler blend of opposite views, and tends to have less regard for fashion, logic or conservatism. Silent majority It is easy to fall into a polarised view based on one’s work environment.There are many COBOL shops where the idea of GUIs and curly bracket languages seem distant, faddish, and irrelevant; there are vibrant ecom- merce companies steeped in XML, Java and Perl to the degree that there is almost denial there has ever been another purpose for software; there are Microsoft-only sites where the idea that other viable operating systems exist, and are measurably more reliable, is at best hearsay; there are places in academia where there is still a strong belief that formal methods are viable con- tenders for the mainstream; and so on. The message is that software development is more multicultural, in this respect, than many individuals or consultancy groups would like to admit—it is difficult to take a position of extreme moderation and be heard. For many programming languages the con- cept of the silent majority applies.There are many languages that are definitely not fash- ionable but are still quite widely used, away from the glare of publicity. They are used in the context of continued development of exist- ing systems—euphemistically called main- tenance by many, an unfortunate and inappropriate term that software borrowed from the physical engineering disciplines— and, perhaps surprisingly, for the develop- ment of new systems. With the year 2000 boundary condition out of the way, it is worth taking stock of some of the better known. Fortran Fortran started life to prove a point: a compiled language could produce machine code with efficiency close to that of hand- crafted assembler. John Backus led his team at IBM in this endeavour between 1954 and 1957. He freely admits that they made the syntax up as they went along, preferring to focus on a close match between the language and the features of the underlying IBM 704 on which it was originally developed. This certainly explains something of the language’s syntax and its frequent lack of consistency. Although it has long since outgrown its original acronym (FORmualTRANslation because, at the time, its syntax had a vague resemblance to mathematical notation) its efficiency and ability to be first to market for the numerate disciplines ensured that it would win out of the more elegant ALGOL 58 and ALGOL 60. Fortran has evolved radically through a number of standards and extensions. Modern Fortran is radically different to the FOR- TRAN of the early 1960s (and not simply because Fortran 90 sanctioned the lower case spelling of the name). Programming using exclusively modern Fortran features leads to Enterprise Development Solutions Now that the year 2000 crisis has subsided, Kevlin Henney finds how legacy languages will fare in the future, and charts their past development MindYour Language
  • 2. differences comparable to the difference between Java and classic C. It was once said in the scientific pro- gramming community that whatever language they were using in the year 2000 it would be called Fortran. It would appear that this prophecy has been fulfilled. Fortran is still taught on science and engineering courses around the world, and is used extensively with- in these communities. Although Fortran has enjoyed popularity in commercial pro- gramming domains, it has been largely dis- placed leading to the mistaken perception by many developers in the industry that it has completely disappeared. The greatest threats to Fortran’s position in its tradi- tional market have come from C, C++ and tools such as Mathematica. COBOL When people talk of legacy systems, COBOL is without a doubt the language that most often springs to mind. Along with Fortran it is the language that one can most often expect to find in the history of programmers over the age of 30. It is not simply a mat- ter of history, though. Y2K raised many peo- ple’s awareness of how much COBOL was out there. Although distinctly unfashionable, COBOL code globally constitutes the most code in any single language. Estimates vary, but in terms of lines of code we are talking international telephone numbers. What we now know as COBOL started life as an interim report (the final one was never completed) resulting from a user push for a business-oriented language under the auspices of the US Department of Defense and the newly formed Conference on Data Systems Languages (CODASYL) committee. Because of the perceived urgency, the interim report was published as a stop- gap measure in 1960 until the ‘real’ COBOL could be completed. The final report never happened. Because of the vacuum for suitable busi- ness languages, COBOL rapidly took hold of this niche in the 1960s. Once there, it proved difficult to displace regardless of critique of its elegance, design, and other attributes—“sticks and stones...”. Only with significant changes in development plat- form and software architecture has COBOL’s dominance been challenged—PCs, client serv- er, GUIs, object-orientation and theWeb have all threatened it. However, in these cir- cumstances COBOL has, through propri- etary extensions, been extended to cope. Although these have not led to anywhere near the same market presence as the COBOL mainframe association, they are still sig- nificant. Through such adaptive extensions and a splintering of mainframe dialects, there are many COBOLs out there, and not simply the ones defined through ANSI standards. What is COBOL’s future as the Y2K teams wind down? Although some com- panies have chosen to redevelop their sys- tems to a new architecture and to a different business model, there is less incentive to throw it out of the many environments where errant code has been fixed. The language is still taught on many computing courses, and has refused to be displaced by more transient 4GLs, which have them- selves caused upgrade problems. While the demand for COBOL may drop a little, it is unlikely to do so drastically. PL/1 PL/1 (Programming Language 1) was orig- inally touted as the last programming lan- guage. As is often the case with such ambitions, it certainly wasn’t, finding itself in the company of thousands of other lan- guages during the 1970s inflationary peri- od of language growth. It was conceived in the mid-1960s as a com- plete general purpose programming lan- guage, equally suited to scientific, business, and systems programming. As such it used the ALGOL, FORTRAN, and COBOL of its times as starting points. A further criti- cism often levelled at it was that because it was many languages rather than one, it all too easily allowed developers to program in their original language’s idioms. It has been said that one can program FORTRAN in any language, and PL/1 certainly enabled this to happen in a more complete sense than most. PL/1 was developed by IBM. Originally named NPL (New Programming Language) it was further developed at the company’s Hursley labs in the UK, where it was felt that the name might cause confusion with the National Physical Laboratory. SIMULA killer The only other language at the time with sim- ilar ambitions was Algol 68, which became lost in complexity and committees. Usable implementations of Algol 68 only began appearing in the mid-1970s, long after the original definition. It was competing with PL/1, whose implementations were improv- ing after a shaky start in the 1960s.The back- ing of IBM and an ANSI/ECMA standard in 1976 saw to it that in spite of its signif- icant complexity, PL/1 stayed afloat while Algol 68 persisted only in memory and language design influence. PL/1’s com- plexity led to the formation of subsets, including PL/C and the official 1981 ANSI standard PL/1 subset. PL/1 was always poised for the big time, to the point that it was used as the second language in the classic Elements of Programming Style (the other language in that being FORTRAN 66).3 Its touted posi- tion as the only programming language one would ever need was responsible, in Norway, for preventing major public fund- ing of SIMULA, the first object-oriented lan- guage. However, with the possible exception of ALGOL, PL/1 did not displace those lan- guages that it was intended to supersede. It has been used typically for large systems, and never fully broke away from living on main- frames and minis. IBM sites were the most likely to use it, and so its original status as a vendor-created language was also never fully shaken off. Its use has certainly declined in favour of either newer or other old and established languages, such as FORTRAN and COBOL. C C is the progenitor of the curly bracket family, which includes C++, Java, scripting languages such as Perl, and interface definition languages such as OMG IDL. It is descend- ed from ALGOL 60, via the BCPL rather than the Pascal lineage. Based on his expe- rience of the Multics project, KenThompson at AT&T experimented with a number of languages, including BCPL, for developing the kernel of what was to become Unix. Dennis Ritchie developed C in 1972 as a high-level systems programming language for this purpose, rather than for the gener- al purpose role in which it has since found favour. The fate of C and Unix were intertwined in the early 1980s, but the uptake of C as a general systems programming language spread it far beyond the Unix environ- ment, displacing assembler and other high- level languages as the standard for systems programming on many systems.The 1990s saw C become accepted as general purpose programming language, and it became a typ- ical sight on developer CVs, either as the lan- guage of choice or as a common second language. C is a small language, with only a handful of keywords and concepts. However, some of these concepts and syn- tax rules are tricky for the newcomer (and even the experienced developer, as wit- nessed by the International Obfuscated C Coding Contest). This has often made it a difficult language to move to for develop- ers experienced in languages based on a fundamentally different mindset, such as COBOL. The original de facto standard, the “White Book”, came out in 1978.4 This is commonly known as K&R C or Classic C. ANSI JANUARY–FEBRUARY 2000 29 Enterprise Development Solutions
  • 3. became involved in standardising the lan- guage, leading to the C89 standard, and ISO become involved soon after. A new standard, C99, is about to hit the streets.The empha- sis on portability has served to create a very narrow dialect range for the language. Compared to other languages, initial stan- dardisation had little to do in the way of accommodating radical differences between compilers, and focused more on precise exposition. Recent standardisation has focused on extension, mostly in the areas of internationalisation and numeric pro- gramming. The former is a natural conse- quence of the expansion of software markets and the last follows from a sense of com- petition with Fortran. Classy C The most successful divergence from regular C is what was originally known as C with Classes, and later renamed C++. This began in the early 1980s and features in the lan- guage influenced the standardisation of C. C++ is largely compatible with C, which helped it gain a foothold in the areas tra- ditionally dominated by C; where C has led, C++ has inevitably followed. For instance, C has made inroads into the embedded systems community, which traditionally shunned higher-level languages, and C++ has followed, leading to subset specifications such as Embedded C++.5 Although C++, now an ISO standard language, extended C in the directions of safety, object-orientation, and generic programming, it still retains its C her- itage. It represents a challenging move to OO for many non-C programmers. However, C has not been completely displaced by C++ or its more differentiat- ed offspring, Java. Partly because of the mass of existing code already written in C, and partly because it holds a place as the low- est common denominator most powerful language available.The Open Source move- ment of Linux, Perl, Apache, and others, and the original free software movement, exem- plified by GNU, is largely C-based. QA Training’s experience of C is that the demand for the language is still high, although the profile of course delegates has evolved during the last decade. Many Visual Basic developers wish to get to grips with C to better understand and interact with the Windows API, and C++ developers wish to find out more about the legacy inherited from C. In the The End of History and the Last Programming Language, Richard Gabriel forwards a theory for what makes a successful programming language.6 C fulfils all of the criteria; in one form or another it seems to be here to stay as a living language. Ada Ada was a language born of committees, the US Department of Defense, and Pascal. It was a product of the 1970s and the endur- ing belief that a final programming language could still be created. Following a recog- nition of the rising cost of embedded soft- ware development, the DOD commissioned a Higher Order Language Working Group that was to identify requirements for DOD languages and use them to evaluate the cur- rent set of languages, which was large, given the pre-Cambrian language explosion of the 1970s. The result of the work was that no existing language was entirely suit- able, and work began on developing a new one based on ALGOL 60, Algol 68, Pascal and PL/1. Ada—after Augusta Ada Byron, Lord Byron’s daughter and Charles Babbage’s assistant, and allegedly the world’s first programmer—became a stan- dard in 1983, and a new standard was approved in 1995. Coming from the Pascal tradition, the syn- tax of Ada is simple and readable. However, Ada’s design tried to please all of the people all of the time. The power of the features crammed into its syntax often cause it to be characterised as a complex language. It is very easy to use a simple subset and be unaware of the more advanced features, but in most programming contexts simple features alone are not enough. Unfamilar model Because Ada was created as a general pur- pose language without having the benefit of evolution to temper its features, some of the concepts introduced in the first round, Ada 83, were awkward to use or insufficient. Ada 95 saw a host of new con- cepts and features added to the language to meet these perceived shortcomings, some of which represented different lan- guage models. For instance, although object-based in its original incarnation, it lacked many of the facilities, such as inheritance or any form of dynamic pro- cedure dispatch, which would qualify it as object-oriented. Ada 95 introduced a more complete object model, significantly making Ada the first internationally stan- dardised language to include OO fea- tures. However, the model introduced did not build on the existing task model for concurrency, the newer protected type features for monitor-like types, or the common form for objects used in other sta- tically typed languages. Although power- ful, this makes Ada 95’s object model an unfamiliar one to the majority of OO developers. Ada’s basis in defence work has ensured that it still has a home there, but it is by no means the exclusive choice for all such software. The overhead associated with many of its features and its runtime support system has held it back from smaller embed- ded systems use. Its reputation for safety has led to its continued use in larger embedded and safety-critical systems. Ironically, it was Ada code that was used on Ariane 5’s ill-fated maiden flight.7 Although this expensive firework ultimately occurred because of a failure to carry out appropri- ate tests, there is a further irony that had the system been written in C, the disaster would probably never have happened! The other significant market for Ada has been in education, where it replaced Pascal in a number of universities. However, the time for even that market appears to be passing with many universities favouring Java as a first language. Conclusion Although not an exhaustive survey of old lan- guages, this article has not been about find- ing out whether or not a language is the right fit for you, but how languages evolve and fill niches, and how many programmers nav- igate their own path between the Scylla and Charybdis of fashion and pragmatism. Certainly, when niches disappear we can expect languages to follow, but although there are always parts of industry undergoing seismic shifts, it seems that there are also parts of it that aren’t. s Kevlin Henney is a Principal Technologist for QA Training. He can be contacted at khenney@qatraining.com References 1. Henney, K. “Speaking in Tongues”, Application Development Advisor, 2(1), Sept./Oct. 1998. 2. Guttman, M. Letters response to “Java is an OO Language?”, Application Development Advisor, 3(1), Sept./Oct. 1999. 3. Kernighan and Plauger. The Elements of Programming Style, 2nd edition, McGraw-Hill, 1979. 4. Kernighan and Ritchie. The C Programming Language, Prentice Hall, 1978. 5. The Embedded C++ home page, www.caravan.net/ec2plus 6. Gabriel, Richard P. Patterns in Software: Tales from the Software Community, Oxford University Press, 1996. 7. The Full Report for Ariane 501, www.esrin.esa.it/htdocs/tidc/Press/ Press96/ariane5rep.html 30 APPLICATION DEVELOPMENT ADVISOR q www.appdevadvisor.com Enterprise Development Solutions