

你以为文言编程只是闹着玩?三个月后,人家IDE、教程、包管理器都有了
source link: http://news.51cto.com/art/202003/612432.htm
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

用文言文写的官方编程教程《文言陰符》,类似 pip 那样的包管理工具「文淵閣」,还有文言编程开源 IDE「文言齋」,文言编程语言已经这么成熟了?
机器之心曾介绍过 CMU 计算机专业大四学生 Lingdong Huang 的文言编程项目,因为完全采用文言文的方式编程,该项目受到很多开发者的关注,在 GitHub 上开源 4 天就获得两千星,目前更是有 15K 的 Star 量。
大家都说 Star 量是推动项目更新的第一生产力。这不,经过三个月的时间,这个项目就已经发展成了一门完整的「编程语言」。它有文档、有 IDE、有第三方库、有官方教程、有代码高亮方案等等,所以还要啥 Python,文科生「玩转」编程的首选语言就是它。
因为目前文言编程已经有了挺多更新,本文后面主要介绍 IDE、官方教程和第三方库,看它如何一步步升华到合格的编程语言。
文言齋:开源 IDE 来了
之前文言编程不是没有 IDE,我们可以在线使用,并编译。但当时 IDE 并没有开源,它的高亮也有点「神奇」,在输入与编辑过程中了并不能高亮,只有编译后才能修改语句的颜色。而且有些中文会被认为是关键词,并不能直接使用,例如机器之心的「之」,如下是我们 2019 年年会的推文,它采用的就是当时的在线 IDE。
运行后会输出「今日无文,请阅「机器之心 Pro」」。
当时在线 IDE 似乎还不会报错,编译出错只有一个反应「输出为空」,而现在,这个新开源的 IDE,它已经会在线高亮、返回编译误差了。
现在的 IDE,用着已经算比较舒服了,我们可以部署或嵌入到其它地方,甚至可以通过 API 直接调用。每次调用,在 URL 中传入标题、代码以及其它各种缺省配置就行。
在线 IDE 地址:https://ide.wy-lang.org/
如下是当前 IDE 整体展示,其最左边导航栏主要分为用户代码脚本、示例脚本、第三方库列表三部分。值得一提的是,相比当时十来个示例脚本,现在的官方脚本已经有近 50 个,连「水墨画」的脚本都有。
此外,文言代码除了编译为 JS 代码,IDE 上还可以选择编译为 Python 或 Ruby 代码。只不过当前的在线 IDE 并不支持以 Python 或 Ruby 语言作为后端执行文言代码。
整个 IDE 的主题、编译方式、展现方式都能自由选择,它的可玩性已经非常不错了。
文言陰符:官方教程
作为官方的文言教程,势必需要懂文言文才能看懂,不然就显示不出它的「优越性」。在之前的文言编程示例或解释中,作者都是通过英文或实例来展示,描述语句都比较通俗易懂。
然而作为一本经典的官方教程,不用文言文写实在是太浪费了,因此也就有了《文言陰符》,它的风格是这样的:
上图是《文言陰符》项目的开篇描述,它以文言文的方式「生动地」描述了开发者与编程语言之间的关系。文言文加上繁体字,果然是天生一对,如果再加上一些通假字,说不定我们就回到了曾经的语文课堂。
《文言陰符》共有十三篇教程,从字面上大概也能了解这本书的主题,例如明义篇主要阐述什么是文言编程,变数篇主要介绍变量这个概念与用法。
总体来说,该书籍从基本控制语法、数据结构、函数与第三方库这几个角度展示了文言编程的主要内容,然后还要加上 Error 处理、制图和高级函数等进阶内容。如果读者们能把这些官方教程看一遍,估计你的文言文水平已经超越了大多数人。
这个教程确实很难,主要体现在文言文功底。相信很多读者对字典(Dict)这个数据类型十分了解了,它以 Key -> Value 的方式组织所有数据。然而在格物第十的开篇中,作者将字典这种数据格式解释为格物,「物」的的每一个元素都有一个「名」,或者称之为 Key,每一个「名」对应的属性值就是 Value。
如上类似于定义了名为「白马」的字典,字典里面的 Key 为白马的属性,它对应有一个属性值。夫「白馬」之「「名」」,即调用字典「名」对应的值。
当然,我们也能从类与属性的角度去思考,「白马」是「物」的实例化,实例化的过程中需要为物的各种属性赋值,并且可以在实例化后继续调用它们。
该教程还支持在线阅读,从右向左滑动的那种,这感觉有点上头。
这种风格的教程,俨然需要真材实料的文言知识。
文淵閣:连软件包都有?
一个编程语言,第三方软件包的数量就反映了社区的活跃度。想象一下,如果有 NumPy 或 PyTorch 这样的软件包,那么说不定就能用文言文写一个神经网络出来,如下 Lotayou 就用文言文写出了一个神经网络,完整代码可见项目的 Issue。
虽然,文言编程目前并没有「火炬心法」这个第三方包,但也不能阻止众多 DL 炼丹师的激情,Lotayou 写的「文言神经网络」尽管编译不了,但逻辑和语法都非常完整。
目前「文渊阁」这个第三方软件包管理器一共包含以下扩展包:
正如 Pyhton 有 pip,js 有 npm,文言编程语言也有包管理——文渊阁。尽管目前第三方库并不是太多,但一个合理的包管理器还是需要的,这样才是一个完整的编程语言。
文渊阁可以直接通过 NPM 安装,使用的时候,代码类似 pip 或 npm,只要带有「wyg」、「i」(install)和包名(如「子曰」)即可。
wyg i ziyue wyg i 子曰
上面两种都是可行的,运行后包会被下载到藏書樓/子曰这一路径下,藏書樓类似于 js 的 node_modules。
然后就是导入包了,就像 Python 中的 import 一样,文言编程的导入格式如下所示:
吾嘗觀「「子曰」」之書。方悟「子曰」之義。 子曰「「巧言令色,鮮矣仁!」」。
此外,你还可以发布自己的文言编程语言包,有了这种开源模式,这门语言就真正像是独立的编程语言了。
很难想象,经过两三个月后该项目就有了这么大的变化,也成为了一万五收藏量的大项目。将文言文这种传统文化,与编程语言这样的当代工具相结合,也许是非常不错的尝试。
Recommend
-
125
双十一已经过去一周了,包裹收齐了吗?有没有觉得快递费用更贵了? 越来越大的物流需求,需要企业在车辆和人力上支出更多,而这消耗的每一分钱,最终都需要你我这样的消费者买单。想要省下这一大笔钱,与其盼着学会控制自己不去剁手,不如盼着新的科技革新。
-
79
今天看了一下Toast的源码,或者如果你对AIDL感兴趣,可以看下去。 Toast不会同一时间显示多个,好像所有Toast都是排队了一样,而且不同的App都是排的一个队列一样。是的,这里有一个队列。而且因为不同App都是使用这一个队列,这里就用到了AIDL跨进
-
38
以为孩子只是站在水里,其实他正在死去!
-
39
一辈子都跟闹着玩儿似得
-
43
提取阿尔法狗中的灵感 还记得 2016 年 3 月 9 日 -3 月 15 日在韩国首尔上演的围棋界终极挑战吗?在总计五轮的人与机器的对决,人类一方的代表——世界围棋冠军李世石很不幸完败于机器一方的代表——美国 Google 公司旗下 DeepMind...
-
38
近年来,关于5G的话题只增不减,随着5G手机的陆续推出,很多人对于5G的认识可能还停留在网速的提升,事实上,5G的优势并不仅限于这一点,5G的到来可能会带来颠覆性的创新。
-
8
文章来自微信公众号: 机器之心 ,作...
-
30
一直在犹豫要不要写排序的文章,因为真的烂大街了。可是一旦细看,还真是很多值的思考的地方,所以还是选择记录一下 以下完整代码,均可从这里获取 https://github.com/Rain-Life/data-struct-by-go/tree/master/sort...
-
3
看了寺庙的会计招聘,甄嬛都要闹着再出宫上流UpFlow·2小时前月入过万,六根清净当办公楼下咖啡馆吸烟区的大厂人,聊天话题由谁谁财...
-
2
2023-05-29 10:45 百度申请文言一心商标 据金十消息,天眼查 App 显示,近日,百度在线网络技术(北京)有限公司申请注册多个“文言一心”“文言一新”商标,国际分类涉及教育娱乐、通讯服务、科学仪器,当前商标状态均为申请中。...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK