【IT168 评论】在过去的一两年里编程领域迎来了翻天覆地的变化,如果说C,JAVA这些在过去几年里风靡全球,抢占Tiobe榜单,那么在如今移动领域兴起的年代 ,objetive-C也给Java造成很大的冲击。在编程领域没有“一招鲜,吃遍天”的说法。对于开发者们来说总是在不同的领域里寻找着合适的非常好的语言。
那么反过来说,每种编程语言在不同的场景里,开发效率和执行效率都是有着天壤之别,比如说erlang适用于并行,PHP适用于WEB,R适用于统计,C#适用于界面等等,所以术业有专攻,一个优秀的程序员不在乎languages千千万,更关注的是编程技术发展的指向的领域。
所以本文我们来分析一下目前在各个领域比较流行的四大编程语言,在不同领域和不同场景里面的非常好的实践。
LUA
结合Cocos2dx游戏开发
自从Cocos2d-x团队大力支持Lua的绑定后,备受移动开发者的关注。在游戏开发中涉及到的用户界面交互,场景管理以及角色逻辑等等完全可以使用Lua完成。实际应用上,与Corona SDK这样100%使用Lua进行开发的游戏引擎相比,cocos2d-x+Lua不但有着明显的性能优势,更是在扩展能力上也不受到任何限制。
在脚本语言的领域里,js则更是个强大的对手,很多人也会去选择Cocos2d-x+js。那么相比之下,Cocos2d-x+Lua到底有如何的优势呢?编者摘自知乎上面 廖宇雷 游戏开发者的精彩回答:
1. 运行效率:Lua 的性能在各种测试里比JavaScript快不少。而移动设备上存在不支持JIT 的情况(未越狱的 iOS 设备),Lua对比JavaScript的性能优势就更明显。
2. 安全性:现在 cocos2d-x使用LuaJIT来执行Lua,所以可以把Lua代码编译为字节码再打包到游戏里。由于LuaJIT的字节码是高度优化过的,所以目前还没有反编译工具。而JS虽然也可以用字节码,但从目前的情况看还达不到LuaJIT的安全性。
3. 与C/C++的交互:Lua 原本就是作为嵌入式语言来设计的,所以天然和C/C++很容易交互。JS这方面是个劣势。
4. 与 Java/Objective-C 的交互:不管是 quick-cocos2d-x 里提供的 luaoc/luaj 模块,还是 wax, luajava 这些开源项目,都让我们可以绕过 C/C++ 层实现 Lua 和 Java/Objc 的交互。这个优势在游戏发行阶段,集成各种第三方SDK时绝对会节约巨量时间!
当然,cocos2d-x 目前明显是在主推JS的解决方案,因为JS可以跨越移动设备、桌面的界限,实现一套程序跑任意平台。不过个人认为以当前 HTML5 的发展情况,对于要强调体验的游戏来说,HTML5 还要一些时间。
所以,从目前的市场情况来说,Lua 明显是更理性的选择:成熟、安全性高、众多大作采用。
Python
Web后端、服务器开发
python被称作为胶水语言,可以通过编译的C语言程序来扩展,能够完成现实中的各种任务,包括开发者们日复一日所做的事情。作为编制其他组件、实现独立程序的工具,它通常应用于各种领域。实际上,作为一种通用语言,Python的应用角色几乎是无限的:你可以在任何场合应用Python, 从网站和游戏开发到机器人和航天飞机控制。
而能够让大多的开发者喜欢的是Python代码的可读性。清晰明了而简单的编码可以减少编程时间。无论是面向对象、命令式和函数式的应用,以及自动内存管理都是Python的特色。
在IT领域更多开发者更喜欢用它来做为WEB开发,并被列入LAMP (Linux, Apache, MySQL 以及Python/Perl/PHP)中,引领动态语言。相比PHP,在知乎上一位匿名用户就认为Python可以非常自然的扩展到队列(RabbitMQ)、后台处理系统(基于 Celery)、数据挖掘(SciPy、NumPy)、文本处理(NLTK)、系统部署(Fabric)、监控(Supervisord)等所有方面,而PHP只能做网页前台。
所以,根据Python在Web的一些优势,总结一下几点:
1. Python的代码风格简洁易懂易于维护,包括语法优势不用写大括号,代码注释风格统一,强调做一个事情只有一种方法
2. 有着丰富的Web开源框架,主流的包括Web2py,Web.py,Zope2,Pyramid,Django等。
3. 跨平台能力,支持Mac,Linux,Windows等。
4. Python可用库和模块比较多,非常方便。
5. Python应用领域比较广泛,可用后端,服务器,Web应用程序等开发。
6. Python社区非常活跃,在社区里面能够找到一切你所需要的答案,也得到很多大牛的极力推广。