如何选择适合自己项目的编程语言
与操作系统一样,在办公室软件套装和计算机中也具有各种计算机语言。存在这种多样性的原因与其它地方的多样性一样—-因为没有单一的解决方法能够解决所有的问题。有些语言在原始速度上更出色。有些语言能够帮助你更轻松地编写防止崩溃的代码。有些语言非常擅于剖析文本并有效作用于服务器上。有些语言具有强大的公司投资。也有些语言之所以存在是因为它们与大量不适合重新编写的现有代码相兼容。
你的语言选择将影响着你的项目,并且你不可能在项目中途突然改变语言,所以这是你必须重视的一个选择。这也不是一个你能够根据自己的个人喜好或朋友的提议而做出的选择。你关于项目的计算机语言的选择应该是经过仔细研究且务实的。最重要的是你的结果的质量而不是语言是否配得上你个人的编程技巧。
本文将分析一些游戏程序员经常使用的语言。这并不是一个完整或深入的列表。本文倾向于呈现给你最受欢迎的游戏开发语言,同时还会提供一些简短的介绍以及它们在哪种情境下是有利于项目或不利于项目。
如果你还是一位新手,那么这一列表可能会包含一些你并不熟悉的术语,并且也没有足够的空间对这些术语进行详细解释。所以我建议你可以在维基百科上进行相关搜索。
C
C程序设计语言可以说是父辈一般的存在,或者对于本文提到的其它语言具有非常重要的影响。尽管C是源自一些已经被淘汰的其它语言,但是现在它也成为了计算机“根植”语言之一。虽然今天还存在一些比C先诞生的语言存在(如COBOL,FORTRAN,Lisp,Smalltalk)并且与C没有多大关系,但是20世纪80年代以来所诞生的每一种语言至少在某种程度上具有与C语言类似的语法。
C是经典的“支柱语言”,也就是使用开放和关闭的花括号将一些表述组合在一起的有结构的goto-less语言。这是之后许多语言中所呈现的方式(包括C++, Java, C#, ActionScript, PHP)。C语言的无尽结构的一个优势便是一旦你理解了如何基于C语言完成某事,你便能够将其带到其它语言中(并且几乎没有任何改变)。例如C和PHP中的if(), while(), and for()表述都是相同的。也就是说如果你熟悉了C语法,它将在之后带给你非常大的帮助。
优点:C适用于编写简短且快速的程序。这是我们很容易与之互动的语言。该语言本身与库子程序一样都是标准化的,所以讲程序移向其它平台将会是一个直接的过程(如果你事先计划好的话)。
缺点:快速编写小程序的能力对于C来说也是不利的,因为通常情况下C并不是用于对象导向型编程,这是构建更加适合于基于分散式开发的大型程序的方法,而大型C程序很容易变得杂乱无章。尽管许多大型项目是基于C语言Unix,Windows,Oracle进行编写,但是管理一个基于C语言的大型项目要求比围绕着更加模块性所创造的语言更多纪律。
可移植性:尽管语言本身以及ISO功能调用是可移植的,但是这些调用却受限于控制流,简单的内存管理以及文件处理方面。现代用户界面设计,如菜单,按键,对话框等等都是不可移植的,所以你需要编写对第三方UI工具箱是有效的代码或计划再次编写你的用户界面。
尽管这并不是最早出现的语言,但是C程序库却呈现出了它的年龄。像内存管理和附带条件等许多较有意义的程序库功能都拥有一个简单的语法,能够在后续语言中进行有效调整。
尽管为了与时俱进C语言进行过多次的重新设计与调整,但是仍有些语法却是违反直觉的。为了与现有的代码保持兼容仍保留了一些较为奇怪的语言结构。
是否适合新手:并没有很好。尽管C语言非常简洁且容易掌握,但是许多C程序库调用却很陈旧,且很容易用于一些后续语言中。
资源:尽管Kernighan和Ritchie的《The C Programming Language》是该主题的“经典”著作,但是该书只是快速地提及该主题,甚至未能让编程新手们好好理解。不过还有其它值得推荐的相关书籍,如《C How to Program》,《C Programming: A Modern Approach》和《C Primer Plus》。
C++
C++(from sina)
C++是C语言最早建立的“子”语言。它诞生于20世纪80年代,是作为C语言的延伸版本并支持“类”,这是将原始数据类型和算法聚集到更容易创建现实世界(或者游戏中的模拟世界)对象模型的内容中的抽象数据结构。C++类同样也支持“隐藏数据”概念,在这里你可以将一个对象的根本执行隐藏起来。尽管这一方法看似有点难理解,但在基于团队环境编程时这却非常有帮助。这让你们能够在对象界面如何运行且无需考虑其内部运行方面达成一致意见。这就像是在说“我将给你一份工作,但我不关心你是如何做的,只要你能够完成它,并且结果是我想要的便可。”
优点:完全支持面向对象(OO)的范式,这比支持大型项目的C语言好多了。与C不同的是,它包含了一个带有常见数据结构和算法的设计精巧的程序库。
缺点:随着每一次迭代,C++的算法变得更大且更复杂,现在这一预言完全变成是拜占庭风格了。该算法本身很容易被滥用,虽然C++支持团队变成,但是且巨大且深层次的算法会让代码变得更难读。
可移植性:尽管是源于C语言,C++却拥有比前者更棒的可移植性。引导大多数现代移植工具箱都是执行于C++对象程序库而不受早前的C功能程序库。此外,C++的标准程序库以及非常有用的Boost程序库非常标准化且是跨平台的,尽管这两者都很复杂。
是否适合新手:尽管在C++中内存管理和I/O操作都比C语言好理解,从规模来看C++拥有非常高的学习曲线。他们并不需要为此学习整个语言。
资源:关于C++的一本完美的新手书籍是Steve Heller的《C++: A Dialog》。这是一本节奏适度且容易理解的书,非常适合编程新手。
还有更加全面的方法,即Bruce Eckel的《Thinking in C++》系列将通过1600页内容告诉你所有你需要知道的C++。
你都可以免费下载到这些书籍。或者在谷歌上进行搜索,你便能够找到它们的官网。
C或C++:除“DirectX或OpenGLad”以外,这是在准备学习语言时最常被问到的问题。除了一些较小的例外外,C++可以说是C语言的超集。这意味着所有C语言所做的都与C++一样。每一个C++编译器都将编译C语言,而在今天我们很难找到唯独支持C语言的编译器。尽管这些事实让选择从C语言开始然后再学习剩下的语言更具逻辑性,但是尽早学习类和OO编程将会更有帮助。
Objective-C
Objective-C是带有动态执行时间的对象导向型编程语言。就其本质来看,它就是C语言的一个超集。它集成了来自C语言的基本语法规则,同时也拥有一些构造上的变化。例如它将包含一些方法调用,整体的定义规则等等。
Objective-C是MAC OS X和ioS编程的主要语言,也是专属于苹果的语言。它支持各种开发技巧,功能,程序库以及许多能够凸显该语言的额外功能。该语言支持处理2D和3D图像(基于OpenGL)的广泛嵌入式程序库,这能够帮助许多小型游戏开发者通过使用强大且原生的解决方法创建自己的第一款游戏。其它程序库也能够帮助游戏开发,特别是手机游戏开发。还有一个突出的功能便是引用计数垃圾收集器,与非常复杂的内存管理系统相互协作。
优点:Objective-C是C语言的一个强大超级,能够创造并允许强大且灵活的应用。它能够利用C/C++代码并轻松移植全新项目,扩展现有的能力等等。该语言能够拥有各种有帮助的程序库以及Xcode最佳的开发环境之一。这是一直能够基于多种方式进行使用的强大OOP语言。
缺点:Objective-C是专属于苹果的语言,因此你需要拥有一台苹果计算机,运行最新的Mac OS X版本才能开发你的应用。另外一件需要注意的事是该语言的有些语法规则可能会让新手感到困惑。方法调用远未达到标准,类定义也会引起没有C/C++经验的新手的困惑。此外,如果你计划面向iOS开发应用的话,你便需要掌握基于较高层次的内存管理知识。
可移植性:没有。任何基于Objective-C进行编写的内容都必须属于苹果的产品。如果未基于其它语言重新编写,你便不能移植Objective-C项目到任何平台上。也就是说Objective-C只适用于Mac OS X和iOS开发。
是否适合新手:Objective-C并不是最适合新手的语言,尽管它也不是最复杂的。如果学习C#或Java的话你会更轻松,然而相对于C++,精通Objective-C会更简单。新手通常需要阅读许多关于内存管理等理念,如果你刚刚起步,这有可能是一个较为困难的过程,但是将带给你长期的帮助。
广州注册公司范围
深圳工商税务代理记账
广州注册公司注销
筹划税务代理
- 南昌光谷雏形已现高端LED产品线已形成乳品机械装潢设计行程开关皮革雕刻方矩管Frc
- 斗山关爱全面升级以客户为中心打造优质服务昭通黄铜球阀搅拌站秋千杀毒软件Frc
- 基于PLC的车床电气控制系统设计印花机体育教具微耕机无纺布手用丝锥Frc
- PrismaiPM教你如何成为一个全能又铝模干涉仪防水开关空调自控通讯配件Frc
- 徐挖首次采用大屏幕点阵式中英文显示器0建筑图纸燃气轮机二手客车二手设备预印机Frc
- 10月9日燕山石化塑料原料出厂价格汽轮机复写纸整形材料气动蝶阀进口肉干Frc
- 丹麦推出直接印刷制版设备0涂装刷子扎口机微水洗车不锈钢泵无线网桥Frc
- 世界机械工业发展趋势K树脂铸件家居布艺控温器绞肉机Frc
- 英威腾发布Goodrive300经销商招兵帽赣州减震垫仪表玻璃烟草烟具Frc
- 2015年我国模具行业发展趋势分析桥梁机械松原刹车脚轮企业搬家电阻计Frc