我对编程语言选择的理解
日志的由来
上午在公司的时候询问同事,公司的服务端语言为什么是Lua,而不是Java?(注:我学的是Java)
对于这一讨论,就谈到了根据项目需求、类型来选择编程语言;也聊了下服务端编程与客户端编程有些小差异 ……
情景再现
我问同事例如:要实现对一幅打乱的54张扑克牌排序,然后按照花色及大小输出,或是对于打牌中的发牌处理,拿Lua,或是JavaScript和Java比对实现起来的难易程度;再或者是一个很小的RPG游戏:游戏中有主角,敌人,主角攻击敌人升级闯关;使用Lua和Java实现起来的难易程度。
我的想法:使用Java会很好的实现,因为面向对象思想,把敌人和主角都当作人类[基类],敌人与主角都是对象……
如果使用Lua或是JavaScript我还真不知道如何去实现,因为在这两种语言中没有对象的说法,也没有基类一说,所以我不知道如何设计。
他回答我:对于卡牌游戏,使用面向对象编程反而会很复杂,因为它的逻辑很简单。
我的思考
和他的谈话之后我思考,要根据游戏类型和逻辑不同,考虑选择不同的编程语言和编程思想,面向对象思想也并不是对所有的开发都是最佳选择。
对于公司的卡牌游戏的开发,服务端语言的选择使用Lua会更合适些,卡牌游戏的逻辑没相对来说没有很难很复杂,不同的东西之间的关联也并没有很复杂,所以没必要使用Java开发,而且对于性能上来说,这种类型的游戏使用Java开发代价也更高。
Lua和Java的区别
再谈到Lua和Java的区别,他的感受是Lua使用起来很顺,灵活,没有Java那么严谨,也没有像使用Java框架一样有很多约束 。
再谈到为什么不使用一些现有的框架来开发游戏,他觉得如果使用框架开发的话,那么有很多的条条框框,对于大型的项目及大的团队合作,那么有必要,卡牌游戏就没有必要使用,团队小,使用框架反而会减慢开发速度。
程序员生涯
对于程序员的生涯,我还在进步和发展, 重要的是掌握编程思想,而不是局限于某 种编程语言。
2013-09-07 写于 达人网络