Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

I think I finally get why Harper called

Name: Anonymous 2014-11-22 6:58

OOP "inherently anti-modular".

You see, in object-oriented programming (as opposed to class-oriented programming like C#) objects' structure is mutable. You can add, remove and modify slots and methods any time you want. But what happens if one imports an object from another module and expects that object to have a method hax of the type Anus -> HaxedAnus? That's right, that method could disappear at any time, or it could change to an int -> () at any time (e.g. as a result of sending other messages from that module), and everything breaks down. So in OOP, a module can't really export a reliable abstract specification of itself. The only thing you know about another module without seeing the implementation it encapsulates is... nothing! That's why OOP is indeed inherently and by design anti-modular.

Name: Anonymous 2014-11-22 7:11

harper
oop
c#

asm, c and lisp only

Name: Anonymous 2014-11-22 7:23

>>2
You're a fundamentalist idiot. Also, Common Lisp is OOP.

Name: Anonymous 2014-11-22 7:30

>>3
Fucken nigger. Good taste is fundamentalism? I club you upon the head nigger. I club you and club you and club you. Fucken nigger never learns. Stubborn boneheaded fuck.

You cannot educate a nigger. I'm tired of clubbing the boneheaded nigger.

Bone headed nigger. I club him

I club him

I club him

"You understand?"

Nigger does not understand.

I club him

I club him

Year after fucken year

Name: Anonymous 2014-11-22 7:32

Asm, C++, and Scheme. Different strokes for different folks.

Name: Anonymous 2014-11-22 8:24

>>4
You cannot even give reasons why you think it's "good taste". Because you're a lazy idiot who knows only three languages and understands none.

>>5
The only even remotely modular one is C++.

Name: Anonymous 2014-11-22 8:34

The only even remotely modular one is C++.
Someone hasn't read her SICP.

Name: Anonymous 2014-11-22 9:00

>>7
Wait, Scheme does have functors.

http://wiki.call-cc.org/man/4/Modules

Yeah, I guess it's modular. Unless it's just this specific implementation that has functors. With Scheme, it's difficult to tell, because the implementations are so inconsistent.

Name: Anonymous 2014-11-22 23:32

>>1
Alan Kay's influence was biology. Enforcement of modularity suffers but encapsulation is taken to a new standard. Each object has such a degree of encapsulation that nothing but that object can determine how it will react under a given operation.

You can't have both at the same time. But looking at it the other way, the interface signature isn't the only thing you might want to enforce. The hard part is getting Liskov (the "L" in SOLID) right, which people fuck up with classes all the time. Signatures help but only so much.

OOP is pretty good for simulations since everything communicates with messages, if something does the "wrong" thing it fails to do anything interesting, but doesn't break down the sim. I don't think we've gone far enough with that, but sadly modern Smalltalk is "baby shit", Lua and Ruby and Javascript have all gone ENTERPRISE and everything else is under the radar.

Name: Anonymous 2014-11-23 0:00

Any language with runtime reflection can break through any encapsulation as well.
In fact even every compiled language can be broken by dynamically rewriting the machine code at runtime.

Nothing is ever safe from willful encapsulation penetration.

Name: Anonymous 2014-11-23 0:12

>>7
his*
transhomo scum

Name: Anonymous 2014-11-23 1:57

Transhomo. Transporation for gays. A safe place for gays to ride and relax.

Name: Anonymous 2014-11-23 2:11

>>10
Any language with runtime reflection can break through any encapsulation as well.

Not true. With real encapsulation, the reflection is done with message sends which are handled by the receiver. The language itself doesn't really "have" reflection, the objects themselves do. The receiver can be made completely impenetrable by refusing to participate in reflection.

Name: Anonymous 2014-11-23 4:22

>>13
You could swing that around and say that if you can't change anything about any class, then it's not ``real reflection''

Name: Anonymous 2014-11-23 6:02

>>14
You could, and you would be arguing that that degree of encapsulation and reflection are mutually exclusive (unstoppable force vs. immovable object.) I don't have a problem with that. I don't think Kay would mind either.

http://c2.com/cgi/wiki?AlanKayOnObjects
Smalltalk is not only NOT its syntax or the class library, it is not even about classes. I'm sorry that I long ago coined the term "objects" for this topic because it gets many people to focus on the lesser idea.

The big idea is "messaging" -- that is what the kernal of Smalltalk/Squeak is all about (and it's something that was never quite completed in our Xerox PARC phase). The Japanese have a small word -- ma -- for "that which is in between" -- perhaps the nearest English equivalent is "interstitial".

The key in making great and growable systems is much more to design how its modules communicate rather than what their internal properties and behaviors should be. Think of the internet -- to live, it (a) has to allow many different kinds of ideas and realizations that are beyond any single standard and (b) to allow varying degrees of safe interoperability between these ideas.

Even his early definition viz Smalltalk doesn't mention reflection, but does talk about encapsulation. At the end of the page there is another reference to his clarification.

http://c2.com/cgi/wiki?AlanKaysDefinitionOfObjectOriented
I have asked Alan Kay about his definition of "object oriented" and he told me in 2003:

OOP to me means only messaging, local retention and protection and hiding of state-process, and extreme LateBinding of all things.

See http://www.purl.org/stefan_ram/pub/doc_kay_oop_en

Name: Anonymous 2014-11-23 22:09

which parper exactly

Name: Anonymous 2014-11-23 22:14

>>1
I have no idea what that means.

>>15
OOP to me means only messaging, local retention and protection and hiding of state-process, and extreme LateBinding of all things.
This is exactly what I've learned about OOP.

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List