Nygaard’s work – generalizing object-orientation
and the social implications of computing science
In the seventies Nygaard’s work is characterized by two main aspects.
On the one hand he tried to advance knowledge of object-orientation:
on the other hand he did research for the Norwegian trade unions on
planning, control and data processing, all evaluated in the light of
the objectives of organised labour (1971-1973, together with Olav Terje
Bergo) and on the social impact of computer technology.
As Simula was applied in many different environments, it turned out
that many users seemed to gain a deeper understanding of their problem
domain by having to develop a model using Simula than of the actual
simulation results. The process of describing the application domain
in most cases provided a valuable insight into the modelled application
domain itself. This led Kristen Nygaard to formulate one of his favourite
messages: “To program is to understand”. Programming
should not just be considered a low-level technical discipline where
it is just a matter of getting around the problem. A program should
reflect an understanding of the problem domain.
Nygaard was very interested in the further development of object-oriented
technologies and was thrilled by the enormous success achieved by object-orientation.
In (Meyer, 2002) Ole Lehrmann Madsen describes this as follows: “I
remember when he came back from a visit to Xerox Parc where Alan Kay
had showed him Smalltalk – he was impressed and enthusiastic to
see how ideas from Simula had inspired the Smalltalk team. He was happy
seeing these ideas adapted by languages such as Flavours, Loops, C++,
Eiffel, Java, C#, and many others. He never participated in the critique
of possible shortcomings of other languages – on the contrary
he respected their creators and acknowledged their influence on the
development of OO.”
Nygaard and others decided to develop a successor for Simula focusing
on system description, not execution. This development process lad to
a language called DELTA . Delta made it possible to express true concurrent
objects and to use predicates to express state changes. Nygaard summarized
the objectives of DELTA by citing the original statements in the DELTA
language report: “The purpose of this report is to develop
a conceptual framework for conceiving systems, and an associated system
description language. Our starting point has been a language which is
designed as a tool for both system description and the writing of computer
programs: the Simula language. We have, however, freed ourselves from
the restrictions imposed by the computer, described above. We hope to
have provided a tool which makes it possible to conceive systems in
ways natural to human beings, using and extending the properties of
programming languages, making it possible to combine algorithmic, mathematical
and natural language modes of expression.” (Nygaard, 1997)
From 1973-1975 Kristen Nygaard was a visiting professor at Aarhus University,
Denmark. During this period a project was started to develop a programming
language based on the DELTA ideas. This language should be a (programming
language) successor to Simula and was called GAMMA. Since it was a common
assumption in the seventies that a general programming language was
not usable as a systems programming language, they defined a system
programming language to be used to implement GAMMA. This language was
called BETA. Finally, the machine level language was called ALPHA.
The results for DELTA were described in a comprehensive report and it
was later used in a few projects but it never achieved widespread distribution.
The attempts to formalize DELTA by means of Petri Nets produced another
language called EPSILON. The GAMMA language was never developed. During
the work on BETA it was realized that there was no need for GAMMA. Because
of BETA’s powerful abstraction mechanisms, the GAMMA level could
be handled by supplying class libraries and frameworks.
The early work on BETA was started in 1975 as the Joint Language Project
(JLP). The initial purpose for this language was: “(1) To
develop and implement a high level programming language as a projection
of the DELTA system description language into the environment of computing
equipment. (2) To provide a common central activity to which a number
of research efforts in various fields of informatics and at various
institutions could be related.” (Nygaard, 1997)
BETA supports the object-oriented perspective on programming and contains
facilities for procedural and functional programming. This description
builds on definitions given in (Madsen, 1993) where object-oriented
programming is defined as: “A program execution is regarded as
a physical model, simulating the behaviour of either a real or imaginary
part of the world”.
In BETA classes, procedures, functions and types are replaced by a single
abstraction mechanism called the pattern (Kristensen, 1983). It generalizes
virtual procedures to virtual patterns, streamlines linguistic notions
as nesting and block structures, and provides a unified framework for
sequential and concurrent execution.
Nygaard’s work on the social implications of computing science
had its roots in the mid sixties. His interests were influenced by the
then current situation that governed the political formation of opinion.
The historical context was the following: “Historically the
starting point for user participation in system development was the
discussion about the relationship between work and democratic values
in Scandinavia around 1960. …. At that time, it was generally
agreed that industry should level the general democratic principles
in society, and that opportunities for increased individual engagement
should be created as a means to increase productivity and efficiency
… A large action programme for improving the working life in Scandinavia
was designed and conducted as an industrial democracy programme by The
Norwegian Federation of Trade Unions (LO) in cooperation with The Norwegian
Employers’ Federation (NAF). NAF was interested in rationalisation
and improved organisational development; LO wanted to empower the workers.
One of the results of the Cooperation Projects was a revised Worker
Protection and Working Environment Act (AML 1977) … The AML’s
section 12 states that workers and their representatives shall be kept
informed about systems used for planning and performing work, and about
planned changes in such systems. Sufficient education for using the
systems, and participation in the design process is emphasised. The
main idea is that the workers themselves shall control and be responsible
for performing work.
Within this cooperative climate, some more explicitly stated political
projects were carried out to support and strengthen the trade unions.
Stronger trade unions were supposed to contribute to democracy by giving
workers a voice and an opportunity to influence their work situation.
The trade unions were part of the existing power structures in society
established to empower the workers.” (Bjerknes, 1995)
As pointed out in the previous section, Nygaard began to cooperate with
the Trade Unions. He was a member of the discussion group formed to
look into the potential implications of information technology. One
important aspect at the beginning was that its members should improve
their own competence in information technology. Nygaard saw the situation
as follows: “We never considered building that competence
by teaching to union members the curriculum used by programmers, engineers
or managers. Knowledge is organized for a purpose and reflects the world
view of the authors in terms of corporate values, power structures,
objectives to be achieved etc. Uncritical acceptance of such material
would make us brainwash ourselves. What we needed was a reevaluation
of the use of information technology based upon the world view of the
union members, emphasizing solidarity, industrial democracy, safe employment,
safe working conditions, decent wages etc.
Since no such exposition of information technology did exist, we concluded
that it was a research task to produce one. In Norway the Royal Norwegian
Council for Scientific and Industrial Research is supporting a wide
range of projects in information technology, and the Norwegian Iron
and Metal Workers’ Union decided at its convention in 1970 to
apply for money to ‘evaluate planning, control and data processing,
based upon the perspective of organized labor’ and to ask the
Norwegian Computing Centre (where I was working) to carry out the project.”
(Nygaard, 1992) The Union got the funding and the NCC got the contract.
This project was the first about participatory design carried out by
the Norwegian Iron and Metal Workers’ Union. The project started
at the beginning of January 1971 and ended nearly two and a half years
later. The project’s objective was to apply the workers’
perspective to the development and introduction of new technology in
order to produce an action plan that would represent and strengthen
the workers’ position with respect to the introduction and use
of computer technology. This work was a starting point in the so-called
area of ‘participatory design’.
The project emphasised that knowledge gained locally should form a basis
for the trade unions to act on a central level. The results from the
project included technology agreements, textbooks and vocational training
programmes on technology (Bjerknes, 1995).