TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Alan Kay on the Meaning of “Object-Oriented Programming” (2003)

117 pointsby siteshwarover 10 years ago

9 comments

robert_tweedover 10 years ago
A lot of the recent trend towards OOP-bashing comes from bad implementations of OOP, just as bashing design patterns is more to do with badly thought out architectures and overuse of those patterns.<p>In fact, the origins of OOP are basically what we would now call microservice architecture (CSP-inspired languages like Go being a specialisation of this). Each service can be as stateless or as stateful as it needs to be (without shared state) and services should be loosely coupled.<p>That&#x27;s quite different to most large-scale OOP architectures, but it is possible to code in that style in any OOP language.<p>Heavy reliance on inheritance for code reuse is a whole problem class in itself that again has little to do with OOP and lots to do with the influence of C++.
评论 #8679770 未加载
评论 #8677997 未加载
评论 #8678237 未加载
评论 #8677976 未加载
评论 #8679761 未加载
vishnuguptaover 10 years ago
&quot;OOP to me means only messaging, local retention and protection and hiding of state-process, and extreme late-binding of all things. It can be done in Smalltalk and in LISP. There are possibly other systems in which this is possible, but I&#x27;m not aware of them.&quot;<p>Such a pity that this filtered essence about OOP was lost on me during formative years of learning OO-programming; for no fault of mine! It took me half a decade into professional programming in Java to realize the importance of these key concepts.<p>And the worse part is that most of the books&#x2F;blogs start OO programming tutorial with examples that try to literally model the problem state using Objects (e.g., &quot;Animals&quot;, &quot;Shapes&quot; etc.,).<p>I guess tutorials, classes just focus on these key goals and show how concepts such as &quot;polymorphism&quot;, &quot;inheritance&quot; etc., are work towards achieving (or not) them. What generally happens is that one is taught about all these peripheral concepts and students are left to wonder the problems they are trying to solve.
评论 #8681125 未加载
jayvanguardover 10 years ago
&quot;OOP to me means only messaging, local retention and protection and hiding of state-process, and extreme late-binding of all things.&quot;<p>Bam. That is it right there. Java really messed this up.<p>Strong static typing and OO is an abomination.
评论 #8678024 未加载
pfrazeover 10 years ago
Towards the end:<p><pre><code> But just to show how stubbornly an idea can hang on, all through the seventies and eighties, there were many people who tried to get by with &quot;Remote Procedure Call&quot; instead of thinking about objects and messages. Sic transit gloria mundi. </code></pre> Can somebody explain to me what distinction he&#x27;s drawing here? What&#x27;s the issue with RPC that&#x27;s solved by Objects+Messages?
评论 #8678596 未加载
评论 #8678015 未加载
评论 #8679201 未加载
评论 #8677962 未加载
评论 #8679224 未加载
评论 #8677918 未加载
davidwover 10 years ago
I wonder what he thinks of Erlang, as it&#x27;s very much about message passing, hiding of process state, and late binding. Of course, this is built at a higher level and it&#x27;s not turtles all the way down: you don&#x27;t send messages to numbers to do basic math.
评论 #8679119 未加载
agumonkeyover 10 years ago
@previously (1272 days ago) <a href="https://news.ycombinator.com/item?id=2628897" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=2628897</a>
cesarbsover 10 years ago
&gt; I wanted to get rid of data.<p>What exactly does he mean by that? How does one get rid of data?<p>&gt; The B5000 almost did this via its almost unbelievable HW architecture.<p>I&#x27;ve heard about the B5000 numerous times here on HN. What was so fantastic about it?
评论 #8680931 未加载
jonahxover 10 years ago
&gt;My math background made me realize that each object could have several algebras associated with it, and there could be families of these algebras<p>Could someone explain what he meant here?
评论 #8678921 未加载
评论 #8678384 未加载
评论 #8678920 未加载
readover 10 years ago
Why Alan Kay came up with object-oriented:<p><i>I wanted to get rid of data.</i><p><i>I didn&#x27;t understand the monster LISP idea of tangible metalanguage then</i>
评论 #8678822 未加载