news 2026/3/1 1:21:24

乔布斯没骗人:我们从一开始就学错了“面向对象” !

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
乔布斯没骗人:我们从一开始就学错了“面向对象” !

1985年,乔布斯被自己亲手创建的苹果公司扫地出门。

不甘心的他成立了一家新的计算机公司NeXT,制造下一代个人电脑,一台漂亮、强大、出色的机器,让苹果感到后悔和羞耻!

可惜,NeXT并没有取得想象中的成功,6500美元的高昂价格只让它卖出了5万台。

1993年,NeXT被迫退出了硬件行业。

失之东隅,收之桑榆,虽然NeXT机器不行,它的操作系统NeXTSTEP却因为优秀的GUI和面向对象的编程环境,极大地影响了业界。

Tim Berners-Lee用它开发了世界上第一个WWW服务器,编程语言是Objective-C。

id software 在上面开发了开创性的 PC 游戏Doom、Doom II和Quake。

NeXTSTEP后来成为Mac OS X的基础,为苹果所有的平台提供了强大动力,包括iOS 、iPadOS、watchOS和tvOS。

简单来说,NeXTSTEP提供了三项非常出色的功能:

1. Objective-C这个面向对象的语言和运行时

2. 面向对象的应用层

3. 面向对象层的开发工具。

请大家注意,这三项功能都和面向对象有关。

1994年,39岁的乔布斯在接受了一次《滚石》杂志的采访。

他先是抨击了苹果的Mac电脑,说Mac不思进取,10年间改变了不到10%,就像一只坐着的鸭子。而微软,居然花了10年才复制了一些“坐鸭式”的东西!

随后他便开始为自家NeXTSTEP的面向对象打起广告来:

“我认为未来会有一天,所有的软件都将使用面向对象这种技术来编写..... ”

面向对象?

这样的技术术语如果从现在公司的CEO嘴里说出来,大家肯定觉得有些古怪,因为面向对象如今是沉淀到底层的技术了,CEO绝对不会提起它,他们嘴中应该是时髦的微服务、云计算、人工智能.....

但是在80年代末,90年代初,面向对象是个非常时髦的词语。

记者不懂技术,问道:“你能解释一下什么是面向对象的软件吗?”

乔布斯开始了一段精彩的演说:

Object 就像人,他们是活生生的,呼吸着空气,在他们内部保存着如何做事情的知识,他们也有记忆记住东西,你在一个很高层次的抽象级别和他们交互,而不使用底层的细节。

举个例子吧,我是你的负责洗衣的对象,你可以把你的脏衣服给我,然后给我发一条消息,上面写着:“请帮我洗衣服”, 剩下的事情你就不用管了。

而我知道旧金山最好的洗衣店在哪里,我会说英语,口袋中也有钱,我会叫个出租车去那个洗衣店,洗完衣服后,我回到这里,把干净的衣服给你,同时告诉你‘这是你的干净衣服’。

你并不知道我是怎么做到的,你对洗衣房一无所知,你不知道怎么叫出租车,怎么付费。所有的复杂性都隐藏在我的内部。我们俩在一个高层次的级别交流。

这就是Object,它们封装了复杂性,对外提供了高层的接口。

这是我看到的对面向对象的非常精彩的描述!

乔布斯并不是技术天才,他最厉害的地方在于对用户体验和品味的感知,然后“纠集”一批天才把最酷的技术原型转变成面向消费者的产品。

这段面向对象的讲述可能是他自己悟出来的,也可能是从他的天才手下打听来的。不管如何,他非常形象地展示了Object的两大特性:

1. 封装复杂的操作

2. 对外提供高层次的接口,通过消息传递交互。

你可能会说,我学习的面向对象是封装、继承和多态啊!

没错,这是因为面向对象出现过一次重大的分裂。

漫画中的两位都是大师,左边这位是发明面向对象和Smalltalk编程语言的Alan Kay,右边则是C++之父Bjarne Stroustrup。

在Alan Kay的OO世界中,对象更像一个自治的“进程”,它拥有自己的状态,并可以和其他对象通过消息进行通信,正如乔布斯说的那样。

这些对象各司其职,就像一个个细胞,无数的细胞组成一个生物体。无论这个生物体有多大,其基本思想是一致的,换句话说,一个大系统是通过递归和组合的方式,由一个个对象建立起来的。

这种想法可能过于超前,它的代表语言Smalltalk火了一阵以后就被Java、C#、Python、C++等取代。

后来只能在Actor模型和Erlang中找到一些痕迹了。

Bjarne Stroustrup发明的C++就是“新式面向对象”的代表,这里的对象变成了数据类型(class)的实例,没有类,对象根本无法存在。程序关注的重点也变成了接口、继承、多态。

由于其更接近于程序= 数据结构+算法 ,再加上大公司的推动,占领了更多程序员的心智,成了主流。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/27 18:10:58

AI抠图效果对比:科哥UNet真实案例展示

AI抠图效果对比:科哥UNet真实案例展示 你是否试过用AI抠图,结果边缘毛糙、发丝糊成一团、透明区域残留白边?市面上的抠图工具不少,但真正能“一键出片、所见即所得”的却不多。今天不讲原理、不堆参数,我们直接看效果…

作者头像 李华
网站建设 2026/2/27 0:21:13

[特殊字符] EagleEye快速上手:DAMO-YOLO TinyNAS模型权重下载与校验方法

EagleEye快速上手:DAMO-YOLO TinyNAS模型权重下载与校验方法 1. 项目概述 EagleEye是一款基于DAMO-YOLO TinyNAS架构的高性能目标检测系统,专为需要快速响应和精准识别的场景设计。这个系统最大的特点是能在保持高精度的同时,实现毫秒级的推…

作者头像 李华
网站建设 2026/2/23 13:54:30

Speech Seaco Paraformer边缘计算:低延迟语音识别方案探索

Speech Seaco Paraformer边缘计算:低延迟语音识别方案探索 1. 为什么需要边缘端的中文语音识别? 你有没有遇到过这样的场景:在工厂巡检时想把设备异常声音转成文字记录,但网络不稳定导致云端识别失败;或者在车载系统…

作者头像 李华
网站建设 2026/2/25 2:05:32

刚试完就成功了!测试开机启动脚本真实反馈

刚试完就成功了!测试开机启动脚本真实反馈 你是不是也经历过这样的时刻:写好一个自动化脚本,满心期待它能在系统重启后自动运行,结果一 reboot,发现什么都没发生?别急,这不是你代码的问题&…

作者头像 李华
网站建设 2026/2/27 22:54:06

Qwen3Guard-Gen-WEB镜像免配置部署:3步完成安全审核系统搭建

Qwen3Guard-Gen-WEB镜像免配置部署:3步完成安全审核系统搭建 1. 为什么你需要一个开箱即用的安全审核工具 你是否遇到过这样的问题:上线一个AI对话服务前,得反复调试安全过滤逻辑;审核用户输入时,规则引擎总漏掉新型…

作者头像 李华
网站建设 2026/2/25 22:03:50

手把手教你在Jupyter中调用Qwen3-0.6B模型

手把手教你在Jupyter中调用Qwen3-0.6B模型 Qwen3-0.6B是阿里巴巴于2025年开源的新一代轻量级大语言模型,作为通义千问系列中首个0.6B参数的密集模型,它在保持极小体积的同时,显著提升了推理能力、指令遵循准确率和多轮对话稳定性。更重要的是…

作者头像 李华