Object Oriented Programming (OOP) started with Simula in Norway in 1967.
The operating system is like our soul, it gives life to the computer. But without application
programs, the computer is of no value. The operating system is the connection between the hardware
and usable programs. We use the keyboard, mouse etc to communicate with our applications via the
operating system. It is important to understand the difference between learning a programming
language and learning how to construct a program.
"This distinction has some similarity to the distinction between learning the precise rules for writing musical scores and learning how to compose music: the former is not very difficult (and arguably not very interesting in itself), while the latter is rather more demanding and also more rewarding."
Bjørn Kirkerud (1989): "Object oriented programming with SIMULA" - Addison Wesley page 3.
SIMULA, as the name indicates, has a connection to simulation. In short it tries to simulate the properties of real objects. As an example,
click on the link to DnB NOR, the largest Norwegian
bank. You may note that you are taken to a secure page. Rightclick on the page and choose properties.
Encapsulation is very important, think of an automaton. Access to the inner (protected and private parts) is achieved through buttons on the front panel. The program is natural,
nearly selfdocumented and still used at the university of Oslo. Here are some links related to SIMULA:
Nera, a global provider of wireless
products and solutions is located near IT Fornebu, the new IT center outside Oslo.
In the srping of 2005, I participated on a Microsoft seminar in Oslo with Anders Hejsberg, coauthor of the book "The C# Programming Language" and developer of the language. C# is the last language in the Visual Studio .net code model API. One of the basic use of the code model is to find code that's already there. It gives you the tools to enumerate all the code constructs in a project. The C# Code Editor with its acceleration keys and IntelliSense feature dramatically increases your productivity. It is designed to make the development of your application much easier by
helping you automatically generate code.
Generics reminds me of an article I read in C++ Report (or was it Journal Of Object Oriented Programming)
some years ago. It was about "generic algorithms on function objects", quite general and efficient if you understood it.
C# generics solves a lot of problems. Generics is a mechanism used to
parameterize types (classes,interface etc.) with other types. It is C#'s solution to
using function and class templates
in C++. Bjarne Strostrup knew Simula and C and developed C++. Now his fellow countryman
Anders Hejsberg, is continuing on the same road with C#. The ideal solution, "drawing your software" and let the compiler generate the necessary code is soon a reality.
I wrote a post on a soft introduction to object oriented programming
at the WebProWorld Web Programming Discussion Forum. You will find a lot of resources there that may be
of interest if you are studying object oriented programming.