TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

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

117 点作者 siteshwar超过 10 年前

9 条评论

robert_tweed超过 10 年前
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 未加载
vishnugupta超过 10 年前
&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 未加载
jayvanguard超过 10 年前
&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 未加载
pfraze超过 10 年前
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 未加载
davidw超过 10 年前
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 未加载
agumonkey超过 10 年前
@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>
cesarbs超过 10 年前
&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 未加载
jonahx超过 10 年前
&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 未加载
read超过 10 年前
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 未加载