程序员社区有两大最火的话题,编辑器和编程语言。 这不,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的解决方案,这里就不细看了。 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就是正确的选择。 点击“阅读原文”,查看更多精彩评论。 本文转载自:微信公众账号 - 开发资讯,版权归原作者所有! |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|