Object oriented programming and Objectivist Epistemology

Oh, yeah, there’s a link to it in Thales’s thread: http://www.objectivistcenter.org/events/advsem03/ReedOOP.pdf.

I’m not sure what should happen with my thread, I haven’t seen the old one when I made it. I am though more interested in specific things Rand had to say about the subjects (if anything), and a discussion of those. If there isn’t anything, i guess there’s no reason for this new thread.

As far as your link to Grady Booch, the problem is that OOP was in place (with the language the ReedOOP PDF mentions – Smalltalk), before Mr. Booch even went to college. So sure, he’s a fan of Rand’s, but according to the PDF (which talks to them directly), the people who created Smalltalk never heard of her, they were influenced by a couple of guys who were looking at epistemology from the perspective of cognitive psychology.

Oh, yeah, there’s a link to it in Thales’s thread: http://www.objectivistcenter.org/events/advsem03/ReedOOP.pdf.

I’m not sure what should happen with my thread, I haven’t seen the old one when I made it. I am though more interested in specific things Rand had to say about the subjects (if anything), and a discussion of those. If there isn’t anything, i guess there’s no reason for this new thread.

As far as your link to Grady Booch, the problem is that OOP was in place (with the language the ReedOOP PDF mentions – Smalltalk), before Mr. Booch even went to college. So sure, he’s a fan of Rand’s, but according to the PDF (which talks to them directly), the people who created Smalltalk never heard of her, they were influenced by a couple of guys who were looking at epistemology from the perspective of cognitive psychology.

Ayn Rand’s work was published as a series of articles in “The Objectivist” from 1966 through 1967, before it was published as the book “Introduction to Objectivist Epistemology”.

Just to make it clear, there are also very big differences between the two. Ayn Rand’s method refers to how the human mind acquires knowledge via concept formation, from sense data, to perception and then concepts.

Her idea of “measurement omission” is no where in OO, nor is her idea that the concept “unit” is a bridge between the epistemological and metaphysical “units are things viewed by a consciousness in certain existing relationships.” And there are many more fundamental differences, not the least of which is that Ayn Rand’s work is far deeper and more revolutionary.

Also, Object Oriented Modeling is more of a top down approach, where you create the object type first, and from the object you generate instances. In a way it’s more of a Platonic idea.

Ayn Rand’s philosophy is what influenced OO Programming.

Here, check this link out

http://forum.ObjectivismOnline.com/index.p…aded&start=

Isn’t that just a link to the first post in this very thread? Or did you intend to link to something else?

John Link

Ayn Rand’s work was published as a series of articles in “The Objectivist” from 1966 through 1967, before it was published as the book “Introduction to Objectivist Epistemology”.

Yes, but the guys who built Smalltalk specifically sayd they didn’t read that stuff, at the time.

John, the threads got merged after Thales’s post.

Yes, but the guys who built Smalltalk specifically sayd they didn’t read that stuff, at the time.

John, the threads got merged after Thales’s post.

Right, their work was probably done independently, but Plato’s world of forms is similar idea. The idea of “universals” has been around for a very long time.

Just to make it clear, there are also very big differences between the two. Ayn Rand’s method refers to how the human mind acquires knowledge via concept formation, from sense data, to perception and then concepts.

Thales while I trust your understanding of Objectivism and Ayn Rand I am guessing you are not well studied in programing or we could just have a different view. Certainly Ayn Rand was talking about how man forms concepts whereas Booche and the creators of Smalltalk were programing computers.

Her idea of “measurement omission” is no where in OO, nor is her idea that the concept “unit” is a bridge between the epistemological and metaphysical “units are things viewed by a consciousness in certain existing relationships.” And there are many more fundamental differences, not the least of which is that Ayn Rand’s work is far deeper and more revolutionary.

“Measurement omission” in OO is the difference between an object and a class. A class is a code entity that exist without properties. An object is an instance of a class and it can have properties. Actually I misspoke; the class and the object have the same properties but in the class the properties have no values and are said to be empty. That is measurement omission in action.

The fact that units as bridge… actually I don’t even know what you are saying right there, but think of the achievements of technology as an attempt. An achievement.

Also, Object Oriented Modeling is more of a top down approach, where you create the object type first, and from the object you generate instances. In a way it’s more of a Platonic idea.

One shouldn’t confuse the product of a man’s work with his method. No object is created in programing without first having many, many, many instances. You don’t right a computer program for something you’ve just encountered for the first time. You write it to automate a process you are familiar with. By the time you get it working you will have written every properties name several times as if you were being punished.

Along these lines one should not quibble over Grady or Booche or the Smalltalk guys. They are just the product of a long lineage of technologists and tradesmen.

I have read part of this paper and just printed the rest and I find it fascinating. Suddenly I see history in a long arc from the Greek philosophers building a world view from the ground up instead of the God-down approach, to John Locke building governments from the ground up, to Charles Babbage supposing he could build a physical manifestation of George Boole’s logic. Smalltalk is not a computer programing language, it is the tinkerers approximation of reason.

Much of the languishing in philosophy has been the complaint that you can’t know everything. Boolean logic was an attempt at extending logical assertions to anything but it’s method could not be applied to everything to prove it. That was then.

Back in Greece two people started a race, the philosopher and the technologist. The philosopher started out great, but met a much fuller interpretation in the 20th century. The technologists path has likewise been troublesome but by the work of thousands of them over thousands of year we now have the cumulative fruits of their labor. The thinking machine. Is it a coincidence that it’s structure is objective? How could it be a surprise? It could not have been built otherwise.

Certainly programmers with differing views could put there world views into the product, as they always have, but they will only hinder process. An unstable system will probably also not stand up well as the global internet processing power exceed the capacity of all human minds.

I feel as if you are looking at all the technological efforts from levers and gears to a world-wide light-speed signal web already imbued with semantics and ontology and complaining that it hasn’t achieved unit economy yet.

In any case I really like this PDF. It meshes nicely with something I have been noticing about tradesmen over the ages.

response to xgenx:

class is to object as type is to token. Types as instantiated as Tokens. Sets are one thing, the elements of a set are another, although the second is related to the first by the relation “element of”. A set of numbers is not a number. A set of people is not a person. The Type Person is instantiated as an Individual Person, but is not itself an individual person. Confounding the Type with the Token is characteristic of Platonic thinking.

Can you tell me where measure or measurement enters into this? To have a measurement one needs a linearly ordered set and a function that maps a set of objects into a linearly ordered set. In the absence of a linear ordering there is no measurement.

Bob Kolker

response to xgenx:

Can you tell me where measure or measurement enters into this? To have a measurement one needs a linearly ordered set and a function that maps a set of objects into a linearly ordered set. In the absence of a linear ordering there is no measurement.

Bob Kolker

I can read your examples and counter-examples, but I don’t see where they are going. Are you saying that objects don’t have measurements? Are you saying classes are not objects without measurements?

But instead of guessing at your point let me clarify mine. You might create a class Table. Your Table class might have properties NumberOfLegs, Height, Width, Length and Color, and a method New(NumberOfLegs integer, Length decimal, Width decimal, Height decimal, Color RGBColorValue). In the class none of these properties are populated. The class exists in code as a template. But it is a template whose properties can be populated only through it’s methods. In this simple class the properties are read-only.

When you create an object from this class you must pass in all five parameters of the New method. You cannot create a new Table with Width and Height but without Length. We say that the property values are encapsulated in the object. The object protects it’s data. You can only access the properties through methods of the object, and so the object preserves atomicity. The inquiry into some thisTable.Length would be accessed through an accessor or “get” method that is written into the code.

This is all dependent on how, and how well, you construct your code. But each class is useful only insofar as it will be populated with data, with values, when it is instantiated, when it becomes an object.

So a class is an object without values. How is that not value-omission? Why do I need to describe a “linearly ordered set” in order for this to be true? Are you talking about NumberOfLegs? You want me to describe how to count the number of legs? I think it’s linearly ordered. Is that what you are talking about?

On 12/27/2009 at 12:03 AM, Robert J. Kolker said:

it is highly unlikely that Ayn Rand was aware of such a development in computer software, and it is even less likely that she knew any details concerning computer software.

I’m apologizing for necroposting, Blackwell’s Companion to Ayn Rand, 2016 (page 33) mentions she “read and reread” Computers and Society by S. Rothman and C. Mosman 1, who claim in the preface that their book is “not a programming text”, and indeed they cover things which typically do not belong to programming books (reviews of cutting edge software and hardware of their time, computer networks, “social ecology”). Yet chapter 2 opens with coverage of computer architecture, flow diagrams, machine language, simple algorithms; a few programs are presented in machine language, readers are asked to modify one of them (effectively, all essentials of CSAPP 2 abridged in a single chapter). Every topic ends with a list of quite accessible references. Obviously, there are no mentions of OOP, only “object programs” (“the output in binary machine language”) and Fortran. The second edition (1976) also covers AI techniques of the time.