本文转载自 机器之心

近日,讣告网站 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 平台上的技术奇葩。

Objective-C之父Brad J. Cox去世,他推动了今天苹果的软件生态相关推荐

  1. Objective-C 之父 Brad Cox 逝世,创建过乐队、推动苹果软件生态

    整理 | 郑丽媛 出品 | CSDN(ID:CSDNnews) 本以为熬过跌宕的 2020 年,我们总该迎来充满希望的 2021.可惜新年伊始,我们就得知了一条令人悲痛的消息:Objective-C ...

  2. 著名统计学家David Cox去世:他提出的「COX回归模型」曾影响一代人

    来源:机器之心 本文约1000字,建议阅读5分钟 他提出的「COX 回归模型」曾深刻地影响了统计学研究. 近日,英国著名统计学家 David Cox 去世,享年 97 岁. David Cox 因提出 ...

  3. 计算机艺术和动画之父肯·诺尔顿去世,享年91岁

    据<纽约时报>日前报道,艺术家和计算机动画先驱肯·诺尔顿(Ken Knowlton)于6月16日在佛罗里达州萨拉索塔的一家临终关怀机构去世,享年91岁. 作为一位工程师.计算机科学家和艺术 ...

  4. 程序人生(二)汉语拼音之父周有光去世——一个播音专业安卓程序员有感

    转载请注明出处: http://blog.csdn.net/iwanghang/article/details/54429514 觉得博文有用,请点赞,请评论,请关注,谢谢!~ 今天是2017年1月1 ...

  5. 悲报, GIF 之父因新冠去世

    今天下午二狗子照常上班摸鱼的时候,突然看到了一则消息,消息说 GIF 的发明人因新冠去世了.作为一个自诩理性的互联网人,二狗子第一反应是看到了一个离谱谣言,可是查看了多方消息后,二狗子难过地发现这是真 ...

  6. 【历史上的今天】2 月 27 日:UML 之父出生;微软宣布全球望远镜计划;苹果停止支持 Newton OS

    整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来. 今天是 2022 年 2 月 27 日,在 1996 年的今天,世界知名 IP 宝可梦系列的首部作品(红.绿版)于日本推出 ...

  7. j计算机音乐,JRiver Media Center(电脑音乐管理软件) V27.0.13 官方最新版

    JRiver Media Center是一款非常好用的音乐管理软件,用户们可以通过这款软件将各种格式的音频文件制作成CD格式保存到光盘中,并且HIA还可以播放音乐文件,具有强大的网络功能,是用户管理音 ...

  8. 视频下载神器,支持 80+ 网站,比迅雷还快!

    点击上方"逆锋起笔",公众号回复 编程资源 领取大佬们推荐的学习资料 开源最前线(ID:OpenSourceTop)编译 项目地址:https://github.com/soimo ...

  9. 《iOS开发完全上手——使用iOS 7和Xcode 5开发移动与平板应用》之Objective-C新手训练营

    编写Hello World应用程序通常被认为,是学习任何编程语言的第一步.在这一章,你将创建iOS版的Hello World应用程序作为起步,快速了解Xcode这个开发iOS应用程序的主要工具.   ...

最新文章

  1. 40个常用的网站制作技巧
  2. 远程办公中的IT女性:工作量增加3倍,离职率却下降近50%
  3. java 三级考试_java web 学习 --第三天(Java三级考试)
  4. 【bzoj1179】 Apio2009—Atm
  5. 搭量化数据库——互联网金融之三
  6. 如何让SAP Spartacus ng build生成的JavaScript资源附带上store ID
  7. Java操作shell脚本
  8. 摄影平铺海报psd模板|简单搭建层次场景海报
  9. 【报告分享】抖音品牌主页运营官方指导手册.pdf(附下载链接)
  10. 济南学习 Day 5 T2 am
  11. Linux 到 Windows scp 复制速度慢
  12. vss 2005 配置服务器端的时候提示IIS没有安装
  13. MQL5 COOKBOOK: 获取仓位属性
  14. 分享盘点9个可免费使用的网站CDN加速服务
  15. Apollo_Lattice palnner
  16. 临江仙·送钱穆父 | 苏轼
  17. 付费资源不能上传了?!
  18. 光模块和光纤收发器的区别
  19. AD16实现板框挖空
  20. 【TP5.1】商品列表加载

热门文章

  1. 狗都能看懂的CenterNet讲解及代码复现
  2. 安装 Linux mint后的一些设置
  3. ThingWorx布局
  4. 手机上如何将图片压缩到最小
  5. windows消息分类PostMessage、SendMessage
  6. java项目集成谷歌登录验证器,给网站添加谷歌验证(我不是机器人)
  7. 《神经网络与深度学习》(Michael Nielsen)Neural Networks and Deep Learning习题解答汇总
  8. [竞赛01]2021CCF BDCI新闻摘要自动生成Baseline-T5模型
  9. Linux中的UID与GID
  10. 家到学校路线图怎么画_PPT绘制家到学校路线图教程