作者丨大狮兄
来源丨W3Cschool(ID:w3cschoolcn)
Python之父Guido van Rossum是个荷兰人,Java发明者James Gosling是一个加拿大人,就连一个小小的岛国,也有自己的编程语言Ruby。作为泱泱大国,为什么我们却没有自己的编程语言呢?
有人会说:“易语言啊,难道不是中国人发明的?”很遗憾的是,大部分程序员都不太愿意使用它,它的受众也仅限于中国,基本上不可能出现在国际舞台上。
难道中国人没办法开发出自己的编程语言吗?
当然不是。最近有一名叫胡渊鸣的清华学霸,用事实证明了,并不是我们不会,而是没必要,一旦有必要,分分钟创造一门编程语言出来。
计算机图形学对性能的要求很高,但生产效率又极其低下。
以动画《冰雪奇缘》为例,这部动画使用的是迪士尼动画工作室的物理引擎Matterhorn,Matterhorn则使用的是一种名为MPM模拟连续介质的方法,但是其性能和复杂度,是在近两年才有所改进,早期的MPM运行速度非常慢。
《冰雪奇缘》中有一个冰雪女王艾莎跨过雪地的镜头,在集群上足足跑了整整一个星期才完成。
有什么办法,可以满足计算机图形学对性能的追求,同时又能够提高生产力呢?胡渊鸣打算从底层解决问题——重新设计一门新的编程语言。
虽然很早之前,胡渊鸣花了很多时间做low-level performance engineering,但真的写一个编译器出来,还是第一次这么干。他知道,设计编程语言的工作量非常大,但胡渊鸣还是决定,由自己一个人完成。他认为,一个人独自开发有很多好处。
比如,早期的编译器开发是一个非常严密的过程,如果几个人一起写,容易引入更多的bug,反而不如一个人的效率高。无论做什么,都可以由自己一个人决定,也容易get到写编译器的快乐。
虽然有预估了写编译器的工作量,但事实上这个工作量要比预期要大上很多,原本计划一个月出来,结果硬生生多用了几个月的时间,好在编译器总算是完成了。
说到这里,胡渊鸣还特意感谢了自己的女友:
我想这很大程度上得益于我和女友平时有12-13个小时时差,她睡觉的时间我可以专心写代码。
胡渊鸣将自己设计的编程语言命名为Taichi(太極)。他表示,之所以叫太極,是因为它不仅是汉语繁体字,同时还是日语的平假名。因为太極很大一部分都是作者在东京大学实习期完成的,包括 10 多篇论文和软件的一般框架,所以他采用两者皆可的名字。
使用Taichi编写的一些效果图:
胡渊鸣其人
胡渊鸣是 MIT 人工智能实验室(CSAIL)的一名博士二年级学生,师从 Fredo Durand 和 Bill Freeman 两位教授。
他从小就对计算机表现出极大的兴趣,因其在 2012 年全国高中学科奥赛(信息学)中的优异成绩而被保送至清华大学。
2017 年 7 月,胡同学作为优秀毕业生从清华大学姚班毕业。他在微软亚洲研究院跟随 Stephen Lin 博士实习时从事深度学习和计算机视觉相关工作。胡同学的本科论文主要研究的是使用强化学习和对抗学习的自动照片后期处理(发表在 SIGGRAPH 2018 大会上)。
胡同学原文:
https://zhuanlan.zhihu.com/p/97700605
Taichi项目地址:
https://github.com/yuanming-hu/taichi