【吐槽】关于python和lua的一点浅见

来源:互联网 发布:防广告弹出软件 编辑:程序博客网 时间:2024/06/16 13:43

这段时间工作的强度有所下降,倒不如说恢复到正常的工作强度,因此也给了自己一点时间去了解下其他之前没有了解过的语言——python和lua。
这两个语言,一个是号称“人生苦短,我用python”,另一个则是上到魔兽,下到愤怒的小鸟运用的脚本语言,所以都有其一定的代表性。各自编写了一个导表工具之后,在我看来,这两个语言就好像两个极端一样:当你要制作某个设备时,你是用已经能制作出现成零件的工厂,还是要一个工具齐全的工具箱。

工厂式的python

虽然比喻不太恰当,但是python给我的感觉就是一座功能强大的工厂。因为庞大的使用人群,使得python有着非常多的现成的库,以至于你想得到一串字符串MD5码,都可以直接调用现有的方法。

import hashlib  data='我是'  m = hashlib.md5(data.encode(encoding='gb2312'))

你不用再去关注诸如MD5具体要如何实现这样的细节问题,你只要调用现成接口就行了,并且随着你的进一步学习,你发现代码还能越写越短,越写越简洁。所以到最后,你也不得不感慨“人生苦短,我用python”,因为python的智慧就是“less is more”。

工具箱式的lua

lua作为目前主流脚本语言中最快的语言,运行效率一直是他为人称道的部分。并且他跟C可以方便快捷的对接,所以很多时候都是在C中实现某个接口,再在lua去调用这个接口。然后你很快就会发现,很多时候,lua甚至是不得不这么做:因为他并没有太多现成的库,很多接口你得自己去实现。所以产生的现象,我们还是拿MD5加密举例,你得现在C中写好MD5的加密方法,再才能像python一样的使用已有接口,同时你还需要费点功夫来验证正确性。但是反过来说,你也可以理解为这正是lua的灵活所在:我没有工厂,但是我可以通过手中的工具箱制作这么一个工厂,功能甚至比你的还要好。

语言选择的场景

这里我就直接抛砖引玉,说下我的认识吧。
python因为有许多现成的库而变得十分强大,因此非常适合拿来做一些工具类的小应用(如导表工具之类的),但是当你要做的项目大到一定程度,许许多多的需求,python的现有接口并不能满足的时候,灵活的lua反而表现更为出色。另一方面,因为lua的高效,可能某个工具,python运行需要20秒,lua可能做到只用18秒。但可能在编写这个工具时,lua要多花1小时。如果这个工具经常被使用,十人团队人均180次以上(在一天三次,两个月就会达到这个数),你就会觉得lua的这个花费是值得的。

0 0