我的代码竟然能写得如诗歌一样!

本文首发于微信公众号,内容可自由转载,但请务必注明来源地址,否则将会投诉维权处理!

有的同学肯定在想,东哥又在吹牛逼了。谁的代码能写得如诗歌一样?充其量也就中规中矩,反正在外行眼里,计算机语言一般都晦涩难懂,程序员就是一群怪人!

好了,先给大家分享一段代码。

哇!东哥,你别逗我,这是代码?怎么看起来像诗歌?

其实,我初次在 hacker news 上面见到这段代码,也是大吃一惊,竟然有人在键盘上喷薄而出的不是循环语句变量名赋值函数布尔逻辑。。。而是怒放的生命和诗意的诗歌。

我在它的 Github 简介里,看到它的设计者 Dylan Beattie 是这样介绍这门语言的,这是一种动态类型的图灵完备的编程语言,旨在创建出可当作歌词使用的计算机程序,并且语言风格受到 20 世纪 80 年代硬摇滚和电力民谣抒情风格的严重影响。

为什么他要设计这门语言?正如他博客所说,他对摇滚音乐很痴迷。其次,他也在Github 的介绍里说道,如果让 Rockstar 成为一种真正的编程语言,那么面试者与和招聘经理将无法再胡扯什么“摇滚明星般的开发者”了。

好了,咱们来说说这门语言的特点吧。

这门语言用带有 .rock 后缀名的 UTF-8 文件保存。

这门语言很奇葩,强烈不建议用注释,为什么呢?因为注释会让你写的代码显得很 low。有同学可能想如果我真的需要注释怎么办?那么可以用括号来注释。

接下来咱们说说他的变量,公共变量由关键字a,an,the,my与自定义的特定变量名组成,该变量名仅包含小写ASCII字母a-z,变量中允许出现空格。与一些其它的动态语言一样,也不需要提前声明。

我们语言中用到的一些代词,比如it, he, she, him, her, they, them, ze, hir, zie, zir, xe, xem, ve, ver,一般会按照顺序被命名为变量。

关于赋值语句和读取语句,用is,put in,listen,give back,say等关键字;还有自增和自减语句,用 up,down;关于数学运算,用plus,minus,times,over;逻辑运算,用 and,or,nor,not;还有一些其它的,可以直接去官方文档查询。

条件判断依然用if;循环用 while,until;还有 break,continue。

聪明的同学,肯定会疑惑,怎么来区分代码块呢?它用空行来区分,是不是跟我们的自然语言很接近啊。

那怎么来定义一个函数呢?用 Multiply 关键字来定义,用 takes 关键字来列出所有的参数,参数之间可用and,也可用分号。

目前这门语言,有一些开源爱好者对它进行了实现,如下图所示。

我选择其中的 python 实现,运行了一下,目前该 python 的实现方案是按照 Rockstar的语法转换成 python 语言,再运行 py 脚本。

上面这幅图的运行结果,就是上面那首诗歌,很有意思吧。

同样,还有一些开发者写了一些支持该语句的编辑器插件,我相信聪明的你一定能找到一款适合你的插件。

还是那句话 “Github 是一块大的矿区”,咱们一起去 Github 上面寻找宝贝吧!

今年的第一篇原创文,咱们一起加油,一起努力。

PS:原文地址


最后,顺便给大家推荐一个牛逼的公众号叫「Java面试那些事儿」,可以让你了解Java面试中的那些事,扫描下方二维码,关注并回复「程序员」,直接赠送忆蓉之心珍藏的经典电子书。

返回首页