在 7 月上旬的一篇 CACM 博客文章中,Doug Meil 谈论了《为何有这么多编程语言?》这个话题。而在 1990 年代,曾有一位精通计算机、但并非身为全职开发者的朋友向他提问“为何没有一种好用的编程语言?”当时他的回答是,编程语言同行为特定的人物或工作语言而设计。
(来自:BLOG@CACM)
从这个意义上说,大多数语言的区别,并不在于它们使什么成为可能、而更多地表现在它们使什么变得容易。
(相关资料图)
几年前,Doug Meil 有机会参观了位于加州山景城的计算机历史博物馆。有趣的是,在众多展品中,有一幅关于编程语言演变的超大号壁纸图标。
这张图是如此之大,想必任何编写过“Hello World”语句人们,都可以在上面找到对应的编程语言。
在本能的趋势下,人们会忍不住沿着时间的正序方向去查看。但若回头望,你又会领略到不同的视角。
这张图表显示了已经发明的数千种编程语言里的大约 150 种,其中一些较为通用、另一些则是为特定类型的应用程序而设计。
图表上的箭头,显示了较新诞生的语言如何受到了老语言的影响。不过就算复杂如此图,它也只能算是更大范围里的一个样本。
(图 via Coding Across America)
软件世界里的新语言依然层出不穷,但很少有全新的语言冒出来。回顾早期,计算机的资源内存、存储和处理能力都相当昂贵且有限。
为此,人们不得不逆风上坡,甚至经常需要通宵熬夜来争取计算机的使用时间。而 1950-1960 年代初始的命名空间,可以精确地处理底层事务。
时至今日,年轻开发者们已鲜有涉足 FORTRAN(公式翻译)、COBOL(通用商业导向语言)、BASIC(初学者通用符号指令代码)、ALGOL(算法语言)、LISP(List Processor)。
不过就算大多数人可能根本没有听说过描述字符串处理算法的 SNOBOL 语言(1962)或 OBJOL,但只要充分理解了面向对象的编程理念,就不难推测它可以用来干什么 —— 至少年代的命名模式就是如此。
1964 年的 PL/I,致力于成为一种更好用的编程语言。虽然它没有如设计者预期那样发展,但早在 1960 年代初,人们就已经提出过“为何有这么多编程语言”的疑问。
时间快速翻到千禧年后,我们陆续迎来了 Scala(2003)、Go(2009)、Rust(2010)、Kotlin(2011)和 Swift(2014)。
当下的技术环境,似乎所有这些基本语言的属性,都被重组到了特定的解决方案中。
其能够满足任何平台上的所有低级 / 高级功能、过程 / 对象、单线程 / 多线程、编译 / 脚本需求。
在此情况下,继续创造新语言的最大因素,反而是出于控制的考量。
1990 年代中期,微软主要提供了 Visual Basic 和 Visual C++ 开发语言,两者都源于计算机历史博物馆壁纸上的旧节点。
VB 流行于为 Windows 桌面平台构建前端应用程序,但缺乏许多高级语言功能 —— 比如数据结构和线程。
VC++ 处于光谱的另一端 ——开发者几乎可以做到任何事情,但难点在于语言本身太过复杂。
正因如此,一些人看到了打造一款“中间语言”的机会,于是 Java 在 1996 年迎来了爆发。
据悉,Java 是一种功能齐全的面向对象语言,且涉及重点之一是跨平台的可移植性,可惜这并不是微软的首要目标。
随后 Sun Microsystems 和微软在 1997 年陷入了旷日持久的冲突,并最终推动后者在 2022 年推出了 C# 。
乍一看 C# 和 Java 很像,但实际上并非如此。其填补了微软开发堆栈的‘中间’位置,且该公司能够更好地掌控该语言。
最后从总体设计控制角度来看,维护和发展现有系统,很容易变成一项艰巨的挑战。而管理编程语言的增长,也是最困难的案例之一。
作为编程语言的用户,优秀开发者们不仅具有生产力、还能够以创造性的方式去使用相关特性,即便这么做并不是语言作者所期望的。
2009 年的 Go 语言,就是一个相当有趣的例子。其诞生的一个主要推动因素,就是需要能够在 Google 的容器化云环境中,高效且可预测地部署。
其次是对强大语言的渴望,尤其在网络和并发性方面。从人才角度来看,Google 显然有能力为现有语言构建一套新的编译器和运行时引擎。
但要改变开发者的习惯,则需要费力地改变编程语言的语法和功能 —— 尤其是被告知某些事情不再被允许、或必须以不同方式去完成时。-
速看:腾讯2%股份进入香港中央结算系统根据香港交易所的数据,腾讯股东此前将1 93亿股股份转入了香...
-
热门:美团App首页改版,消息称未来流量将更多倾斜至商超零售据界面新闻报道,今日,多名用户反馈,美团App首页改版,打开...
-
每日播报!Netflix据悉正采取措施削减成本,包括缩减房地产规模、雇佣更多初级员工等据华尔街日报消息,在用户增长放缓的情况下,Netflix希望节省...
-
世界微头条丨多家航空公司推出赏月航班,计划执行的航班为1607个据央视财经报道,中秋假期临近,今年的中秋节月亮是标准的“...
-
每日速递:市场已有iPhone 14加价代预约服务,费用为200至600元据时代周报报道,北京时间今日凌晨,主题为“超前瞻”的2022...
-
每日短讯:苹果官网下架iPhone13Pro,降价促销iPhone13苹果下调了iPhone13售价,iPhone13降价促销。此外,iPhone13P...
-
天天亮点!iOS16将支持检测假冒AirPods耳机,并在iPhone上发出警告据IT之家报道,在此前的iOS系统中,当检测到非正品iPhone或iP...
-
全球快看点丨微软CFO出售近2000万美元股票,平均每股259.46美元根据美国证券交易委员会(SEC)的公开文件,微软CFOAmyHood出...
-
每日动态!联想推出“夺笋”APP:可一站式解决电脑问题今天,联想推出了一款名叫夺笋”的APP,安卓 iOS均可参与内...
-
天天即时看!消息称“抖音盒子”将暂停运营,内部员工已经开始转岗流程据36氪报道,多位知情人士称,字节跳动旗下的独立电商App“抖...
- 智联世界,元生无界!快手虚拟人IP亮相2022人工智能大会
2022-09-07 10:47:54
- 机器人界“奥林匹克”!2022世界机器人大会8月18日举行
2022-08-10 09:58:58
- 2025年全球人口将达到90亿!机器人将在农业领域大显身手
2022-07-14 09:41:10
- 中科院院士蒋华良:AI+分子模拟与药物研发将大有可为
2022-07-14 09:37:00
- “千垛之城荷你有约” 2022兴化市荷文化旅游节正式开幕
2022-07-07 09:28:34