J 语言邮件列表昨日发布了 J 语言发明者之一 Roger Hui 去世的讣告。
我们从讣告得知,Roger Hui 在与癌症抗争数年后,于 2021 年 10 月 16 日星期六下午安详离世,生命的最后时光在临终关怀医院度过,享年 68 岁。
根据维基百科的介绍,J 语言是图灵奖获得者 Kenneth E. Iverson 和许国华 (Roger Hui) 于 1990 年代初发明的一种阵列编程语言,是 APL 语言(亦是由 Kenneth E. Iverson 所创)的继承者。
邮件显示,Roger 去世的讣告由 Kenneth E. Iverson 儿子 Eric Iverson 发出。从 Eric 的描述来看,Roger 与 Kenneth 不仅仅是工作上密切合作的伙伴,更是生活中的好友。虽然 Roger 和 Kenneth 共同创造了 J 语言,并为 APL 做出了重大贡献,但 Eric 表示自己得知 Roger 去世的消息后,他首先想到的是父亲和 Roger 一起相处时的快乐。
Roger Hui 是一名华人计算机科学家,从上世纪 90 年代初期开始,他开始与 Kenneth E. Iverson 合作开发一种类似 APL 的语言的高级扩展,并将其命名为「J 语言 (J programming language)」。J 语言对 APL 进行了多项改进,这些改进旨在修复自 APL 成立以来一直困扰着 APL 的一些持久性字符集问题,并添加了新的高级功能,如支持并行多指令、多数据操作等。
从 2011 年三月起,J 语言成为自由开源软件,采用的是 GPLv3 开源许可协议。
J 语言在其官网写道,它具备高性能数据分析特性,以及用于探索性编程的强大运算符,并且内置数据库,支持处理大型的数据表(数百万行到数十亿行)。
J 语言使用可移植的 C 语言编写,可用于 Windows、 Linux 、Mac、iOS、Android 和 Raspberry Pi。使用 J 语言编写的程序可以非常简洁,下面是实现快速 排序 的示例:
sel=: adverb def 'u # ['
quicksort=: verb define
if. 1 >: #y do. y
else.
(quicksort y <sel e),(y =sel e),quicksort y >sel e=.y{~?#y
end.
)
下面是展示隐式编程的快速排序的实现,它涉及到将函数复合在一起而不显式地引用任何变量。
quicksort=: (($:@(<#[), (=#[), $:@(>#[)) ({~ ?@#)) ^: (1<#)