首页 存档 技术 查看内容

从Python到Lua:原因何在?

2018-3-30 13:00 |来自: 互联网 323 0

摘要: 程序员社区有两大最火的话题,编辑器和编程语言。 这不,Distelli的一篇博客“Using Lua for Our Most Critical Production C”(https://www.distelli.com/blog/using-lua-for-our-most-critical-production-code) ...

程序员社区有两大最火的话题,编辑器和编程语言。

这不,Distelli的一篇博客“Using Lua for Our Most Critical Production C”(https://www.distelli.com/blog/using-lua-for-our-most-critical-production-code)又引发了热烈的讨论。

Distelli是一家提供部署服务的公司。博客为其工程师Brian Maher所写。文中提到,现在安装Distelli Agent就是下载一个可执行程序这么简单。这个agent可以跨平台移植,而且消耗的资源非常少(大约10MB内存,CPU使用率小于1%)。

Brian Maher认为,性能改善明显,至少部分原因是从Python到Lua的迁移带来的。

使用Python的挑战


首先,他解释了使用Python的挑战。他在2014年加入Distelli时,Distelli Agent和命令行工具实现为一组tarball,它们会使用系统的Python版本(支持2.4~2.7)。他在这方面遇到了不少问题,比如用Python 2.7编写并测试了代码,但是可能与旧版本的Python不兼容。而有的客户又想使用Python 3。有时他还想用一些原生库。

总的来看,依赖系统的Python版本,这种策略并不是很好。所以他考虑重写。

选择Lua


Lua非常轻量,而且速度很快。Mike Pall的LuaJit也让人印象深刻。Lua解释器非常小,很容易嵌入到别的应用中。而且luvi这个工具很好地解决了绑定C库的问题。将需要的东西打包到一起,可以避免对系统环境的依赖。


后来Brian用Lua重写了agent,取得了不错的效果。


讨论


不出所料,语言的问题肯定能引发很多讨论。HackNews上的讨论非常多,或支持,或反对。

很多熟悉Python的人提出了一些反对意见。

orf评论说:

我通常不会评论这类文章,但是这篇我感觉有必要说几句。发现很多问题:

- Python 2.4?真的假的,什么年代了?2014年还用这个版本?

- 确实,要编写兼容10多年前的Python版本的代码确实很困难。不过谁还用Python 2.4呢?

- 2014年你应该支持Python 3。或者至少把它放到路线图上。

- 从Python调用C非常非常简单。

他还提供了很多Python的解决方案,这里就不细看了。

viraptor给出了一个打包Python的解决方案,和打包Lua一样,可以得到类似的一个二进制文件,好处是不需要重写。

也有人认为,这种改变只不过是因为文章的作者更喜欢Lua。但是他离职了怎么办呢?找Python开发者总比找Lua开发者方便吧?

不过很多人表示理解。有些仍然使用RHEL 5的客户(可能要支持到 2017 或 2020 年),系统所带的Python版本就是2.4。

后来Distelli的创始人Rahul Singh也出来发话了。最早的Python版本是他写的,之所以选择Python 2.4,是因为很多企业客户的服务器上跑的就是这个版本,所以不得不支持。

告诉客户他们这么做不对?呵呵……

也有很多人在谈支持这么老的版本不好,会积累大量的技术债。这一点比较有趣,很多时候,我们都知道这样不好,那样不好,但是……

也有人问,有没有考虑Go语言?Rahul Singh提到,确实有考虑,但Brian更熟悉Lua语言,在这种情况下,Lua就是正确的选择。


点击“阅读原文”,查看更多精彩评论。

本文转载自:微信公众账号 - 开发资讯,版权归原作者所有!

声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部