青语言开源发布


6月1日,在这个充满欢声笑语的日子里,数心开物工作室开源发布了一门面向青少年、儿童和非专业人士的中文编程语言——青语言。

青语言主页:https://qingyuyan.cn

视频演示:https://www.bilibili.com/video/BV1CX4y1h7Zx/

长久以来,中文编程一直是开发者社区中争议不断的热点问题。一部分人认为,编程语言是符号化的语言,没有中英文之分,所以中文编程没有意义。而另一部分人则认为跨语种学习编程,存在事实上的困难,提高了学习门槛。这样的讨论在社区中一直热度不减,成为经久不衰的话题。

事实上,我国在中文编程领域并非一片空白,目前已存在多款中文编程语言,包括商用的易语言、习语言、TC简单开发工具等,以及开源的文言文编程、凹语言等等。

总的来说,这些中文编程语言都取得了一定的成功,但也都存在一些问题。以易语言为例,虽然和主流编程语言存在差距,但无论从使用人数还是商业角度上,都可以称得上是一门成功的编程语言。然而,易语言脱胎于VB,在享受VB生态便利的同时,也受到了相应的限制,其开发的软件主要局限于Windows平台的桌面应用。

在移动互联网迅猛发展的当下,桌面开发市场萎靡不振,VB早已风光不在,而易语言也同样面临困局。另一方面,目前开源社区发布的中文编程语言,大多缺乏编程开发相关的支持工具,同时缺乏推广的动力,因此迟迟未能出现被大众广泛接受的作品。

 

图示:易语言和凹语言

针对这一现状,我们深入分析了中文编程的特点,面临的问题以及潜在的用户,最终决定开发一门面向青少年、儿童和非专业人士的中文编程语言。

当下,我国在信息技术领域取得了长足进步,在各个前沿技术领域均不乏专业的技术人才。但与其他技术领域面临的问题类似,信息技术的开拓创新能力一直饱受诟病。造成这一问题的原因是多方面的,我们认为其中一个十分重要的原因是:我国缺少广阔而深厚的“编程土壤”。

在国外,尤其是英文国家,由于不存在语言障碍,青少年、儿童早早地就接触到编程相关的知识,很多科技领域龙头企业的创始人,在儿童时期就开始学习编程,锻炼了逻辑思维和创新能力。例如,比尔盖茨13岁开始学习编程,扎克伯格12岁时就开发了即时通讯软件,马斯克12岁时开发了一款游戏并赚到了500美金。类似的例子还有很多,不难看出,青少年时期的编程教育能够促进创新意识和创新能力的养成。

反观国内,我们的教学仍然以传统课程为主,不重视创新,普遍缺少编程方面的课程,很多计算机专业的同学直到进入大学阶段,才开始接触编程。

近年来,我国也在推广编程教育,例如一些地区在推行Python进入中学课程,但目前普及率较低。另一方面,市场上也出现了一些面向儿童的编程教育产品,例如来自国外的Scratch和国产的编程猫等。这类编程教育产品主要以拼图的方式进行教学,简单易学,但与主流的编程语言差异较大,对后续的编程教学帮助有限。总体而言,我国在青少年、儿童的编程教育方面与国外差距较大。

综合以上原因,我们开发并开源发布了青语言,其设计目标如下:

  1. 语法简单易学。
  2. 以中文为载体,主要使用中文进行编程。
  3. 提供中文帮助信息、提示信息和文档。
  4. 整体设计符合中文语法习惯和输入习惯,提供便捷的开发工具。
  5. 适合不同种类软件开发的通用编程语言。
  6. 提供简单便捷的功能扩展接口。
  7. 多平台兼容。

目前我们发布了青语言V0.9版本,已经基本实现了以上设计目标。

首先,青语言的语言内核来源于一门古老而充满哲学的编程语言——LISP,其被称为是“创造编程语言的语言”。基于这一点,青语言的语言核心精巧,语法的实现的代码仅涉及到少数几个核心文件,完成了从代码文本拆分到语法树构建,再到代码求解的全过程。作为一个开源项目,我们希望得到开源社区的助力,这时候保持一个简单小巧的核心,有助于开源开发者了解语言的实现,并参与到语言的开发中来。为此,我们对青语言的核心代码提供了尽可能详尽的注释,同时提供青语言开发文档,希望帮助开发者快速掌握青语言的开发。

在语法设计方面,青语言主要参考了JavaScript。基于LISP内核,我们有能力实现各种不同的语法,但在语法设计上目前没有做过多的创新,主要考虑有两点。其一是JavaScript的语法十分成熟,可以保证语法在逻辑上不存在大的问题。其二是我们希望青语言的用户能够快速过渡到主流的编程语言开发中。当然,青语言也并非完全照抄JavaScript,我们还考虑到中文的特点,在语法设计上尽可能地符合中文的语言习惯和输入习惯,便于学习和使用。

良好的文档对于构建语言生态有着十分重要的作用,尤其是对于青语言的初学者来说,详尽的文档和教学资源能够帮助他们快速了解和掌握编程知识。考虑到这一点,我们为青语言内置的函数都提供了函数的使用说明,使用者在解释器交互界面即可查看函数的使用方式。同时,我们提供了详尽的在线文档,包含完整的语言概念和语法介绍,以及一些示例的代码。

除文档外,开发工具同样十分重要,好的开发工具能够起到事半功倍的效果。为此,我们为青语言配套开发了一个青语言编辑器,提供了代码编辑、运行等功能,实现了简单的代码提示和补全,能够有效提升青语言代码的开发效率。此外,青语言编辑器中还内置了简单的教程,可以跟随教程学习青语言。

   

基于LISP内核,青语言可以根据不同的应用需求,设计相应的语法。例如,在图形界面编程方面,目前比较主流的方式是使用标记语言进行界面的设计,相对完全面向对象的方式效率更高。因此目前比较常见的图形界面开发方式是程序语言+标记语言。在青语言中,我们提供了标签数据类型,因此可以直接使用青语言完成程序界面和程序逻辑的开发。目前这个功能为青语言编辑器独有,通过简单的青语言代码即可实现图形界面程序。

编程语言的功能扩展方式,对语言生态起到十分重要的作用。青语言项目目前主要的工作体现在语言前端的实现,我们从零开始完成了从代码到语法树的构建,没有使用任何现有的组件,完全掌握语法实现的每一个细节。而青语言的后端则交由.Net平台来实现。基于这样的设计,我们可以借助.Net平台的生态,并且可以将扩展的功能打包为单个dll文件,能够很方便地在青语言代码中引用其功能。动态库的开发是我们目前最希望能够得到开源社区支持的方向,我们提供了开发动态库的示例程序和教程文档,希望更多专业方向的开发者加入项目的开发。基于.Net生态,我们可以实现十分丰富的功能,例如我们封装了简单的AI功能。

        

青语言后端使用.Net的另一好处是可以实现跨平台兼容,本次发布即提供了各个主流平台的可执行程序,下载后可以直接运行使用。除了桌面程序外,我们还提供了一个安卓端的APP,能够实现手机上编程,进一步降低了语言的学习成本。不过需要注意的是,这是一个实验性的项目,由于系统差异,有部分内置函数无法正常使用。

开源项目的发展,尤其是编程语言这类基础项目的发展,需要持续的投入。为此我们与高校合作建立了青语言联合实验室,依托高校教研资源,保障青语言生态的持续稳健发展。目前我们还在积极寻求更多的合作伙伴,可以通过邮箱[email protected]联系我们。

 

以上就是本次发布的青语言的一些基本介绍,作为一个开源项目,我们希望更多热爱编程的开发者加入到项目中。中文编程这一话题虽然争议不断,但我们确实希望能够消除语言障碍,让更多人了解编程,爱上编程。我们将与社区共同进步,持续推进青语言生态的发展。


相關推薦

2023-06-08

数心开物工作室于6月1日开源发布了一门中文编程语言——青语言,并在开源PHP、博客园等技术社区发布了相关新闻。与预期的一样,中文编程作为一个极具争议性的话题,该新闻一经发布,便收获了较多的关注和评论,其中包

2023-10-21

【源创会预告】1024 程序员节(的前两天),相约开源PHP办公室,我们一起聊 AI!>>> 国新办10月20日就2023年前三季度工业和信息化发展情况举行发布会。工业和信息化部新闻发言人、运行监测协调局局长陶青表示,下一步,我们

2023-08-22

凹语言是国内 Gopher 发起的纯社区构建的开源国产编程语言项目(没有公司背景、没有任何赞助)。同时凹语言也是国内第一个实现纯浏览器内编译、执行全链路的自研静态类型的编译型通用编程语言。   官网:https://wa-

2022-11-12

Go 语言开发团队技术 leader Russ Cox 在博客中庆祝 Go 开源 13 周年。2009 年 11 月 10 日,Go 作为开源项目正式宣布推出,目前已开源 13 周年。   对于 Go 来说,2022 是非常重要的一年,这一年  Go 发布了 Go 1.18 和 G

2023-04-02

erveMind 公司基于 GPT-4 发布了一款名为 "NGPTL++" 的全新编程语言。根据文档介绍,这款编程语言具有革命性的特点,将彻底改变软件开发领域。 NGPTL 即 Next Generative Pre-trained Transformer Language,++ 则是致敬经典的 C++ 命名方式(inspi

2022-07-16

BigScience 的研究人员近日发布了一个名为 Bloom 的自然语言处理模型,该模型具有 1760 亿个参数,一举超越市面上的所有竞争对手,成为目前规模最大的语言模型。 该项目始于去年,由人工智能初创公司 Hugging Face Inc.(最近融

2023-03-21

、开源协同等方面的重要数据。 研发人员占比达 74%,Go 语言蝉联腾讯最热编程语言 《报告》显示,2022年腾讯内部研发人员占比达到74%,意味着平均每四个腾讯员工中,就有三个从事研发工作。去年一年,腾讯新增研发项目超

2023-07-05

能够高速采集海量互联网数据的开源搜索引擎,采用 Go 语言开发。 Github 地址:https://github.com/johnlui/DIYSearchEngine 运行方法 首先,给自己准备一杯咖啡。 把本项目下载到本地 编译:go build -o ese *.go 修改配置文件:cp .env

2022-07-08

全球各地的用户紧密联系到一起。为了让用户不受地域、语言等条件限制,Facebook 母公司 Meta 近日宣布其 NLLB(No Language Left Behind)项目取得了突破,能为世界上大多数语言开发出高质量的机器翻译。 该 AI 模型名为 NLLB-200,可

2023-11-17

序。使用基于 Git 的基础设施即代码 (IaC) 工作流的声明式语言越来越多,云部署的标准化程度更高,开发人员使用 Dockerfile 和容器、IaC 以及其他云原生技术的速度也急剧加快。 2023 年 first-time 开源贡献者数量最多。其中,有商

2022-12-04

开通 开源PHP机构号 和 微信公众号, 主仓库迁到 Gitee 包路径调整为 wa-lang.org/wa 改进类型方法语法, 支持平台特定源文件 WAT 后端支持多返回值, 支持闭包和方法值, 支持 Arduino Nano 33 LLVM 后端支持多返回

2023-09-06

AIdea 是一款集成了主流大语言模型以及绘图模型的 APP, 采用 Flutter 开发,代码完全开源,支持以下功能: 支持 GPT-3.5/4 问答聊天 支持国产模型:通义千问,文心一言 支持文生图、图生图、超分辨率、黑白图片上色等功能

2023-07-27

OpenBuddy-LLaMA2-13B 是一个基于 Llama 2 的全新跨语言对话模型。 Llama 2 是 Meta 最新发布的模型基座,它的数据比前一代模型更为充分,且对月活7亿以下的商用予以支持。这意味着,更多的公司和团队可以使用这个模型进行商业开发

2022-02-24

Visual InterDev 和 Visual J++。其中除了 Visual C++ 以外,其他的语言在当时或多或少都存在着一些问题。  VB 曾经非常流行,但面向对象编程语言的狂热分子经常抱怨 VB 缺乏对继承的支持,对于使用 COM 和 Windows API 的高级应用来