© 14 May, 2016, MartinRinehart
Choices are also on the menu, above.
- The JSWindows system demonstrates both class-based inheritance and object programming. A major design goal of JSWindows was to be sure no user ever needed documentation for Using JSWindows. These pages are for engineers who need to learn more about the system's UI.
- The JWindows Examples are for engineer's who want to use the system for their own applications.
- The full JSWindows Source Code is for those who like to know how things work.
Notes (below) on this page include yellow reference keys used in the back of the JOP book's "Notes" pages. A reference to "Clss-6" there corresponds to Clss-6 here. (You might want to look that up if you did not know that class-based OOP was now available even in the Cobol language.)
The following links were verified 11 June, 2013; 28 July, 2013; 11 November, 2015.
Conflict of interest: JOP is sold by Amazon (wholesale and retail). Links to Amazon for books in print are, however, common today, even in libraries, as they provide considerable information, well beyond what one might find in a card catalog.
Classics: In chronological order, classic books referenced in JOP are:
Mythical Man-Month, The, Brooks, 1975, on the difficulties in developing software
C Programming Language, The, Kernighan and Ritchie, 1978 (2e, 1988), the best book ever on programming in a specific language, and
Design Patterns: Elements of Reusable Object-Oriented Software, Gamma et al (aka Gang of Four, or GoF), 1994 on designing software.
C++ Programming Language, The, Stroustrup, 1986 (4e, 2013), classic by the original author of C++. C++ Primer Plus, Prata, 2011.
Thinking in C++, V1, Eckel, 2000 (still on your author's shelves).
Java: There are too many Java books and your author has written some of them. This is another author's list.
Core Python Programming, Chun, 2e 2006 (still on your author's shelves).
Visual Basic in Visual Studio 2015 the official Microsoft language site, linking to their books.
Wikipedia on Object-Oriented Programming, Class-Based Inheritance and Prototypal InheritanceOop-WObject-Oriented Programming. The first paragraph is perfect.
Prtp-WPrototype-Based Programming. Ironically, an excellent description of class-based programming. A good summary of the argument for prototypes as opposed to classes.
Clss-WClasses (but beware of the first sentence).
Inst-WInstances (objects), very good beginner's introduction, very poor Wikipedia article.
Mthd-WMethods, another good introduction, but "class" must be defined broadly to not exclude prototypal language methods.
Inhr-WInheritance inadvertently, but correctly, defines "classical" inheritance as OOP inheritance (as opposed to prototypal inheritance). Supports the use of "super," a term to which we object.
Cmp-WComposition over inheritance. The idea is the same, but I hope JOP is less confusing.
Trts-WTraits "Traits" may be close to, or the same as, our "capabilities," but this article is not clear enough for any certainty.
Other Websites on Class-Based Inheritance and Prototypal Inheritance
Oop-1OOP and related terms from Java's source, Sun (now part of Oracle).
Oop-2OOP defined including a good description of classical data modeling.
Oop-3OOP in C# and Visual Basic the gospel according to Microsoft (not different from classical OOP as described in JOP). Cites "full support" for "encapsulation," "inheritance" and "polymorphism."
Oop-4OOP in Python introduced, including another explanation of objects as reducers of complexity.
Oop-5The view from Norway, 1995. Norwegians claim (with considerable justice) to have invented objects and classes.
Prtp-1Overview from princeton.edu. Substantial agreement with Wikipedia. (Now, 11 Nov., 2015, 'is a' reference to the WP article.)
Prtp-2Academic research from Université de Montpellier (France) including basic charts, a must for anyone who cares about the genesis of object programming (or who enjoys French English: "Distinction between variables et[stet] methods").
Prtp-3Prototypes in Python? Yes, in Python.
Prtp-5Advantages of prototypal programming, a forum post answered by one who knows classical and prototypal in game programming.
Clss-2What Is a Class? from Sun (now part of Oracle) the creators of Java.
Clss-3Classes in PHP. PHP, arguably the only important language without OOP, joined the club with PHP5.
Clss-5Classes in OOP according to top authorities like Yourdon and Booch.
Clss-6Classes in Cobol (yes, Cobol!) "OO COBOL implements a classical object model."
Inst-1OOP Terminology Including Instance in Python but applicable to all OOP languages. Good distinction between instance and class variables.
Inst-2Objects, Instance Methods, and Instance Variables, per hws.edu (Hobard and William Smith) solid re the basics. (broken 130728)
Inst-3Objects Defined per marakana.com courseware. Correct, academic-flavored definition (state, behavior and identity).
Inst-4Classes and Objects in Objective CAML for a little variety.
Mthd-1From Think Java, one book on Java. There is no debate on the definition of "method"—an action that an object (or class, for class methods) can perform.
Mthd-2Methods in Ruby.
Mthd-3Methods in C++.
Mthd-4Methods in Fortran with OOP added, Fortran is still important if, for example, you need weather forecasts.
Inhr-1On inheritance in Python.
Inhr-2Definition from kioskea.net neatly demonstrating why we don't use terms like "subclass" and "superclass."
Inhr-4Using Visual Basic, from fau.edu (Florida Atlantic University. Gone as of 11 Nov., 2015).
Inhr-5Traditional Discussion from oregonstate.edu including classic "is a" and "has a" distinction.
Inhr-6Inheritance in Perl, from gantep.edu (University of Gaziantep, Turkey) stands up for Perl (not our favorite language, but now OOP enabled).
Cmp-1Composition versus Inheritance casts another vote for the Gang of Four, in depth.
Cmp-2Composition v. Inheritance, per JavaWorld (limit inheritance to true "is a" relationships).
Cmp-3Composition v. Inheritance v. Aggregation (a distinction that we don't find helpful, but...).
Cmp-4Composition v. Inheritance v. Association from umsl.edu, (University of Missouri, St. Louis in case you wanted to go beyond aggregation. Gone as of 11 Nov., 2015.)
Feedback: MartinRinehart at gmail dot com.
# # #