编程语言有哪些种类
编程语言的种类有:Python、Java到Objective-C等。
C:操作系统、嵌入式、驱动开发。
C++:图形图像、科研、通信、桌面软件、游戏、游戏服务器。
C#:Windows桌面软件、服务器。
Java:Java架构师/微服务/分布式/高并发/性能优化/源码解析-学习视频。
GO:高性能服务器应用,比较年轻。
Erlang:高并发服务器应用,多用于游戏。
Python:Web、科学计算、运维。
Perl:运维、文本处理,用的较少。
Lisp:科研,一种逻辑语言,用于人工智能。
Node:一个JavaScript运行环境。
Haskell:Haskell是一种标准化的、通用纯函数编程语言,数学逻辑方面。
各部分所占比例:
Java占比168%:最主要的原因是因为Java比C++或者其他语言相对其安全性、便携性、可维护性以及其他高级语言的并发性更好。同时Java是默认的软件行业的应用程序开发语言,在金融服务行业的大量使用,投资银行和电子商务应用空间也非常之大。
C语言占比149%:C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。主要用于嵌入式开发,操作系统开发,文字处理程序开发等。它对编写程序限制少,灵活性大,功能强。
随着《魔兽世界》(以下简称wow)在世界范围内流行,脚本渐渐被人们所熟知。由于wow强大的自定义界面系统,Lua这一脚本语言一举成名。\x0d\\x0d\其实早在Lua脚本语言被大众所熟知以前,游戏业内人士就已经开始使用脚本来开发游戏了。我们熟悉的很多国内的网络游戏大都运用了脚本开发,比如网游的长青树“梦幻西游和《大话西游2就大量应用了脚本技术。特别是《大话西游2》,其实现基于Lua脚本游戏开发的时间要远早于《魔兽世界》。在脚本技术上,国内与国外其实是站在同一起跑线上的,并不存在什么差距,这也为国内游戏产业赶超国外游戏产业提供了强有力的技术保证。\x0d\\x0d\在单机游戏时代,脚本这个词几乎很少出现,那么,为什么在网络游戏时代它却成了业界的宠儿呢原因是多方面的。\x0d\\x0d\单机游戏时代,无论游戏主机还是PC机,它们的性能都非常低下,从而需要具有较高执行效率的编译型语言对机器的性能进行“压榨”。随着科技发展和硬件性能的不断提升,脚本逐渐被开发者所接受并利用,但这并不是脚本流行起来的决定性因素,真正的原因还在于游戏市场有这方面的需求。\x0d\\x0d\网络游戏时代的市场竞争激烈、变化莫测,如果延用单机时代一年半载才出一个新版本的开发方式,必然会被游戏行业激烈的市场竞争所淘汰。正是这种游戏市场需求旺盛和开发工具效率底下之间的矛盾,促使脚本语言迅速地发展起来。脚本的兴起使得传统编译型语言(asngC/C )的性能优势在硬件功效大幅攀升的今天已经不复存在。\x0d\\x0d\除了市场和硬件这两个因素之外,还有一点我们不能忽略。那就是用C/C 进行游戏开发的高成本和高项目风险。随着java/.net逐渐流行,学习C/C 编程语言的人越来越少,而网络游戏市场的需求却越来越庞大,在程序人才大量匮乏的情况下,造成了c,C 人才的高成本。即便是有能力雇佣大量C/C 程序员的公司,在开发游戏的过程中,也不能无视C/C 的高级特性和高度灵活性带来的高项目风险。C/C 是易学难精的编程语言,在开发大型项目的时候由于程序员的水平参差不齐,所以极易造成沟通不畅。不仅如此,c,C 滥用的高级特性也容易引入大量bug。正是由于这些原因,游戏公司开始在游戏中使用脚本,希望通过脚本来解决这些高成本、高风险的问题。\x0d\\x0d\二脚本的现状\x0d\\x0d\脚本不仅解决了c/C 无法解决的开发效率难题,还降低了开发的成本和风险。因此脚本技术在游戏业内蓬勃发展起来,并且已经成为游戏业中不可或缺的一环。纵观当前脚本技术现状,形势一片大好,不仅语言百家争鸣,而且书籍种类也越来越多;不仅在游戏业界开花结果,在web等其它应用领域也大放异彩。\x0d\\x0d\首先,我们来看看目前比较流行的脚本:Python、Lua、ruby和Erlang。Python和Lua是网络游戏开发的中坚力量;ruby凭借 rubyonrails的web开发框架的强劲力量,其在游戏业的发展前途亦不可小视;Erlang在高并发性上的原生优势吸引了无数追求高性能网游服务器的开发人员的目光。\x0d\\x0d\其次,我们来看看书籍方面。大家都知道,文字对语言的普及起到了催化剂的作用,甚至可以看作是语言的有机组成部分。Python经过基金会的多年经营而得到NASA、Google重用的原因,就是由于其相关书籍种类比较丰富;Ruby随着RoR的流行,这两年行情看好,书籍也出版得越来越多了;Erlang是典型的少众语言,但随着多核时代的来临和高并发网络应用的需求,Erlang有着光明的发展前景,现在>等书也已经在策划出版了;反观Lua,虽然目前越来越流行,但由于它晦涩的接口设计和缺乏大型应用的支持,使得相关书籍寥寥无几。\x0d\\x0d\最后,我们把焦点重新聚集到游戏开发行业中,其实不难发现,除了前文提到的《魔兽世界》和网易经典“西游系列”使用了脚本外,现在大多数比较流行的程序也都使用了脚本,如腾讯的QQgame))和搜狐的《天龙八部》等。不仅如此,现今的游戏引擎也都提供了脚本接口,无论是商业的unreal引擎还是开源的 OGRE,无一例外。\x0d\\x0d\三脚本的优势\x0d\\x0d\脚本之所以能够在游戏业中找到自己的一席之地,是因为网络游戏市场需要一个快速开发方案来避免C/C 开发带来的项目高成本和高风险。那么,脚本相对于C/C 这类编译型语言到底有什么优势呢\x0d\\x0d\I易于学习,代码可维护性强\x0d\\x0d\脚本的语法通常都非常简单,也没有太多高阶的特性,学习的门槛较C/C 低得多,比如Python可能只需要花一个下午即可学会。这使得游戏开发公司可以招聘完全没有脚本、编程经验的新手,通过低成本的培训,他们便能迅速地走上工作岗位。除易于学习外,脚本代码也有较强的可维护陛(尽管写出没有人看得懂的Lua代码也非难事)。因为脚本没有很多高阶特性(如c 里的模板元编程就是高阶特性),所以脚本程序员就有更多的精力去架构、模式、重用和测试等工作,从而提高了代码的可维护性。相应地,正因为没有那么多让人困惑的高阶特性,也使得脚本代码“简洁”不少。\x0d\\x0d\2.降低开发成本\x0d\\x0d\如上所言,由于脚本易于学习,游戏开发公司可以大量起用新手,这正是降低成本的有效手段。那么如何来确保新手所写代码的质量呢众所周知,新手无论用什么语言写程序肯定会出现bug,但用C/C 和Python做比较,可以看出,一个新手用C/c 编写出的程序所出现的bug肯定会比用Python编写出现的bug要多。由于c程序需要编译,而脚本程序(大部分)都可以直接解释执行,所以在排除 bug方面脚本也占有一定的优势,这也使脚本在降低成本的同时能够更好地保证代码质量。\x0d\\x0d\3.形成人才壁垒\x0d\\x0d\软件开发行业是一个颇为动荡的行业,无数的程序员都在跳槽和谋划跳槽的状态中生活,使用脚本开发形成人才壁垒是游戏业减少人才流动的有效手段。因为现在脚本除了在游戏业中非常流行外,并没有在其它行业形成广泛应用(虽然在web开发方面也有燎原之势,但终究不如在游戏业中的地位高)。这就使得游戏程序员很少会考虑非游戏行业的职位,但其它行业的程序员却可能会因为脚本的易学习性而转投游戏业。脚本除了能有效形成行业间的人才壁垒外,也能有效地形成企业间的人才壁垒。由于现有的脚本种类繁多,不同公司往往有不同的选择,甚至有些公司使用自己开发的脚本语言,所以程序员从公司A跳槽到公司B可能要学习使用另一种脚本,这就提高了跳槽的成本,从而减少了人才的流动。\x0d\\x0d\四脚本的发展趋势\x0d\\x0d\依照目前趋势来看,脚本语言一定会更加的普及,而且会逐渐渗透到其它行业中。随着网络游戏从业人员数量的增长,脚本程序员也一直增加,而且Web2、0热潮引起的网络需求,也促成了一批批新脚本程序员的诞生。网络游戏市场就像一个正在滚动的雪球,推动着脚本的普及。\x0d\\x0d\随着脚本在游戏业中越来越流行,市场对生产效率的需要也会相应提高。脚本虽然在一定程度上缓解了生产效率与生产工具之间的矛盾,但仍然不够完善。由于市场竞争日趋激烈,而网络游戏在很多功能上的实现又都相差无几,如网络、数据库、图形甚至部分逻辑,这必然会引起网络游戏生产的组装化一一大量中间件相互组合形成新的网络游戏。从目前来看,Bigwofld、PhysX和Unreal等都是比较流行的网络游戏中间件。脚本语言则是粘合各个中间件的良好胶水语言,所以随着网络游戏的生产组装化,脚本将有更大的发展空间。\x0d\\x0d\那么,当脚本发展到如日中天的时候,可能取代C/C 这些编译型语言吗笔者认为不会。脚本语言和编译型语言在生产效率和执行效率上各擅胜场,网络游戏既需要能快速应变的脚本,也需要能快速执行以提供更绚丽游戏效果的编译型语言。未来,它们之间一定会保持长久的和谐互补关系,相辅相成。\x0d\\x0d\五结语\x0d\\x0d\综上所述,网络游戏时代是上帝赐予脚本语言发展的绝好时机,脚本语言很快将迎来光芒四射的时代。脚本语言拥有编译型语言无可比拟的生产效率优势,所以它们将互补互助并肩奋战在游戏的最前线。
如果你想转行,我建议你可以转行做工程师或者参与一些游戏的工程师,都很不错。当然,你可以根据个人喜好来选择。你最好选择计算机行业,因为毕竟你已经做过了,学什么都可以很快。
运维工程师。负责日常维护,保证整个服务的高可用性,不断优化系统架构,提高部署效率,优化资源利用率,提高整体ROI。简单来说就是保证业务(如网站、游戏服务器)的长期稳定运行,同时保证数据(如用户名、密码、数据)的安全可靠。
如果只是为了谋生而写代码,换语言可能会对你的职业生涯产生影响,因为不同的编程语言和它们的技能是不一样的,学习基类需要一定的学习时间。虽然编程的原理是一样的,但是体验是不一样的。毕竟要想在某个领域深耕,不是一两天,甚至不是一两年。所以我个人建议要不断提高,努力掌握其中一门编程语言。
软件测试工程师。测试应该是与开发联系最紧密的岗位。转行相对简单,有代码基础。您也可以稍后执行性能测试。如果真的不想写代码,做功能测试就好,至少会轻松很多,当然工资也会降低。其次,测试对整个项目或产品有很高的业务要求。如果你发展了,你只需要知道你想做的生意。但是一个项目中可能只有一两个测试,需要对整个产品的业务流程有很好的了解。如果您更喜欢业务而不是功能实现,您可以选择测试。
向项目管理发展。项目管理可以说是程序员开发比较便捷的方式。目前,软件项目经理是人才市场上的热门人才,经验丰富、外语好的软件项目经理是一个热点。供不应求,工资自然上涨。最重要的是,一个优秀的项目经理能够长期在这个岗位上工作,并且有进一步晋升到高层的可能。
提起Erlang,很多程序员都不会陌生,它运用的领域非常的广泛,并且如果你不是混日子挣钱来到这个领域,而是真心喜欢这个行业的话,认真研究就会发现这个Erlang里面的乐趣,只可惜能够耐得住寂寞的人非常少,有些人就想要从Erlang游戏程序员换语言转行,小编对于转行这个有些建议希望那些想要转行的人能够听一听,第一要搞清楚自己是否想要在这个行业发展;第二换行就要重新学习,自己是否有那种自律的学习精神,第三是否有条件去转行,想清楚这三点然后再选择是否转行。
一、第一要搞清楚自己是否想要在这个行业发展。
其实有些人转行的想法只是觉得写代码觉得厌烦了,就想要换一种工作的方式,那么到底是厌烦了这个行业还是说仅仅是不想再写代码,这个需要考虑清楚,如果是对行业厌烦了,转语言也没有用,还是换行比较好。
二、换行就要重新学习,自己是否有那种自律的学习精神。
语言虽然也有代码的一部分,但是毕竟跟Erlang的内容还是有区别的,所以想要转行到语言有些知识就要重新学习,那么就要确定自己是否有时间和毅力去坚持学习心得知识,这行不像是其他行业,能够浑水摸鱼,只有真本领才能混的下去。
三、是否有条件去转行,想清楚这三点然后再选择是否转行。
有些人的年纪已经算是比较大的,上有老下有小,如果换语言的话,可能就要重新找工作,那么就会有一段时间没有收入来源,要想清楚自己能否支撑起这段时间的开支然后再换行,小编建议尽量不要换行,努力的去研究Erlang,成为其中资深程序员,这样自然就能升职加薪。
0条评论