去年入职了一家新公司,负责的是一个行业的具体业务。入职没多久便遇到了命名问题:很多业务相关的名词都是用中文表述的,翻译成对应的英文相当困难。好不容易各种翻箱倒柜找到了对应的翻译命名,结果 review 同事的代码时直接晕倒:同一个中文名词在不同人手里有着 3 种完全不同的名字!
自此之后我便思考:业务代码说到底就是 CRUD,又不需要开源给老外看,为何不直接用中文命名呢?而目前大部分编程语言(如 Go
, Python
, JS
等)都是基于英文设计,直接使用中文命名必然会导致频繁地切换输入法,最终写出来的代码也不够协调;所以最后决定自己设计一门纯粹面向业务的编程语言吧!于是我就花了大约一年的时间去开发Zn
。
目前
Zn
的基本语法已经实现(见后面的图),但是距离一门真正可用的语言还有一段距离,所以目测会有些 bug,还请多多详解。
Zn 是一门 面向业务 的编程语言。
所谓「面向业务」,即是为用户开发业务代码时提供便利,使得用户能够快速根据真实需求投射出简洁、稳定、可维护的代码。Zn 在设计之初即强调「以人为本」,希望程序能够适应真实世界的需求而不是让开发者去适应代码逻辑。
为此,Zn 拥有以下独特的特性:
采用 中文关键词及标点符号。这样再也不用为「用英文命名变量」之事发愁了。
默认使用 高精度小数 作为数值并参与运算,杜绝因浮点数计算所带来的计算误差。
这一点对开发金融应用尤为关键。显然,诸如 0.1 + 0.2 = 0.30000000000000004 这样的结果在金融应用中是无法忍受的。
贴近汉语本身语法,阅读代码可以像阅读文章一样自然。
关键词之间不必用空格分隔。
Zn 语言采用 Go
开发。之所以选用它是因为它在开发效率以及运行效率间取得了平衡,而且里面内置的函数库也帮助省去了很多开发上的障碍(比如 高精度运算使用 math/big
库,里面直接使用 Go 自己的 GC 等);之后将 Zn 内嵌到已有的 Go 项目里也会变得十分简单。
详细见 GitHub
求解鸡兔同笼问题
调用方法
定义一个类,并调用其方法
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.