Uploaded avatar of iHiD

侏罗纪七月到啦!

@iHiD
3年多前
视频

引言

你好,欢迎。希望大家一切都好。

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 都是值得一看的学习路径
2023年07月01日 · 觉得有用吗?