ArtsAutosBooksBusinessEducationEntertainmentFamilyFashionFoodGamesGenderHealthHolidaysHomeHubPagesPersonal FinancePetsPoliticsReligionSportsTechnologyTravel

OOEL (Object Oriented Easy Language)

Updated on September 10, 2014

OOEL (Object Oriented Easy Language) Learning Resource

Learn about TradeStation OOEL (Object Oriented Easy Language)

What was our experience using OOEL.

Well, when we started our first indicator, we truly did not know what to expect. We started with a very complex indicator called Time Based Volume that was already built using standard EasyLanguage code. The end result was a program that went from over 8,800 lines of code, to less than 300, and a processing time more than 200% faster.

I. All About TradeStation OOEL

OOEL Learning Center

Welcome To Our Blog All About TradeStation OOEL !

Our objectives for this blog are:

1. To learn Object Oriented (OO) concepts such that one is able to place themselves in a position in which they can harness OO powers to the max.

2. To learn OOEL (Object Oriented EasyLanguage) concepts such that one is able to place themselves in a position in which they can harness OOEL's powers to the max.

3. The difference between a language being full blown object oriented, to a language that is simply Object based (like EasyLanguage OOEL currently is).

4. To provide great resources about OO and OOEL. As they say, give a man/woman a fish and they have diner. Teach them to fish and they can have as many diners as they wish.

5. Most Importantly: To break down any walls of anxiety or fear of what OO is and how to use it. Especially when you have mastered a non OO language like EasyLanguage OOEL, but is slowly headed down the road to becoming a full blown Object Oriented language. This can be frustrating for many. So if you are a master of EasyLanguage, but know next to nothing about Object Oriented programming and design, I hope this blog will help you feel you can learn and master the new EasyLanguage OOEL abilities.

6. To provide a free single point of contact for everything about OO and about TradeStation's OOEL.

Here is the link to the Main TradeStation OOEL Blog.

Understanding Object Oriented Programming - This will be very useful to understand TradeStation OOEL

Code Complete: A Practical Handbook of Software Construction, Second Edition
Code Complete: A Practical Handbook of Software Construction, Second Edition

This is simply the best book on software construction that I've ever read. Written by Steve McConnell who does a fantastic job of making this a practical handbook to understand and use object oriented programming.

 

II. Object Oriented Programming and Design

TradeStation OOEL

II. 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 1960s 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 1970s and early 1980s. 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 1990s, 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: Wikipedia

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

2. Inheritance -

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



III. What Is a Full Blown Object Oriented Programming Language Versus an Object Based Only Language

OOEL Article

III. Introduction - What Is a Full Blown Object Oriented Programming Language Versus an Object Based Only Language

To examine the differences between a full blown Object Oriented (OO) language, versus an object based only language, we must first define a full blown Object Oriented language. Then, define an Object Based language and investigate the differences.

A full blown Object Oriented language is one that supports the following four features, or you could say functionalities. To be consistent, lets refer to them as features throughout this blog (Also, because there are languages termed "functional", that have different characteristics than an Object Oriented language, we will stick with the term "features").

The four features that make a language full blown Object Oriented are:

1. Abstraction

2. Encapsulation

3. Inheritance

4. Polymorphism

Now, this is the hard part to teaching those not familiar with OO languages. In order to define these four features, you must give examples. So, I could give examples in Java, C++, or any full blown Object Oriented language. But because my reader base are mostly easy language developers, that would defeat the point. I cannot assume my reader base knows any one particular language except Easy Language.

So, then naturally that begs the question "why not use EasyLanguage OOEL (Object Oriented Easy Language) to create examples." Well, because OOEL is not yet a full blown OO language, it of course is not possible to create 4 original examples. So now what? Well, thankfully, OOEL does provide a full blown OO library that we can use for examples. Again, I would prefer to create my own examples, because it makes learning these four features easier, however, again, because OOEL is not yet full blow Object Oriented, the libraries will have to do the job.

However, before we start that, I must assume the curious reader. For the curious reader, I am going to provide some links. I apologize the constant use of Wikipedia, but to be honest, and I have taken my time in finding resources, and Wikipedia provides not only some of the best definitions, but other resources. Thus, before I move forward, let me provide some resource links.

And again, we are going to go over each one in depth, so my reader is familiar with each feature. But there is always the eager reader that does not have time to wait for me:)

One more thing, I will be using pseudo code in order to generate what a future class in OOEL may look like. So what is pseudo code? Pseudo code is basically a way to express code that could apply to any language. Pseudo code could never be compiled, because, well it's not an actual language. It's a high level description of a computer program, or lines of a program, that expresses any language, but reads like English (assuming on speaks and writes in the English language). Feel free to Google on "pseudo code" for those not familiar with the term. I will take actual code in Easy Language and express it in pseudo code so one gets an idea of how and why pseudo code is used.

Here are some resources, on the four features mentioned above, for the curious reader that will assist them understand what exactly makes a language Full Blow Object Oriented.

1. Abstraction -

a. Wikipedia

b. http://www.mymindleaks.com/blog/article/object-oriented-programming-abstraction.html

2. Encapsulation

a. Wikipedia

3. Inheritance

a. Wikipedia

4. Polymorphism

a. Wikipedia

b. http://www.inf.ufsc.br/poo/smalltalk/ibm/tutorial/oop.html#poly





A. What is an Object?

Before we dive in to the four features mentioned in III. Introduction

, to discuss Object Oriented Programming we must define what exactly is an "Object".

An object can be considered a group of code, related to one another, to represent an "object or concept in the real world". Most only use the word Object. However, as you read more, I will explain why I mention the term "concept" also.

An object my be a person, car, house, a Tradestation chart, or an MS excel sheet. A concept could be a Vector, a TradeStation Strategy, Indicator, and the such. However, to be consistent with Object Oriented language we will group everything in to an Object. Although as someone's "thought" is not an actual object, it is more of a concept, in the Object Oriented world it would be considered an Object. If a programmer started to design a program to represent people's thoughts, they would design it such that their thoughts are objects. Which is why it's not called Object Concept Oriented Programming. It of course is only called Object Oriented Programming

The actual code implementation, and an actual instance of the object, is created using a "class". Thus, a class simply represents the object in terms of actual lines of code. Whether that code be in Java, C++, C sharp, and OOEL. An example of a class in OOEL is a Vector. To actually use that object, we "instantiate" the class that represents the object.

Lets look at this in TradeStation OOEL. Vector is an Object in programming, the code behind the vector is a class. To create an instance of the Object, we declare a variable to the class, and use the EasyLanguage OOEL key words "new".

Vars:

Vector LastNames(null).

LastNames = newVector;

{This creates an instance of the class Vector. The class vector has been created for us by TradeStation to represent the concept, or should we say object - Vector. In this situation we create an instance to hold Last Names}



What area would you like more information in regards to TradeStation OOEL

    0 of 8192 characters used
    Post Comment
    • profile image

      bernadettebrett 

      8 years ago

      We do like this stuff, good work guys.

    • profile image

      robertrupert66 

      8 years ago

      Looking forward for the great result.

    • profile image

      robertrupert66 

      8 years ago

      Get involved in a language standardization effort.

    • profile image

      shellybenelli 

      8 years ago

      This is more important than any book or training course.

    • profile image

      ianjulian09 

      8 years ago

      The important thing is knowing where to find reference material. Great site.

    • profile image

      loiusereese 

      8 years ago

      Don't be ashamed if you don't remember everything by heart; that comes with time. Nice lens.

    • profile image

      carlyharley01 

      8 years ago

      For most people, programming something that interests them or that they can use is more interesting than textbook examples.

    • profile image

      alexandergrinder 

      8 years ago

      Make sure you understand the concept. Good job guys.

    • profile image

      staceytracey01 

      8 years ago

      Experienced programmer for recommendations before dumping money on what may be very well-hyped fluff. Good lens.

    • profile image

      giodale91 

      8 years ago

      Browse and join message boards so you can be exposed to the techniques and discussions of a dynamic programming community. Good lens.

    • profile image

      richmonddiamond 

      8 years ago

      Tutorials of any sort are not sufficient to learn a language well.

    working

    This website uses cookies

    As a user in the EEA, your approval is needed on a few things. To provide a better website experience, hubpages.com uses cookies (and other similar technologies) and may collect, process, and share personal data. Please choose which areas of our service you consent to our doing so.

    For more information on managing or withdrawing consents and how we handle data, visit our Privacy Policy at: https://hubpages.com/privacy-policy#gdpr

    Show Details
    Necessary
    HubPages Device IDThis is used to identify particular browsers or devices when the access the service, and is used for security reasons.
    LoginThis is necessary to sign in to the HubPages Service.
    Google RecaptchaThis is used to prevent bots and spam. (Privacy Policy)
    AkismetThis is used to detect comment spam. (Privacy Policy)
    HubPages Google AnalyticsThis is used to provide data on traffic to our website, all personally identifyable data is anonymized. (Privacy Policy)
    HubPages Traffic PixelThis is used to collect data on traffic to articles and other pages on our site. Unless you are signed in to a HubPages account, all personally identifiable information is anonymized.
    Amazon Web ServicesThis is a cloud services platform that we used to host our service. (Privacy Policy)
    CloudflareThis is a cloud CDN service that we use to efficiently deliver files required for our service to operate such as javascript, cascading style sheets, images, and videos. (Privacy Policy)
    Google Hosted LibrariesJavascript software libraries such as jQuery are loaded at endpoints on the googleapis.com or gstatic.com domains, for performance and efficiency reasons. (Privacy Policy)
    Features
    Google Custom SearchThis is feature allows you to search the site. (Privacy Policy)
    Google MapsSome articles have Google Maps embedded in them. (Privacy Policy)
    Google ChartsThis is used to display charts and graphs on articles and the author center. (Privacy Policy)
    Google AdSense Host APIThis service allows you to sign up for or associate a Google AdSense account with HubPages, so that you can earn money from ads on your articles. No data is shared unless you engage with this feature. (Privacy Policy)
    Google YouTubeSome articles have YouTube videos embedded in them. (Privacy Policy)
    VimeoSome articles have Vimeo videos embedded in them. (Privacy Policy)
    PaypalThis is used for a registered author who enrolls in the HubPages Earnings program and requests to be paid via PayPal. No data is shared with Paypal unless you engage with this feature. (Privacy Policy)
    Facebook LoginYou can use this to streamline signing up for, or signing in to your Hubpages account. No data is shared with Facebook unless you engage with this feature. (Privacy Policy)
    MavenThis supports the Maven widget and search functionality. (Privacy Policy)
    Marketing
    Google AdSenseThis is an ad network. (Privacy Policy)
    Google DoubleClickGoogle provides ad serving technology and runs an ad network. (Privacy Policy)
    Index ExchangeThis is an ad network. (Privacy Policy)
    SovrnThis is an ad network. (Privacy Policy)
    Facebook AdsThis is an ad network. (Privacy Policy)
    Amazon Unified Ad MarketplaceThis is an ad network. (Privacy Policy)
    AppNexusThis is an ad network. (Privacy Policy)
    OpenxThis is an ad network. (Privacy Policy)
    Rubicon ProjectThis is an ad network. (Privacy Policy)
    TripleLiftThis is an ad network. (Privacy Policy)
    Say MediaWe partner with Say Media to deliver ad campaigns on our sites. (Privacy Policy)
    Remarketing PixelsWe may use remarketing pixels from advertising networks such as Google AdWords, Bing Ads, and Facebook in order to advertise the HubPages Service to people that have visited our sites.
    Conversion Tracking PixelsWe may use conversion tracking pixels from advertising networks such as Google AdWords, Bing Ads, and Facebook in order to identify when an advertisement has successfully resulted in the desired action, such as signing up for the HubPages Service or publishing an article on the HubPages Service.
    Statistics
    Author Google AnalyticsThis is used to provide traffic data and reports to the authors of articles on the HubPages Service. (Privacy Policy)
    ComscoreComScore is a media measurement and analytics company providing marketing data and analytics to enterprises, media and advertising agencies, and publishers. Non-consent will result in ComScore only processing obfuscated personal data. (Privacy Policy)
    Amazon Tracking PixelSome articles display amazon products as part of the Amazon Affiliate program, this pixel provides traffic statistics for those products (Privacy Policy)
    ClickscoThis is a data management platform studying reader behavior (Privacy Policy)