In order to immedietly start a flamewar, I'm going to lay down a few definitions that this tribe was created to operate with. We're concerned with languages where:
* Everything is an object
* Types are dynamic
Prototype based languages like Self are intended to be included as they meet the above.
This neccesarily excludes languages like C++: "I invented the term Object-Oriented, and I can tell you I did not have C++ in mind."
— Alan Kay
New to object-oriented programming? Curious about it? Check out the following:
* www.squeak.org/
* www.research.sun.com/self/
Have a different point of view? Then post! :-)
* Everything is an object
* Types are dynamic
Prototype based languages like Self are intended to be included as they meet the above.
This neccesarily excludes languages like C++: "I invented the term Object-Oriented, and I can tell you I did not have C++ in mind."
— Alan Kay
New to object-oriented programming? Curious about it? Check out the following:
* www.squeak.org/
* www.research.sun.com/self/
Have a different point of view? Then post! :-)
-
Unsu...
Re: What it is, what it ain't.
Sat, November 15, 2003 - 3:16 PMHey, man. Kenneth turned me on to this tribe.
What it is... It's a different way of thinking. Moving away from clock-work, linear thought. It's more about designing a cortex that (limitedly) can operate on it's own.
We've seen supposed OOP code that's really just a procedural solution stuffed into object structure. I've written aboniations like this myself. I think it's something that requires complete "buy-in".
-
Re: What it is, what it ain't.
Sat, November 29, 2003 - 12:22 PMHow about languages like CL (as in CLOS) or Dylan? Are they good? -
-
Re: What it is, what it ain't.
Sun, January 25, 2004 - 4:45 AMWelcome. Note my timely reply.:-)
A different way of thinking is an understatement. It's understanding programming as a structural expression of the components, rather than a "this connects to here" linear expression of functions.
That'd probably be an excellent debate/topic/brainstorm: a modern, experiential definition of OO...
The last part, "procedural code stuffed into an object structure" has it's own name, "POOP", or "Procedural Object Oriented Programming"
And I believe on the last point, you're correct. A "complete buy-in", though I think the term "complete immersion" sounds a bit more elegant. :-)
What I've found to be a good starting point is just to look at Self or Smalltalk (Squeak) distributions and examine any given structure, see how it fits together. Principles at the low level are the same as principles at the high level. Nearly "kernal-level" code in squeak is as easy to understand as most of the widget classes. That level of consistant readability across the scope of a system is rarely seen.
-
Re: What it is, what it ain't.
Sun, January 25, 2004 - 4:46 AMCL I do not know as much about, though I know that ML has an OO variant called CAML which looks interesting...
Dylan is a "compromise with the real world", the last distribution i looked at allowed inlining of C-objs.
Check out Eiffel, too. -
-
Re: What it is, what it ain't.
Fri, February 13, 2004 - 3:47 AMI found this article that describes the CL object system:
home.comcast.net/~prunesqu...guide.html
-
-