那个饱受争议的文言文编程项目,现在怎么样了...

2023-10-23 22:50

本文主要是介绍那个饱受争议的文言文编程项目,现在怎么样了...,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

公众号关注 “GitHubDaily”

设为 “星标”,每天带你逛 GitHub!

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

之前 GitHub 上之前有人开源过一个项目,让开发者可以完全采用文言文的方式编程。项目一经发布,便受到很多开发者的关注,在 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 为白马的属性,它对应有一个属性值。夫「白馬」之「「名」」,即调用字典「名」对应的值。

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

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

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

教程地址:https://book.wy-lang.org/

文淵閣:连软件包都有?

一个编程语言,第三方软件包的数量就反映了社区的活跃度。想象一下,如果有 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 一样,文言编程的导入格式如下所示:

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

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

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

不过即便如此,到了现在还是有不少人觉得该项目毫无意义,你们觉得呢?

推荐阅读:
膜拜!感谢大佬们赏饭吃,计算机界的十位顶级泰斗!向你们致敬!100 个网络基础知识普及,看完成半个网络高手!当初我要是这么学操作系统就好了(附思维导图)神奇!VS Code 上也能玩转 Jupyter Notebook 了(附教程)
飞机上一般是什么操作系统?

这篇关于那个饱受争议的文言文编程项目,现在怎么样了...的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/270964

相关文章

Java AOP面向切面编程的概念和实现方式

《JavaAOP面向切面编程的概念和实现方式》AOP是面向切面编程,通过动态代理将横切关注点(如日志、事务)与核心业务逻辑分离,提升代码复用性和可维护性,本文给大家介绍JavaAOP面向切面编程的概... 目录一、AOP 是什么?二、AOP 的核心概念与实现方式核心概念实现方式三、Spring AOP 的关

vite搭建vue3项目的搭建步骤

《vite搭建vue3项目的搭建步骤》本文主要介绍了vite搭建vue3项目的搭建步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1.确保Nodejs环境2.使用vite-cli工具3.进入项目安装依赖1.确保Nodejs环境

idea+spring boot创建项目的搭建全过程

《idea+springboot创建项目的搭建全过程》SpringBoot是Spring社区发布的一个开源项目,旨在帮助开发者快速并且更简单的构建项目,:本文主要介绍idea+springb... 目录一.idea四种搭建方式1.Javaidea命名规范2JavaWebTomcat的安装一.明确tomcat

pycharm跑python项目易出错的问题总结

《pycharm跑python项目易出错的问题总结》:本文主要介绍pycharm跑python项目易出错问题的相关资料,当你在PyCharm中运行Python程序时遇到报错,可以按照以下步骤进行排... 1. 一定不要在pycharm终端里面创建环境安装别人的项目子模块等,有可能出现的问题就是你不报错都安装

uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)

《uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)》在uni-app开发中,文件上传和图片处理是很常见的需求,但也经常会遇到各种问题,下面:本文主要介绍uni-app小程序项目中实... 目录方式一:使用<canvas>实现图片压缩(推荐,兼容性好)示例代码(小程序平台):方式二:使用uni

MyCat分库分表的项目实践

《MyCat分库分表的项目实践》分库分表解决大数据量和高并发性能瓶颈,MyCat作为中间件支持分片、读写分离与事务处理,本文就来介绍一下MyCat分库分表的实践,感兴趣的可以了解一下... 目录一、为什么要分库分表?二、分库分表的常见方案三、MyCat简介四、MyCat分库分表深度解析1. 架构原理2. 分

linux查找java项目日志查找报错信息方式

《linux查找java项目日志查找报错信息方式》日志查找定位步骤:进入项目,用tail-f实时跟踪日志,tail-n1000查看末尾1000行,grep搜索关键词或时间,vim内精准查找并高亮定位,... 目录日志查找定位在当前文件里找到报错消息总结日志查找定位1.cd 进入项目2.正常日志 和错误日

在.NET项目中嵌入Python代码的实践指南

《在.NET项目中嵌入Python代码的实践指南》在现代开发中,.NET与Python的协作需求日益增长,从机器学习模型集成到科学计算,从脚本自动化到数据分析,然而,传统的解决方案(如HTTPAPI或... 目录一、CSnakes vs python.NET:为何选择 CSnakes?二、环境准备:从 Py

基于 Cursor 开发 Spring Boot 项目详细攻略

《基于Cursor开发SpringBoot项目详细攻略》Cursor是集成GPT4、Claude3.5等LLM的VSCode类AI编程工具,支持SpringBoot项目开发全流程,涵盖环境配... 目录cursor是什么?基于 Cursor 开发 Spring Boot 项目完整指南1. 环境准备2. 创建

MySQL的JDBC编程详解

《MySQL的JDBC编程详解》:本文主要介绍MySQL的JDBC编程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言一、前置知识1. 引入依赖2. 认识 url二、JDBC 操作流程1. JDBC 的写操作2. JDBC 的读操作总结前言本文介绍了mysq