引言
你好,欢迎。希望大家一切都好。
6 月对 Exercism 来说是重要的一个月,我们推出了 Premium,也迎来了 10 周年。
希望大家在 S 表达式之夏里玩 Lisp 玩得开心。
现在我们进入 2023 年的第 7 个月,也是我们的第 6 个主题月:侏罗纪七月。
我们说的“侏罗纪”是什么意思?
嗯,并不是说这些语言已经灭绝了,虽然如今你不太可能用 COBOL 写新软件了。
但它们是现存最古老的语言之一,有些已经超过 60 年了。
有海量的软件(尤其是企业软件)是用它们写成的。
它们都是极其成功的语言。
那么是哪些语言呢?我们要看的是 C、C++、COBOL、Fortran 和 Visual Basic。
这个视频里我们不会深入讲 C 和 C++,因为我们在机械三月已经介绍过了。如果你对它们感兴趣,可以去看看那期视频。不过稍后我们会来看看 COBOL、Fortran 和 Visual Basic!
徽章
本月在其中一门语言里完成 5 个练习,就能获得徽章。
至于全年徽章,你需要完成:
- Bob:处理字符串和条件逻辑
- 过敏:处理字符串、数字和位运算
- 反转字符串:遍历字符串中的字符
- 最高分:遍历数字数组
- 阿姆斯特朗数:处理数字以及循环和迭代
概览
Fortran
-
由 IBM 的 John Backus 在 20 世纪 50 年代发起,目的是为他们编程 IBM 704 大型机寻找一种比汇编语言更实用的替代方案
-
设计上擅长构建科学和工程应用(名字是 Formula Translating System 的缩写)
-
第一种高级编程语言(把代码行数减少了约 20 倍)
-
也是第一个优化编译器(如果编译器生成的代码性能达不到手写汇编语言的水平,客户就不愿意使用高级编程语言)
-
静态且强类型的语言
-
最初只支持命令式编程,但很快加入了过程式编程。后来的扩展又加入了对其他范式的支持,比如面向对象编程和数组编程
-
已经标准化,第一次是 1966 年的 Fortran 66,最近一次更新是在 2018 年!
-
影响深远,从 Basic 到 ALGOL,启发了许多语言。早期编程语言研究的很多工作都是为了改进 Fortran
-
至今仍在积极开发,不断加入新特性,同时仍然提供强有力的向下兼容保证(旧代码通常仍然能编译和运行)
-
通过 coarrays 内置并行能力,这是一种安全高效的并行表达方式。函数可以标记为纯函数,帮助编译器针对并行计算进行优化
-
使用可分配变量实现安全的内存管理,由编译器负责释放内存。
-
内置与 C 的互操作性
COBOL
-
1959 年由 CODASYL 联盟设计(没错,由国防部资助!),目的是降低开发商业应用的成本(名字代表 Common Business-Oriented Language)
-
1968 年成为标准,最新一次修订是 2014 年
-
有多种实现,比如 IBM COBOL、GnuCOBOL(会编译成 C)以及 Micro Focus™ Visual COBOL,后者可以运行在 JVM 和 .NET 运行时上
-
静态类型语言
-
多范式,支持命令式和面向对象编程
-
语法冗长(关键字很多),但非常易读。这有利于可读性和维护
-
良好的向下兼容性,规范稳定。久经考验
-
性能良好(在金融行业有应用)
Visual Basic
-
由微软开发,是运行在 .NET 运行时上的 Visual Basic 的后继者(Visual Basic 2003 之后去掉了 .NET 后缀)
-
第一个版本于 2002 年发布,这门语言在 2023 年被标记为“稳定”。这意味着不会再向这门语言加入新语法,但它仍然是一门受支持的语言
-
语法大体上与 Visual Basic 相同,但做了一些改动
-
静态类型语言,支持强类型和弱类型
-
多范式语言:以面向对象为主,同时也支持命令式和事件驱动编程
-
容易学习(Visual Basic 的设计目标就是易学)
-
对面向对象编程的支持非常出色
-
运行在久经考验的 .NET 运行时上,可以访问所有 .NET 库
-
借助 ClickOnce 部署,发布很简单
应用场景
Fortran
用于高性能计算场景(超级计算机),比如天气预报、天文学和结构工程。它也用于 CAD 软件,以及许多基于 FORTRAN 构建的应用,比如各种 NumPy 模块都使用 FORTRAN 77 库
COBOL
在金融行业用得很多,许多金融系统至今仍有很大一部分运行在 COBOL 软件上(据估计,约 80% 的金融交易由 COBOL 支撑),不过如今主要是维护工作。它也用于许多商业应用,甚至包括 Walmart 使用的一个键值存储。
Visual Basic
用于图形界面(比如数据库的界面)和服务器生成的网站。使用它的公司包括 Boeing、Wells Fargo 和 General Electric
从编程角度看,它们有什么不同?
Fortran
最初只支持命令式编程,但很快加入了过程式编程。后来的扩展又加入了对其他范式的支持,比如面向对象编程和数组编程
COBOL
多范式,支持命令式和面向对象编程
Visual Basic
多范式语言:以面向对象为主,同时也支持命令式和事件驱动编程
突出特性
Fortran
- 性能。Fortran 语言及其数据类型和数据结构在设计上就追求高效、性能出色。这也是它被用在超级计算机上的原因
- 默认就支持许多数学函数
- 数组编程是一种非常简洁的方式,可以对数组以及数组的片段施加运算,而无须手动迭代或指定数组边界
COBOL
- 定点运算不像浮点数那样存在舍入误差。这让它非常适合金融领域
- 非常适合读写文件(记录)
- COBOL 内置生成报表的支持(这也是它在商业应用中广受欢迎的另一原因)
Visual Basic
- 非常适合使用 Windows Forms 构建图形界面应用。拖拽式的所见即所得编辑器
- IDE 支持出色,有重构、代码补全以及大量其他功能
该试试哪个?
- 如果你对科学计算或高性能感兴趣,Fortran 是个绝佳的选择
- 如果你想感受一下过去的商业应用是怎么构建的,COBOL 很不错
- 如果你有兴趣构建图形界面应用,或者已经在 .NET 平台上,Visual Basic 会很好用
- 如果你对编程的历史感兴趣,COBOL 和 Fortran 都是值得一看的学习路径