Dog编程语言

Sep Kamvar现为麻省理工教授,曾创办公司Kaltix被谷歌收购。

尽管只要敲几下键盘点几下鼠标就能在Twitter上发条微博,或是在Facebook上加个好友。但是这些任务需要几千行代码才能完成。

专为社交应用于开发的Dog编程语言

Dog是一种新的编程语言,它可以让编写所有社交应用的任务变得更加简单,更加直观。这些社交应用包括了从问答网站到线上约会的所有东西。而且,因为Dog嵌入了自然语言,所以它也让变成新手感觉更容易。

麻省理工学院媒体实验室的西普•卡瓦(Sep Kamvar)教授在几位研究生的帮助下研制出了Dog。他希望在接下来的几个月放出这种编程语言的封闭测试的版本,并在明年春天向公众提供公开的版本。

现有的编程语言(例如Java)让卡瓦感到沮丧,因为他们在编制社交代码的时候不必要的复杂。这也成了Dog出世的原因。当他坐下来开始写代码的时候,那些容易用英语描述的东西(比如通知某人某件事的命令)必须反映到数据存储和通信协议上。

“相对于考虑交互来说,在较低的抽象水平上写代码对我来说更重要,”卡瓦表示。“所以我想,开始写一种编程语言,让自己在所希望的抽象层次上写代码,这很有趣。”

首先,卡瓦定义了他在用传统编程语言编写社交应用(包括识别他人,倾听别人说话,与别人交流)时遇到的挑战。为了用新编程语言解决这些问题,他想出了一些方法。例如,为了更轻松地识别不同的人,他把“人”作为了一种基本的数据类型,并让新编程语言能够读懂这种类型,就像其他语言能读懂字符串或整数一样。

随后,他为这些创意设置了简单的句法(syntax),这些句法使用自然语言(因为该编程语言要处理与人类的协调沟通的任务),聚焦于一小部分非常清楚的命令上:问、听、通知和计算。例如,一行为简单社会新闻提要应用而编写的代码如下:“LISTEN TO PEOPLE FROM mit VIA http FOR posts (为了新帖通过http听MIT的人)”这样,应用就能关注一群麻省理工学院的人员更新的网页了。

尽管其他编程语言也能做这些事情,但是卡瓦认为,一般来说让其他语言来做难度比较大。Kamvar还表示,用户可以导入其他编程语言的函数,所以交互设计和社交过程可以用Dog编写,同时其他一些功能可以用别的语言编写。

在过去的一年中,卡瓦和学生们一直在研发Dog的编译器(一种可以把代码转换为计算机可执行文件的软件),他们还在用Dog编写演示程序来进行测试,例如类似Twitter的新闻推送功能。还有一个例子是对等的教学平台Karma,用户可以在自己的社交网络中使用它。它预计将在明年夏天向公众开放。

Dog将免费开源

Dog将是免费开源的语言,所以用户可以根据自己的需要自行添加和修改。虽然Dog是服务器端的语言(server-side language),也就是说它需要把数据传输到服务器才能执行任务,但是研究团队也在研发一个客户端(client-side)的版本。

卡瓦很可能会遇到一些质疑Dog的人,比如卡耐基梅隆大学研究编程语言理论的计算机科学教授罗伯特•哈珀(Robert Harper)。虽然哈珀也表示为非专业的编程人员创造一种让他们更易理解的语言很有意义,但是他不认为社交计算领域需要这样的语言。而且,虽说Dog这样的语言一开始是为了一种特殊的编程类型,“你总要面对一些更加复杂的问题,如果使用的语言目标过于单一,很快就会失败,”他说。

尽管卡瓦强调,他并不把Dog看作一种自然语言(就像Wolfram Alpha或者Inform 7那样),但包含了自然语言短语的Dog对非专业的程序员来说更容易一些。交互设计师和创业公司的产品经理就不是专业的程序员,他们经常想出一些需要做的电子,但必须等待软件工程师把这些改变变成公司的代码。

一般地说,Dog可以让所有人更简单地编程,或至少让他们更容易地理解网站背后的内容。虽然一些在线编程教学创业公司(例如Codecademy)吸引了一些目光,但是很少有人注意到一个事实:编程也许不需要像现在这么难,卡瓦说。

“也许我们应该把更多的注意力放在设计更加易学、功能却仍然强大的编程语言上,”他说。