Java Reference
In-Depth Information
programs that it produced very efficient because most programmers those days
felt that they were far more competent in producing an efficient program (in
assembly language) than any compiler could be. If Fortran was not efficient, they
felt, no one would use it. Nevertheless, Fortran caught on quickly because writ-
ing in Fortran was so much quicker and less error prone than writing in an
assembly language.
The year 1960 saw the emergence of three more languages: Lisp, a function-
al language (emphasizing expression evaluation and function calls, not assign-
ment statements), developed by John McCarthy at MIT; Algol 60, a procedural
language, which was developed by an international committee consisting main-
ly of Americans and Europeans (Backus and McCarthy were on it); and COBOL
(standing for COmmon Business-Oriented Language), which was developed
under the auspices of the U.S. Department of Defense, with help from computer
manufactures and universities. Also, at about this time, research into the devel-
opment of compilers for programming languages became one of the hot topics in
computer science.
The 1960s saw the development of many more languages, many based on
these four. But these four languages grew in use more than any other: Fortran in
industry; Algol 60 in academia; Lisp mainly in the field of artificial intelligence
in computer science departments; and COBOL in data processing activities with-
in industry.
The software crisis
The problem throughout the 1960s was that the appetite for more function-
ality in programs outgrew the capability of the programmers to produce them.
There was relatively little research on programming itself, so there was little
progress on how to design, develop, test, and debug programs. As project teams
and their proposed products grew in size, more and more projects failed to meet
their deadlines, went way over their budgets, or were disbanded as failures.
People talked of the software crisis .
As an illustration of the problem, clients reported hundreds of errors each
month with one operating system, and fixing these errors inevitably introduced
more errors. Imagine how many people had to be employed simply to process
error reports, find the source of errors, fix them, and disperse the changes to cus-
tomers. (There was no internet at the time, so communicating software changes
to clients was not easy.)
Here were some of the issues that faced programming teams. How does one
write program parts that can easily be reused? How does one design a large pro-
gramming system? How does one manage a programming team consisting of ten
or more (sometimes hundreds of) people? How is a large programming system
to be tested and debugged as pieces of it are completed? How does one control
the different versions of parts of the system, as pieces are created, tested,
debugged, and changed? When a large system is finally given to customers, how
is it to be maintained —changes have to be made due to error reports, to requests
Search WWH ::

Custom Search