Skip to main content

II. Object Oriented Programming and Design

Posted in

An Introduction to Object Oriented Programming and Design, and TradeStation OOEL (Object Oriented Easy Language)

A. The Beginning of Object Oriented Programming

The first language to use the concept of Objects was Simula 67. It was created in the early 1960's by Kristen Nygrad and Ole-Johan Dahl in Norway. As the name suggests, it was created to make simulations easier to program and maintain. Simula was the first to introduce the concept of a class**.

However, the first language to be considered full blown Object Oriented was Smalltalk. Smalltalk was somewhat of a spin-off of Simula 67, but was the first language to introduce the concept of inheritance**. It was this feature that allowed Smalltalk to surpass Simula 67 in both commercial and experimental use. It was created by Alan Kay from the University of Utah, and was later sold to Xerox Parc. Interestingly, Smalltalk still exists today but is used very little in the commercial world.

B. The Results of the Object Oriented Movement

The idea of using objects as the basis for a language caught on fire in the 1970's and early 1980's. As a result, Bjorn Stroustrup, the Chairman of Computer Science at Texas A&M University, took the language C and integrated object oriented capabilities. The experiment resulted into the creation of the OO programming language C++, which would quickly became the most widely commercially used language in the world. To this day, C++ is still one of the most commonly used languages and Stroustrup is considered one of the most distinguished software engineers ever.

C. The Influence of C++ on Modern Object Oriented Programming

In the Early 1990's, a software engineer from SUN Microsystems, named James Gosling, a PHD from Carnegie Mellon, along with Patrick Naughton and Mike Sheridan set out to create a new technology that could take advantage of the internet boom. The group would eventually end up calling their endeavor the Green Project. It was a 2+ year project that resulted in to a new programming language called Java.

Why another object oriented programming language?

Java was a spin-off of C++ but was meant to remove all of the weaknesses of C++ and to make it easier for programmers to write internet based programs. Along with that, the second aspect of Java, and many world argue the most important, Java is platform independent**. At the time, a language that was platform independent was considered an extremely novel idea. This means that a Java program could be run on a windows platform, Macintosh platform, UNIX, and such, without having to change the code.

The promises of Java created a massive amount of attention. But that was the very thing that hurt Java when it was first launched. It was a language that had many promises but failed to live up to those novel ideas. It was extremely slow and creating a GUI for the internet or a simple application was a quite a project.

However, from its launch in 1995, version 1.0, to the modern Java, version 6, the majority of those who have used Java would probably say it has met its promises and went way above and beyond. It is now one of the most, if not the very most commercially used language in the world. There are companies and internet sites, such as www.devtopics.com, that measure the commercial uses of programming languages. Java is ranked the highest according to most sources. However, determining the most commercially used language is without question not a science. And many would argue that C++ is still the most popular.

From a commercial standpoint, whether its C++, Java, or Visual Basic, Java has without question brought to the world of software engineering a very flexible and easy to use object oriented language.

D. In Conclusion

As mentioned above, C++ and Java, by most measures, are the most popular languages for creating commercial and IT programs. However, the number of Object Oriented languages since the turn of the millennium, has exploded. To even begin to touch on them is way beyond the scope, and point, of this brief introduction.

Further, what has also occurred, is that languages that have existed for years, that were not Object Oriented, have implemented OO abilities in to their language. From Cobalt to Turbo Pascal, to Microsoft's Visual Basic. And for those who use Easy Language, they are well aware of this movement. In other sections of this Blog, we will examine why OO abilities seems to be a natural part of the evolution of most languages. Then, how to deal with this evolution if one is not familiar with Object Oriented Programming and Design.

_______________________________________________________________

Note1:
For an extensive look at the origins of Object Oriented programming, you can find it at: http://en.wikipedia.org/wiki/Object-oriented_programming

It goes into great details, but somewhat assumes the reader already has a strong background in Object Oriented Programming.

Note2:
Any topic marked with a double asterisk ( "**"), will be disguised in great detail in future blogs. However, for those that are curious, using Google will provide more information that you could ever need. But you can be sure future blogs will provide an enormous amount of information and examples in a well organized manor.

The three topics marked with a double asterisk are:
1. Classes
2. Inheritance
3. Platform Independent.

I searched multiple web sites, and for those who do not want to wait until this blog covers those topics, you may be interested in the following sites:

1. Classes -
a. http://en.wikipedia.org/wiki/Object-oriented_programming
b. http://download.oracle.com/javase/tutorial/java/concepts/class.html

2. Inheritance -
a. http://en.wikipedia.org/wiki/Inheritance_(object-oriented_programming)
b. http://download.oracle.com/javase/tutorial/java/concepts/inheritance.html

Platform Independent -
a. http://wiki.answers.com/Q/What_is_platform_independent
b. http://www.geekinterview.com/question_details/36273

_________________

BLOG Resources:
1. The Java Handbook by Patrick Naugton
2. The Java Class Libraries by Patrick Chan and Rosanna Lee
3. Patterns in Java by Mark Grand
4. Sun Certified Programmer and Developer for Java 4 by Kathy Sierra and Bert Bates
5. http://www.exforsys.com/tutorials/oops/the-history-of-object-oriented-programming.html



See some powerful OOEL Indicators and Strategies "OOEL Indicators and Strategies".