Objective-C之父Brad J. Cox去世,他推动了今天苹果的软件生态[通俗易懂]

Objective-C之父Brad J. Cox去世,他推动了今天苹果的软件生态[通俗易懂]本文转载自机器之心近日,讣告网站Legacy.com发布消息:Objective-C之父BradJ.Cox博士于2021年1月2日在自己的家中逝世,享年77岁。如果你是苹果生态的一位开发者,那你对Objective-C一定不会陌生。这门语言成就了苹果强大的软件生态,也因为苹果硬件的畅销而一路高歌猛进,挺进各大编程语言排行榜的前几名。作为一位计算机科学家,BradCox的主要成就是和TomLove一起创建了Objective–C。此外,他还以在软件工

大家好,又见面了,我是你们的朋友全栈君。

本文转载自 机器之心

近日,讣告网站 Legacy.com 发布消息:Objective-C 之父 Brad J. Cox 博士于 2021 年 1 月 2 日在自己的家中逝世,享年 77 岁。

图片

如果你是苹果生态的一位开发者,那你对 Objective-C 一定不会陌生。这门语言成就了苹果强大的软件生态,也因为苹果硬件的畅销而一路高歌猛进,挺进各大编程语言排行榜的前几名。作为一位计算机科学家,Brad Cox 的主要成就是和 Tom Love 一起创建了 Objective–C。此外,他还以在软件工程(特别是软件重用)和软件组件方面的工作而闻名。

在 Brad J. Cox 去世的消息发布之后,很多人在 Hacker News 上发帖悼念,缅怀他对编程语言演进做出的贡献。其中一位网友写道:

我喜欢 Objective-C,它是一门优美的语言。学习这门语言让我重新发现了自己对于编程的热爱。

当时我还在 Java 的世界里,想要利用业余时间写一个 Objective-C 的无人机程序。虽然后来我放弃了这个想法,但我还是把代码发到了 GitHub 上。用 Objective-C 写东西让我觉得很愉悦,这也是我最有意思的一个业余项目。

最近,我的工作 / 业余爱好主要集中于 Python 和 Go,但我依然庆幸自己曾花时间钻研 Objective-C。回想起来,如果当时没这么做,我今天可能不会成为一名程序员。

感谢 Brad Cox 的工作及其产生的积极影响。

还有人表示,Brad Cox 为自己职业生涯的黄金 20 年开辟了道路,甚至还帮一些人创建了自己的公司。

图片

在悼念的帖子里,也有人曾经有机会和 Brad Cox 共事,ta 表示:「Brad Cox 从不宣扬自己是一个举世闻名的计算机科学家,而是和我们这些普通码农一起肩并肩敲代码。他是一个正直、受人尊敬的人(Mensch)。」

图片

奶牛场长大的程序员

Brad Cox 于 1944 年 5 月 2 日出生于美国佐治亚州的班宁堡。他在一家奶牛场长大,渐渐地他发现自己对科学最感兴趣。求学期间,他拿到了弗曼大学理学学士学位和芝加哥大学数学生物系的博士学位,还从事过神经网络早期形式的研究。

很快,他发现自己对计算机更感兴趣,并在国际电话和电报公司(ITT)获得了一份工作。后来,他加入了 Schlumbeger – Doll Research Labs,并最终组建了自己在康涅狄格州的初创公司,即 Productivity Products International(PPI),后来命名为 Stepstone。在 Brad Cox 的第一个知名软件项目中,他编写了 PDP-8 程序来模拟神经元簇。在进入软件行业之前,他曾在美国国立卫生研究院和伍兹霍尔海洋研究所工作。

Brad Cox 的在线课程「Taming the Electronic Frontier」曾获得 1998 年的 Paul Allen Distance Education 奖。1991 年,Brad Cox 出版了他的书《Object Oriented Programming: an Evolutionary Approach》,1996 年出版了《Superdistribution: Objects as Property on the Electronic Frontier》,这本书被翻译成十种不同的语言。

Brad Cox 曾加入乔治梅森大学的社会与机构学习计划,致力于通过互联网开发早期的线上课程。离开学术界之后,Brad Cox 从事过政府咨询工作,包括与波音公司和五角大楼相关的业务。最终,Brad Cox 回到了神经网络领域,致力于将机器学习和数据科学应用于网络安全。

Cox 博士有很多粉丝,他曾在欧洲开展讲座,在演讲中他演示了如何对软件进行编程。他和他的妻子 Etta 喜欢休闲旅行和潜水,经常一起去加勒比海,伯利兹有他们美好的回忆。在一次潜水之旅的午餐中,Brad 与一对德国夫妇进行了交谈。Brad 问同行旅行者的职业,发现他是一名程序员,旅行者同样询问了 Brad 的工作,他说我也是程序员。于是他们展开了一段有趣的对话:

旅行者问 Brad:「你是做什么的?」

「我写了 Objective-C。」

对方惊讶地说:「不,那是 Brad Cox 写的。」

Brad 回应道:「Brad Cox 正是在下。」

当然,这次潜水之旅后他们又讨论了更多事情。在 Brad 的人生中,这样有趣的事发生过无数次。

Brad 喜欢音乐,会弹钢琴和吉他。早些年,他还是一支乐队的成员,主要演奏蓝草音乐(乡村音乐的一个分支)。他喜欢长时间在林子里散步。此外,他也是一个有幽默感的人。

2017 年,Brad 曾接受过「Computer History Museum」的采访,感兴趣的同学可以点击以下链接观看:https://www.youtube.com/watch?v=1xrL2d5omuA

Objective-C 的历史使命

Objective-C 是一种通用、高级、面向对象的编程语言,顾名思义,Objective-C 的原意就是在 C 语言主体上加入面向对象的特性。任何 C 语言程序不经修改就可以直接通过 Objective-C 编译器,在 Objective-C 中使用 C 语言代码也是完全合法的。它扩展了标准的 ANSI C 编程语言,将 Smalltalk 式的消息传递机制加入到 ANSI C 中。目前主要支持的编译器有 GCC 和 Clang(采用 LLVM 作为后端)。

它的两位共同发明者是 Brad Cox 和 Tom Love,二人在 ITT 公司任职期间,对 SmallTalk 语言产生了浓厚的兴趣。但当时 ITT 公司更加重视 C 语言,因此 Brad Cox 撰写了一个 C 语言的预处理器,打算使 C 语言具备些许 Smalltalk 的本领。很快,一个可用的 C 语言扩展诞生了,这就是 Objective-C 语言的前身。

图片

Tom Love。

1983 年,Cox 与 Love 合伙成立了 Productivity Products International(PPI)公司,将 Objective-C 及其相关库商品化贩售,并在之后将公司改名为 StepStone。

1986 年,Cox 出版了一本关于 Objective-C 的重要著作《Object-Oriented Programming, An Evolutionary Approach》,详细阐述了 Objective-C 的设计理念。

图片

目前,Objective-C 的商标权属于苹果公司,苹果公司也是这个编程语言的主要开发者。1988 年,乔布斯被赶出苹果公司后,其创办的 NeXT Computer 公司买下了 Objective-C 语言的授权。随后在 1996 年,苹果收购了 NeXT 公司,旗下的操作系统 NeXTSTEP 被重命名为 Cocoa,WebObjects 则集成到 Mac OS Server 和 Xcode 中。Objective-C 自然而然成为 Mac 平台的首选开发语言,并受到 Macintosh 编程人员的广泛认可;Cocoa 成为苹果免费提供的开发工具,提供 Mac 平台应用开发的环境。

苹果在开发 NeXTSTEP 操作系统时使用了 Objective-C,之后被 OS X 和 iOS 继承下来。现在 Objective-C 与 Swift 是 OS X 和 iOS 操作系统、及与其相关的 API、Cocoa 和 Cocoa Touch 的主要编程语言。Objective-C 的流行也要归功于 iPhone 的成功。

Objective-C 用一个很小的、用 C 写成的运行库,使得应用程序的大小增加很少,与此相比,大部分 OO 系统需要极大的运行时虚拟机来执行。Objective-C 是讲究实用和效率的语言,使用过 C++ 或者 Java 的开发者会惊叹于 Objective-C 的程序如此简短,尤其是,Objective-C 写成的程序通常不会比其源代码和库(通常无需包含在软件发行版本中)大太多。它可以在现存 C 编译器基础上实现,而不需要编写一个全新的编译器,使得 Objective-C 能利用大量现存的 C 代码、库、工具和编程思想等资源。这些特性都大幅降低了 Objective-C 的进入门槛。

但随着编程语言的不断演进,Objective-C 的缺点也逐渐暴露出来,比如不支持命名空间;不支持运算符重载;不支持多重继承;使用动态运行时类型,所有的方法都是函数点用,很多编译时的优化方法都用不到等。因此,近年来,苹果一直想让开发者放弃 Objective-C,转向 Swift。在开发语言排行榜 TIOBE 榜单中,Objective-C 的流行程度指数一路下滑,替代者 Swift 的位次逐渐上升。

早在 2015 年,就有人预言 Objective-C 将在五年内被 Swift 取代。在这五年的时间里,我们的确见证了 Swift 的崛起和 Objective-C 的没落,但由于代码规模依然庞大,前者彻底取代后者还有很长一段距离。

去年,海外知名自由职业平台 Upwork 调查显示,在众多编程语言中,Objective-C 成为该网站时薪最高的语言(加链接:这门「没落」语言时薪 451 元,自由职业平台 Upwork 公布兼职语言薪资排行),掌握该语言的程序员每小时可以赚 66 美元(约合 451 元人民币)。

有人曾评价说,与 Windows 平台下的应用开发技术和编程语言的繁盛景象相比,Objective-C 更像是孤独盛开在 Mac 平台上的技术奇葩。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/139460.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • path是什么意思啊_globalmapper转换投影

    path是什么意思啊_globalmapper转换投影投影投影是JMESPath的关键特性之一。它允许您将表达式应用于元素集合。有五种投影:列表投影切片投影对象投影展平投影过滤投影处理投影需要注意的点投影分为两个步骤。左侧(LHS)创建一

  • VIF,共线相关性理解「建议收藏」

    VIF,共线相关性理解「建议收藏」多重共线性是指在变量空间中,存在自变量可以近似地等于其他自变量的线性组合如果将所有自变量用于线性回归或逻辑回归的建模,将导致模型系数不能准确表达自变量对Y的影响。比如:如果X1和X2近似相等,则模型Y=X1+X2可能被拟合成Y=3X1-X2,原来X2与Y正向相关被错误拟合成负相关,导致模型没法在业务上得到解释。在评分卡建模中,可能将很多相关性很高的变量加入到建模自变量中,最终得到的模型如果用变量系数去解释自变量与目标变量的关系是不合适的。相关矩阵是指由样本…

  • php getrealpath,java_java 获取路径的各种方法(总结),(1)、request.getRealPath(“/”);//不推 – phpStudy…

    php getrealpath,java_java 获取路径的各种方法(总结),(1)、request.getRealPath(“/”);//不推 – phpStudy…java获取路径的各种方法(总结)(1)、request.getRealPath(“/”);//不推荐使用获取工程的根路径(2)、request.getRealPath(request.getRequestURI());//获取jsp的路径,这个方法比较好用,可以直接在servlet和jsp中使用(3)、request.getSession().getServletContext().getRe…

  • IDEA常用快捷键总结

    IDEA常用快捷键总结IDEA常用快捷键总结1.根据psvm或者main快速生成主函数我们可以在类中输入psvm或者main然后IDEA会自动提示main(),敲击回车即可自动生成~2.根据sout快速生成打印语句我们可以在方法中输入sout然后IDEA会自动提示打印语句,敲击回车即可自动生成~3.查找的快捷键按Ctrl+F表示在当前页面中查找4.万能键Alt+EnterAlt+Enter是一个特别常用且好用的“万能键”比如我们可以在类中导入需要导的包再比如我们可以在类中快

  • js获取客户端内网ip_外网获取到内网ip了

    js获取客户端内网ip_外网获取到内网ip了再做项目中获取客户端ip,因为是公司内部使用,用的都是同一个公网账号,获取的都是外网ip,造成ip都是一个。通过java代码暂时没有发现可以实现的。后来上网百度,发现了一段js可以实现获取内网ip<!DOCTYPEhtml><html><head><metahttp-equiv="Content-Type"cont…

  • 在服务器上排除问题的头五分钟

    在服务器上排除问题的头五分钟

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号