Key Points About Simula:
- Simula, from history, is considered the first object-oriented programming (OOP) language ever.
- The name Simula was obtained from two (2) simulation programming languages.
- This OOP was created in 1962 to cater to simulations.
What Is Simula: Explained
Simula, an acronym for Simulation Language, is touted as the first object-oriented programming language created by Norwegian developers Ole-Johan Dahl and Kristen Nygaard in 1962 when determining how programs can model or simulate the world as seen by computer users.
According to IT experts, Simula changed the narrative of programming languages, designing them around objects instead of linear functions or procedures. In essence, Using this OOP language, objects could communicate through messages, modeling the traditional idea of receiver and sender.
Quick Facts
- Creator (person)
- Ole-Johan Dahl and Kristen Nygaard.
- Release Date
- 06/05/1967
- Operating System
- Unix-like, Windows, z/OS, TOPS-10, MVS
- Developed By (company)
- Norwegian Computing Center in Oslo.
Its major characteristic is that it can serve as a framework for special application languages, thanks to how it can be easily structured to suit specialized problem areas.
Inarguably, its use led to the introduction of a few other programming languages, such as Java, C++, and other new OOP systems and languages. Also, the general algorithmic language, ALGOL 60, is a subset of Simula 67.
How to Learn Simula
As mentioned earlier, the name “Simula” was derived from two simulation programming languages, Simula 67 and Simula I. As the name implies, this OOP was originally introduced for simulations: designed as a general-purpose programming language, the software served as a framework for several features of the various present-day object-oriented languages.
Simula introduced classes, subclasses, objects, virtual procedures, inheritance, discrete event simulation, etc. Since its introduction, the object-oriented programming language has been instrumental in various applications, including Process Modelling, Very-Large-Scale Integrations, Algorithms, Communication Protocols, Typesetting, Education, Computer Graphics, and others.
Simula and Simula-type objects are also reimplemented in modern programming languages, such as C++, Java, C#, Object Pascal, etc.
The Difference Between Simula Vs. Smalltalk
Simula primarily described objects as procedures returning pointers to their respective activation records. In essence, the OOP was based on Procedures Activation Records.
Although also an object-oriented programming language, Smalltalk, on the other hand, is a dynamically-typed reflective programming language created to underpin the new era of computing. Originally released as Smalltalk-80, the programming language was partially designed for educational use, particularly constructionist learning. Smalltalk was created by Alan Kay, Adele Goldberg, and Dan Ingalls in 1972, 10 years after Simula was introduced.
Pros of Simula
- Aided the simulation of complex computing systems.
- Simula 67 serves as the framework for most mainstream OOP languages available now, including C# and Java.
- This OOP also makes it easier to write new concurrency abstractions, such as schedulers.
- Features automatic memory management, including garbage collection.
Pros of Smalltalk
- Smalltalk makes it easier to learn Object-Oriented Programming.
- It eliminates cognitive stress in many OOP languages, including Java.
- Smalltalk aids faster development.
- Smalltalk is a hobbyist language.
Cons of Simula
- The complexity of creating programs.
- Steep learning curve.
Cons of Smalltalk
- Smalltalk doesn’t support preemptive multithreading.
- Smalltalk isn’t expressive, making it unsuitable for more complex syntaxes, such as Rust, Haskell, etc.
- Smalltalk may be slower for certain applications.
Simula Release History
Kristen Nygaard, an MS in mathematics at the University of Oslo, started writing computer simulation programs in 1957. He was seeking a better way to describe the heterogeneity and the operation of a system. To go further with his ideas on a formal computer language for describing a system, Nygaard realized that he needed someone with more computer programming skills than he had; thus, he contacted Ole-Johan Dahl, also an MS in mathematics and one of Norway’s foremost computer scientists, who joined him in January 1962.
By May 1962, the main concepts for a simulation language were set. “SIMULA I” was born, a special-purpose programming language (similar to ALGOL 60) for simulating discrete event systems. SIMULA I was fully operational on the UNIVAC 1107 by January 1965. Dahl and Nygaard spent a lot of time teaching Simula in the following years. This development spread to several countries worldwide and was later implemented on Burroughs B5500 computers and the Russian URAL-16 computer.
In 1966 the British computer scientist Tony Hoare introduced the concept of record class construct, which Dahl and Nygaard extended with the concept of prefixing and other features to meet their requirements for a new generalized process concept. The first formal definition of Simula 67 appeared in May 1967. In June 1967, a conference was held to standardize the language and initiate several implementations. Dahl proposed to unify the type and the class concept. This led to serious discussions, and the board rejected the proposal. It was formally standardized at the first meeting of the SIMULA Standards Group in February 1968.
Simula: End of Development
Simula was designed and developed between 1962 and 1967 by Kristen Nygaard and Ole-Johan Dahl at the Norwegian Computing Centre (NCC) in Oslo.
However, the Simula programming language didn’t enjoy wide usage, primarily because of the few limitations it featured, including the complexity of using it to create programs. Nonetheless, it was significantly influential in the present-day programming world, including introducing important Object-Oriented Programming languages and concepts, including dynamic binding, inheritance, classes and objects, etc.
The image featured at the top of this post is ©Norwegian Computing Center, Ole-Johan Dahl & Kristen Nygaard / Public domain, from Wikimedia Commons, the free media repository.