Hacker News new | ask | show | jobs
by a4isms 1496 days ago
I’m very aware that we evolved things Kay may not have intended, and that doesn’t make it wrong.

He may have coined the term, but he doesn’t own it, nor should we feel beholden to his vision dating back to 1972.

What I said was if the primary reason for micro services is hiding of state, then we got OO wrong, because OO, even the much maligned J2EE style of OO, can do that for us if we want hiding of state and message passing.

Another possibility is that microservices do much more for us than hiding of state and limiting communication to message-passing.

At my 9-5, we use Elixir to write our services and have a few Actor-based Scala services too, so my feeling is that we actually are doing OO fine, and that there’s something else that makes microservices compelling at scale.

1 comments

What you said was that Kay would disagree, and that we must have gotten OO wrong otherwise. Kay wouldn't disagree and Kay would say we got OO wrong.
What I said was:

> If we need microservices to accomplish isolation of state, that suggests we got OOP wrong, very wrong.

That’s the last sentence, which summarizes my point.

As for Dr. Kay, his exact words were saying that to him at the time OO was certain concepts and nothing more.

I have never interpreted that to mean that languages or systems that do more than hiding state and message passing are wrong, just that if we say something like “OO requires inheritance,” he would disagree with our definition of OO.

After all… Smalltalk itself has a lot more than hiding of state and message passing. Would anyone claim that Dr. Alan Kay would say Dr. Alan Kay was doing OO wrong?

I think there are good reasons to design microservice architectures, but if the argument is “Let’s break up our monolith so we can hide state,” I’d say that we can go ahead and just use our existing OO tools to achieve that.