你以为文言编程只是闹着玩?三个月后,人家IDE、教程、包管理器都有了

新闻 前端
用文言文写的官方编程教程《文言陰符》,类似 pip 那样的包管理工具「文淵閣」,还有文言编程开源 IDE「文言齋」,文言编程语言已经这么成熟了?

 用文言文写的官方编程教程《文言陰符》,类似 pip 那样的包管理工具「文淵閣」,还有文言编程开源 IDE「文言齋」,文言编程语言已经这么成熟了?

机器之心曾介绍过 CMU 计算机专业大四学生 Lingdong Huang 的文言编程项目,因为完全采用文言文的方式编程,该项目受到很多开发者的关注,在 GitHub 上开源 4 天就获得两千星,目前更是有 15K 的 Star 量。

大家都说 Star 量是推动项目更新的第一生产力。这不,经过三个月的时间,这个项目就已经发展成了一门完整的「编程语言」。它有文档、有 IDE、有第三方库、有官方教程、有代码高亮方案等等,所以还要啥 Python,文科生「玩转」编程的首选语言就是它。

你以为文言编程只是闹着玩?三个月后,人家IDE、教程、包管理器都有了

因为目前文言编程已经有了挺多更新,本文后面主要介绍 IDE、官方教程和第三方库,看它如何一步步升华到合格的编程语言。

文言齋:开源 IDE 来了

之前文言编程不是没有 IDE,我们可以在线使用,并编译。但当时 IDE 并没有开源,它的高亮也有点「神奇」,在输入与编辑过程中了并不能高亮,只有编译后才能修改语句的颜色。而且有些中文会被认为是关键词,并不能直接使用,例如机器之心的「之」,如下是我们 2019 年年会的推文,它采用的就是当时的在线 IDE。

你以为文言编程只是闹着玩?三个月后,人家IDE、教程、包管理器都有了

运行后会输出「今日无文,请阅「机器之心 Pro」」。

当时在线 IDE 似乎还不会报错,编译出错只有一个反应「输出为空」,而现在,这个新开源的 IDE,它已经会在线高亮、返回编译误差了。

你以为文言编程只是闹着玩?三个月后,人家IDE、教程、包管理器都有了

现在的 IDE,用着已经算比较舒服了,我们可以部署或嵌入到其它地方,甚至可以通过 API 直接调用。每次调用,在 URL 中传入标题、代码以及其它各种缺省配置就行。

在线 IDE 地址:https://ide.wy-lang.org/

如下是当前 IDE 整体展示,其最左边导航栏主要分为用户代码脚本、示例脚本、第三方库列表三部分。值得一提的是,相比当时十来个示例脚本,现在的官方脚本已经有近 50 个,连「水墨画」的脚本都有。

你以为文言编程只是闹着玩?三个月后,人家IDE、教程、包管理器都有了

此外,文言代码除了编译为 JS 代码,IDE 上还可以选择编译为 Python 或 Ruby 代码。只不过当前的在线 IDE 并不支持以 Python 或 Ruby 语言作为后端执行文言代码。

整个 IDE 的主题、编译方式、展现方式都能自由选择,它的可玩性已经非常不错了。

你以为文言编程只是闹着玩?三个月后,人家IDE、教程、包管理器都有了

文言陰符:官方教程

作为官方的文言教程,势必需要懂文言文才能看懂,不然就显示不出它的「优越性」。在之前的文言编程示例或解释中,作者都是通过英文或实例来展示,描述语句都比较通俗易懂。

然而作为一本经典的官方教程,不用文言文写实在是太浪费了,因此也就有了《文言陰符》,它的风格是这样的:

你以为文言编程只是闹着玩?三个月后,人家IDE、教程、包管理器都有了

上图是《文言陰符》项目的开篇描述,它以文言文的方式「生动地」描述了开发者与编程语言之间的关系。文言文加上繁体字,果然是天生一对,如果再加上一些通假字,说不定我们就回到了曾经的语文课堂。

《文言陰符》共有十三篇教程,从字面上大概也能了解这本书的主题,例如明义篇主要阐述什么是文言编程,变数篇主要介绍变量这个概念与用法。

你以为文言编程只是闹着玩?三个月后,人家IDE、教程、包管理器都有了

总体来说,该书籍从基本控制语法、数据结构、函数与第三方库这几个角度展示了文言编程的主要内容,然后还要加上 Error 处理、制图和高级函数等进阶内容。如果读者们能把这些官方教程看一遍,估计你的文言文水平已经超越了大多数人。

这个教程确实很难,主要体现在文言文功底。相信很多读者对字典(Dict)这个数据类型十分了解了,它以 Key -> Value 的方式组织所有数据。然而在格物第十的开篇中,作者将字典这种数据格式解释为格物,「物」的的每一个元素都有一个「名」,或者称之为 Key,每一个「名」对应的属性值就是 Value。

你以为文言编程只是闹着玩?三个月后,人家IDE、教程、包管理器都有了

如上类似于定义了名为「白马」的字典,字典里面的 Key 为白马的属性,它对应有一个属性值。夫「白馬」之「「名」」,即调用字典「名」对应的值。

当然,我们也能从类与属性的角度去思考,「白马」是「物」的实例化,实例化的过程中需要为物的各种属性赋值,并且可以在实例化后继续调用它们。

你以为文言编程只是闹着玩?三个月后,人家IDE、教程、包管理器都有了

该教程还支持在线阅读,从右向左滑动的那种,这感觉有点上头。

这种风格的教程,俨然需要真材实料的文言知识。

文淵閣:连软件包都有?

一个编程语言,第三方软件包的数量就反映了社区的活跃度。想象一下,如果有 NumPy 或 PyTorch 这样的软件包,那么说不定就能用文言文写一个神经网络出来,如下 Lotayou 就用文言文写出了一个神经网络,完整代码可见项目的 Issue。

你以为文言编程只是闹着玩?三个月后,人家IDE、教程、包管理器都有了

虽然,文言编程目前并没有「火炬心法」这个第三方包,但也不能阻止众多 DL 炼丹师的激情,Lotayou 写的「文言神经网络」尽管编译不了,但逻辑和语法都非常完整。

目前「文渊阁」这个第三方软件包管理器一共包含以下扩展包:

你以为文言编程只是闹着玩?三个月后,人家IDE、教程、包管理器都有了

正如 Pyhton 有 pip,js 有 npm,文言编程语言也有包管理——文渊阁。尽管目前第三方库并不是太多,但一个合理的包管理器还是需要的,这样才是一个完整的编程语言。

文渊阁可以直接通过 NPM 安装,使用的时候,代码类似 pip 或 npm,只要带有「wyg」、「i」(install)和包名(如「子曰」)即可。

  1. wyg i ziyue 
  2.  
  3. wyg i 子曰 

上面两种都是可行的,运行后包会被下载到藏書樓/子曰这一路径下,藏書樓类似于 js 的 node_modules。

然后就是导入包了,就像 Python 中的 import 一样,文言编程的导入格式如下所示:

  1. 吾嘗觀「「子曰」」之書。方悟「子曰」之義。 
  2.  
  3. 子曰「「巧言令色,鮮矣仁!」」。 

此外,你还可以发布自己的文言编程语言包,有了这种开源模式,这门语言就真正像是独立的编程语言了。

很难想象,经过两三个月后该项目就有了这么大的变化,也成为了一万五收藏量的大项目。将文言文这种传统文化,与编程语言这样的当代工具相结合,也许是非常不错的尝试。

 

 

责任编辑:张燕妮 来源: 机器之心
相关推荐

2023-03-08 22:19:11

2014-04-29 10:32:44

编程课程编程

2018-11-06 15:49:27

2020-02-24 19:50:45

面试工程师经验总结

2013-02-25 15:02:05

Windows Blu

2009-03-19 10:40:02

职业分析经验行业

2013-03-11 13:25:32

微软公有云Azure

2016-09-12 15:00:46

Linux包管理器新手

2020-12-03 12:06:54

HarmonyOS

2020-03-09 11:43:35

RustCargo编程语言

2009-11-07 19:02:03

Windows 7苹果竞争

2024-03-01 12:39:40

2009-03-12 16:32:00

CCNACCNP思科认证

2023-04-13 10:28:29

2009-07-22 16:43:39

IT培训派遣美国

2022-05-26 08:01:44

Pnpm包管理器磁盘

2013-08-28 11:21:05

2009-08-24 11:14:57

思科认证CCNA思科认证CCNP心得

2020-07-10 14:48:59

国外程序员

2020-05-20 13:37:24

宁畅
点赞
收藏

51CTO技术栈公众号