Live data from Hacker News

Alan Kay on the meaning of "object-oriented programming" (2003)

notes.shixiangxi.com

1–10 of 95 posts

Re: Alan Kay on the meaning of "object-oriented programming" (2003)

#4

That's the Smalltalk school of OOP. There is also the Simula school. It is kind of unfortunate that they use the same name.

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

How does Simula differ here?

Re: Alan Kay on the meaning of "object-oriented programming" (2003)

#5
post #4

That's the Smalltalk school of OOP. There is also the Simula school. It is kind of unfortunate that they use the same name.

> OOP to me means only messaging, local retention and protection and hiding of state-process, and extreme late-binding of all things. How does Simula differ here?

AFAIU, Simula focused more on types and inheritance and less on late-binding, in particular not of "all things".

Alan Kay's distaste for (static) types is just his opinion and an original contribution of IMO rather dubious value.

After the dust has settled, it seems like the most valuable parts of OOP are private data, convenience (no need to repeat the class name in a method call), good fit for some domains, and interfaces.

Re: Alan Kay on the meaning of "object-oriented programming" (2003)

#6
I thought of objects being like biological cells and/or individual computers on a network, only able to communicate with messages

It was originablly conceived as a simulation of a distributed system.

Distributed systems can be useful but does anyone really believe that they are simpler or easier to develop and maintain?

The amazing part to me is that so many were trained and convinced to accept that adopting this simulation could make all programming easier or somehow "better". As if adding complexity would magically lead to simplification.

Re: Alan Kay on the meaning of "object-oriented programming" (2003)

#7
post #4

Earlier quoted context omitted.

> OOP to me means only messaging, local retention and protection and hiding of state-process, and extreme late-binding of all things. How does Simula differ here?

AFAIU, Simula focused more on types and inheritance and less on late-binding, in particular not of "all things". Alan Kay's distaste for (static) types is just his opinion and an original contribution of IMO rather dubious value. After the dust has settled, it seems like the most valuable parts of OOP are private data, convenience (no need to repeat the class name in a method call), good fit for some domains, and int…

private data, convenience

Which can be easily achieved without OOP.

Re: Alan Kay on the meaning of "object-oriented programming" (2003)

#8

I thought of objects being like biological cells and/or individual computers on a network, only able to communicate with messages It was originablly conceived as a simulation of a distributed system. Distributed systems can be useful but does anyone really believe that they are simpler or easier to develop and maintain? The amazing part to me is that so many were trained and convinced to accept that adopting this sim…

Generally speaking, toy examples can always be made to look simple. In reality it often means the “hard part” was moved into the shadows, not actually solved.

Graphical programming like LabVIEW looks very appealing. The product demo practically sells itself. Sure, it fits well for a very narrow class of use cases. But even fairly simple things in a textual language quickly become an unwieldy mess. (Try factoring an integer in it…)

There are formal models for distributed systems often solve the “easy” problems that didn’t need solving while making various practical concerns harder/impossible such as timeouts or node failure.

Re: Alan Kay on the meaning of "object-oriented programming" (2003)

#9

I thought of objects being like biological cells and/or individual computers on a network, only able to communicate with messages It was originablly conceived as a simulation of a distributed system. Distributed systems can be useful but does anyone really believe that they are simpler or easier to develop and maintain? The amazing part to me is that so many were trained and convinced to accept that adopting this sim…

> Distributed systems can be useful but does anyone really believe that they are simpler or easier to develop and maintain?

I believe that programs written in languages made for distributed systems are simpler and easier to maintain.

Also I believe that one of the major problems in modern computing is that most languages we use do not understand that even trivial programs require ‘communication’ and OS/hardware facilities that have behaviours of distributed systems such as latency, transient faults, etc.

Re: Alan Kay on the meaning of "object-oriented programming" (2003)

#10

Earlier quoted context omitted.

AFAIU, Simula focused more on types and inheritance and less on late-binding, in particular not of "all things". Alan Kay's distaste for (static) types is just his opinion and an original contribution of IMO rather dubious value. After the dust has settled, it seems like the most valuable parts of OOP are private data, convenience (no need to repeat the class name in a method call), good fit for some domains, and int…

private data, convenience Which can be easily achieved without OOP.

That upfront convenience here leads to a long tail of job security when it inevitably goes spaghetti. Win-win!
Post reply on HN