新推出一种由大型数据结构组成的新编程语言,这样程序员就可以避免命名新事物了。
这个新编程语言的作者,来自乌克兰的软件工程师Oleksandr Kaleniuk在媒体采访中表示,这是“对始终存在命名问题的半开玩笑反应” 。 “命名很难,所以我们什么都不命名,看看这样编程是否会变得更加容易。”
他后来补充道:“事实并非如此。”
“该语言还没有实际应用到程序上,但作为开发人员和用户,使用起来都很有趣。”
而且,语言本身也没有名称。
以上来自无名编程语言文档的片段。
GitHub:https://github.com/akalenuk
关于新的“无名”语言
“只有一种数据结构,”该语言在GitHub上的存储库中解释道。“既然只有一个数据结构,就不需要名字了。”
但是,该数据结构中的分支和子分支可以表示更小的数组甚至矩阵。字符可以表示从字符串到数字的所有内容,以及逻辑比较与数学运算。甚至还有用于从文件读取或写入数据的符号,甚至删除该文件
而且,这个编程语言中只有一种操作。
语言解释器通过其唯一的数据结构工作,每当遇到_符号时将值添加到堆栈中,或者对它们进行操作(如果 _ 符号在算术运算之前)时。
“help”的字符对是e_ (因此运行名为the_namingless_programming_language的文件将在解析器命中e_字符后立即启动帮助...)
生成的源代码甚至用作文件名时“以避免你编写程序时出现命名问题”。
最后,GitHub 上的存储库中还强调,该语言本身没有名称。因此,将其称为“无名编程语言”的行为只是对这种尚未命名的语言试图实现的目标进行定义。
“这样的语言在世界上只存在一种,所以它不需要名字。”
语言之灵感
在这个语言里,是有一些真正的编程概念在起作用的。
作者Kaleniuk 这样表示说,无名“只是面向堆栈和默认的一个奇特名称”。
它受到了 Forth、APL 和Uiua等语言的启发。Kalenuik 说语言还结合了数组编程和堆栈,他说主要灵感是另一种面向堆栈的语言:PostScript。
PostScript 是一种著名的电子出版行业的“页面描述”语言,根据 Kaleniuk 的说法,它不仅发送数据(关于哪里绘制直线和曲线),还发送代码——“这是一种可运行的程序,可提供给机器解释,进行实际的打印。”
同样的需求场景也出现在 Kaleniuk 担任一家全球 3D 打印公司软件工程师的工作中。
如果可以用公式对要打印的形状进行编码而不是仅使用大量数据转储,这不是很有用吗?
Kaleniuk 选择了一种数组处理语言来保持一切简洁。“我们谈论的是千兆字节的代码/数据。”而且由于它“99% 是机器生产的,100% 是机器消耗的”,因此它也可以是高度抽象的。Kaleniuk 说,“无论如何没有人愿意读它。”这导致 Kaleniuk 决定采用面向堆栈的方法。使用高度抽象的隐性语言进行编程。
Kaleniuk 称这“只是一个设计实验、一个玩的东西、一个玩具……
作者在基辅编码
Kaleniuk 还开发了一个名叫Words and Buttons Online的网站,其中包含编程和数学教程(以及演示和测验)。就在上个月,他还添加了一篇文章,介绍了所有被认为比他长期使用的编程语言 C++具有竞争优势的技术。
去年,Kaleniuk 还撰写了《程序员的几何》一书。“掌握 CAD、游戏引擎、GIS 等背后的数学!”。
下面是出版商 Manning Publications 的官方页面。
自 2015 年以来,Kaleniuk一直担任3D 打印公司 Materialise基辅分公司的软件工程师,两年前转任项目经理。“我希望战争结束、恢复正常后就立即把这件事放在一边,说实话,我本来希望战争现在就能够胜利……”
Kaleniuk 于 2014年在乌克兰东部工作。他已经在俄占领下度过了几个月,并得出了“俄罗斯并不那么强大,只是野蛮”的结论。
他还记得俄罗斯全面入侵的第一天。
“2022 年 2 月 24 日,我在导弹来袭的声音中醒来,打开我的电脑,打开我的银行应用,并向军队捐款。2014年我也这么做了。这就像一条规则。每当你听到爆炸声——你就在捐款。这会给你一种控制的错觉……
“你还要检查国家金融体系是否仍在运转。”
他说,他认识的大多数从军队退役的软件工程师都缴纳了税款,“然后将剩下的钱分给军队和家庭。”虽然有些直接为前线工作……我们希望战争结束,我们愿意为此付出代价……”
笼罩在这一切之上的是一种非常清晰的感觉:这是一场战争。“有些人已经付出了生命的代价。在我的书出版前几天,我的朋友在战斗中阵亡。他也是一名软件工程师。”
Kaleniuk 试图将自己的捐款分配给这支部队,用来“购买炮弹和火箭”以及非政府组织和个人志愿者,后者“帮助快速完成紧急请求,但不提供武器和弹药”。
他所写书的出版商于 2022 年 3 月上旬支付了第一笔付款,“我立即捐赠了这笔钱。因为战争仍在继续……大约一个小时前,一枚俄罗斯导弹再次击中了我家附近的某个地方。”
“作为一名平民、一名工程师和一名数学家,我对此无能为力。但我可以赚一些钱并捐赠给有能力的人。这就是我从二月以来一直在做的事情,也是我计划做的事情直到胜利。”
开发者的反响
今年早些时候,Kaleniuk 发现他的编程语言正在Hacker News 上被人们热烈讨论。他很高兴它收到了“大部分是积极的反响”。
“这让我想起了超低级编程、操作数据堆栈等,”一个澳大利亚的Web开发人员Ben Winding写道:“它可能会成为一种有用的学习工具。”
关于命名,还如何提高可读性的讨论不可避免,还有一些评论者对 Kaleniuk 的努力表示赞赏,其中一位说看到了该实验的真正价值。
“根据我自己的经验,从事像这样的‘愚蠢的’项目,例如存在严格的人为限制,可能会非常有趣,并且相当富力有挑战性,并且会带来可以在以后应用于实际项目的经验经验。”
Kaleniuk表示,他的这次经历非常完美,非常丰富。
“我确实记住了我学到的经验教训,所以也许有一天你会看到一些很棒的 3D 打印的东西,并思考‘他们是如何成功打印出如此复杂东西的?’而且你会记得那种深奥的小众语言,根本没有现实世界的应用程序......”
结语
在语言 README 文件的末尾,Kaleniuk 承认该语言的创建“是为了将它从我的系统中删除,并且取得成功。我的意思是,我确实成功地将它从我的系统中删除了,不知道怎的,我不想再玩它了。”
“漂亮吗?不,” Kaleniuk 在 LinkedIn 上发帖称。“实用吗?一定不行。好玩吗?比你想象的还要多。”
Kaleniuk 还告诉我们这一切会“导致什么样的结果”:
“我玩得很开心,现在还分享了源代码,这样其他的朋友也可以一起玩~”
作者:场长
本文为 @ 场长 创作并授权 21CTO 发布,未经许可,请勿转载。
内容授权事宜请您联系 webmaster@21cto.com或关注 21CTO 公众号。
该文观点仅代表作者本人,21CTO 平台仅提供信息存储空间服务。