很多人都说,编程是一种情怀,它能让广大ITer达成自己的“小目标”。编程是技术革新的核心,当今的编程语言有能力让开发者的潜力不再受束缚,可以轻松构建创想的未来。如果你是一名具有前瞻性的开发者或者想成为一名具有前瞻能力的开发者,那么,是时候开始学习编程了,至少在最好的编程语言中选择一个,类似 Python、Swift、JavaScript、C#、C、Ruby、PHP、Haskell、Java、C++ 或者 Rust。
一、怎样选择该学习哪一种编程语言
在这篇文章中,我们将会介绍排名前10的编程语言的功能性、易学程度、当前的需求/使用以及在预期的将来的需求。需求更多,就意味着更值钱。很多语言,像C、Java、Python和JavaScript在几十年来一直持续支配着他们的各自的领域。另一方面,也要看到近期流行的需求语言,像Swift、GoogleGo和Rust。
怎样选择学习哪一种编程语言,其答案取决于学习之后用它来做什么。许多人的选择标准仅仅是“学习一门语言最大的需求就是能找到一份高收入的工作”。但这个标准并非人人都适用,还有很多其它的方面要考虑。例如,在大学里使用Python这门语言给学生讲授编程,其主要原因在于Python功能强大,学生们能够很容易地掌握编程概念。对于初学编程的人来说,使用Python是一个不错的选择;对于想从事移动程序开发的人来说,学习Swift、C#、Java和JavaScript是很好的选择;对于web开发来说,在CSS、HTML、JavaScript这样的前端技术支持下,使用PHP、Java、Python和RubyonRails是第一选择。
如果要完成像访问关系数据库这样的更加具体化的任务,可以学习SQL编程语言。SQL语言并非是用来开发应用程序的,而是用来支持应用程序和数据库之间的连接。更何况,很多数据驱动应用都在广泛地使用SQL,如今,对SQL的需求已经超越了对许多工作表的需求。
如果你对硬件编程感兴趣,想要开发嵌入式系统、操作系统、通信设备或者复杂的游戏引擎等,那么选择的语言依然是C/C++(主要是C)。
二、最佳10门编程语言的具体优势
我们一起来看看如今有哪些最流行的编程语言,以及它们的功能、学习曲线、应用领域、目前的需求和发展方向。
1.JavaScript——多用途编程语言
时至今日,对JavaScript的需求依然巨大,招聘网站上充斥着有关JavaScript及其相关技术的招聘信息。JavaScript由BrendanEich设计,运行在Netscape浏览器中。那时,他或许做梦也没有想到JavaScript会有如此超乎寻常的发展。
JavaScript是WWW的默认语言,并且几乎每个web浏览器都支持JavaScript,它已经成为了web前端开发的世界标准。随着Node.js的发展,JavaScript的应用领域又扩展到了服务器端开发,如今和java、.Net、PHP、RubyonRails以及其它的服务器端技术展开了竞争。
JavaScript除了应用于前端和服务器端开发外,它也快速地发展成为移动应用开发的选择。开发者可以使用许多流行的JavaScript框架来构建混合移动应用程序,比如ionic、kendoUI和Senchatouch等。
后来,随着Reactnative框架的兴起(由Facebook提出),JavaScript又出现在了Android和iOS原生应用开发领域。
JavaScript无处不在!然而,JavaScript本身不会让你拥有最高薪酬的开发工作,你还需要学习基于JavaScript的技术、框架和库(比如Node.js、React、ReactNative、ionic、jQuery、D3.js和KendoUI等等)。相关技术的选择完全取决于你要从事的工作。
说到学习JavaScript,它是一种动态编程语言,并且非常容易入门。熟悉了JavaScript基础知识之后,你就可以很容易地学习相关的技术,比如jQuery、Node.js、Angular或React。
2.Python——最好的编程语言
Python是另一种编程语言,目前世界各地的开发者正在使用它进行快速应用程序开发。Python是一种模块化的、易于学习的、面向对象以及注重可读性的高级语言。
Python广泛地应用于教育领域、web与internet开发、科学与数值计算以及大数据、机器学习算法开发。
Python的深度和广度使得它成为教育和研究领域的首选语言,世界各地的学生正使用Python来学习编程和构建研究项目。如今很多进行计算机编程的学生把Python作为他们学习的第一门语言。
Python已经广泛地用于web和internet开发,并且有许多流行的框架,比如Django、Pyramid、Flask和Bottle。DjangoCMS和Plone是两种广泛使用的基于Python的内容管理系统,许多流行网站和web应用程序都在使用它们。
最近,由于对大数据分析和机器学习算法的需求急速增长,对Python的需求也在快速增长。用Python编写的许多开源库能够实现数据科学广泛使用的一些核心的机器学习算法。R是统计与数据科学领域广泛使用的另一种语言,但是学习曲线比较陡峭。
库方面,一些流行的Python库例如用于数学、工程和科学领域的scipy、用于库建模和数据分析领域的“pandas”,以及其它一些有用的库,比如iPython、kivy、pyqt和pyside。
3.Java——大众化的编程语言
Java是大众化的编程语言,它也是一种永葆青春的语言,多年来一直是各个招聘板块的宠儿。Java于1990年由SunMicrosystems公司发布,后来被Oracle公司收购,Java的哲学理念是“编写一次,到处运行”。
Java广泛地应用于web开发、企业软件开发和Androidapp开发。随着对运行在Android平台上的移动app的需求不断增长,对java的应用也达到一个新高度,这也是为什么全球范围内对java的需求依然第一的原因。
Java是高级的面向对象的编程语言,学习起来比C++更容易,但是程序的性能要比C或C++差一些。因此,一般不用java构建核心引擎、操作系统或嵌入式系统开发。
4.SQL——结构化查询语言
SQL结构化查询语言是一种能被数据库理解的语言。SQL是由IBM工程师于1970年开发的,用来创建、更新和检索“SystemR”这个数据库管理系统中的数据。从那时起,SQL已经走过了很长的路,时至今日,它仍然是市场最需要的一种技能。
近年来,使用非SQL数据库来处理大数据的这种需求给SQL蒙上了阴影,但持续的时间不会太长。不久人们就会认识到SQL提供的大数据分析方法更好,它是一种更具有扩展性、可验证性和经得起时间检验的技术。
SQL语言用以辅助进行数据驱动网站、web应用程序、桌面应用程序以及移动应用程序的开发。SQL在任何应用领域都有应用。从学习的角度看,SQL比较容易掌握,并且由于有很高的市场需求,你可以仅仅通过SQL就能找到第一份工作。
然而,要找到一份高薪酬工作,还需要拥有设计、管理和维护多种数据库,比如Oracle、MySQL、PostgreSQL、IBMDB2和MicrosoftSQLServer等的经验。
5.C#——排名第一的微软技术
C#是最通用的语言之一,它使得编程像Java语言一样简单。C#是类型安全的、面向对象的编程语言,运行在.NET框架运行时环境中。C#代码被编译成符合CLI规范的IL语言(中间语言)。
C#语言正迅速成为构建微软家族各种应用的首选,你可以用来构建客户端—服务器应用程序、数据库应用程序、web服务、移动应用程序、游戏等等。
C#在游戏开发中也有很好的应用(高级的但并非是硬核心),顶级游戏引擎Unity3D就把C#作为支持的语言之一,除此外只有JavaScript语言被支持。C#还是许多交叉平台应用程序构建工具(如Xamarin)所采用的编码语言。你可以使用Xamarin产品套件构建交叉平台移动应用程序。
尽管汇编语言是首选的游戏引擎开发工具,要进行硬核心终端游戏开发,仍然可以使用C或C++,Rust语言也可以应用在该领域。
6.C/C++——古老而金贵的编程语言
有人说C++很古老,但却一致被认为依然金贵。当涉及更注重性能的硬核心系统编程时,C/C++仍然是首选的编程语言。C比C++更接近硬件,并且能提供更好的性能。
许多开发者转向Java,是因为和C++(&C)相比,使用Java更便于开发,而且在很多情况下性能可以通过对硬件部分进行更多的投资而抵消。但并非总是如此,比如对于嵌入式系统,你就只需要管理最少的硬件组件。
C和C++仍然属于高级编程语言吗?
C/C++拥有最好的编译器、开发环境、库和核心开发部件,还拥有一个在未来也不可能被替换的巨大的生态系统。现有的生态系统和高性能应用程序的需要,使得对C/C++的需求一直很高,而且C/C++开发人员的工资档次也比较高。
7.Swift——第一个工业质量级的系统编程语言
Swift是相对较新的语言,并且正快速地流行起来。Swift是完全用于Apple的开发语言,例如iOS应用程序、OSX应用程序、watchOS应用程序和tvOS应用程序。Swift引入了C和Objective-c的优点,并且能和cocoa以及cocoatouch框架很好地协同工作。
Apple拥有自己的巨大生态系统,毫无疑问,Swift将成为在未来几年中引领其发展的语言。如果你想进入Apple生态系统,Swift正是要学习的语言。
Swift学起来很容易,用起来很有趣,究其原因在于它引入了严格类型语言(如C、Java、C++)的所有特性,而使用起来和任何脚本语言(如Ruby或Python)一样容易和有趣。你可以通过Swiftplaygrounds尝试使用Swift,并且可以马上看到结果,无需担忧程序的编译和运行。
Apple声称Swift是第一个工业质量级的系统编程语言,它提供了类似脚本的语法,能使开发变得绝对轻松。
8.PHP——基础的编程语言
许多人认为PHP不是程序设计的未来,但PHP巨大的生态系统使得在未来几年里全世界需要大量的开发人员对其提供支持。排名前三的内容管理系统——WordPress、Drupal和Joomla都是使用PHP构建的,而且迄今大概有80%的网站运行在PHP之上。所以,它是巨大的!
PHP是容易学习的语言,它可以作为你进入编程世界的入门语言。PHP属于就业市场中炙手可热的语言,你可以找到大量的需要PHP技能的工作机会。PHP开发者的薪资水平和Java、C++、Python或Swift开发者相比,通常偏低。
PHP生态系统包括上述顶尖的内容管理系统(如WordPress、Drupal和Joomla等)和PHP框架(如Laravel、Symfony、Yii和FuelPHP等)。这些内容管理系统和框架能使开发者在几天内就构建出可以投入使用的网站和web应用程序。
近年来随着Node.js、Django和RubyonRails的出现,PHP蒙上了一层阴影,但是PHP正在改进,更新的版本完全可以和新兴的语言与技术展开竞争。
9.Ruby——适合学习的编程语言
Ruby是另外一种开源的、面向对象的、通用的编程语言,这是一种简单的、有助于快速应用开发的语言。Ruby最有名的框架是Rails(RubyonRails),这主要被用来web开发。
它在服务器端开发是很有用的,有很多公司都使用它,如:Bloomberg、Airbnb、Shopify、Hulu和Slideshare等等,且被用在一个或多个项目之中。
Ruby是用来学习的最好的编程语言吗?
Ruby常常被用来与Python的可读性进行比较,它提供类英语的语法,这让Ruby成为一个完美的候选者,最适合作为第一个编程语言来学习。
10.Rust——发展迅速的新一代编程语言
Rust是后起之秀,并且承诺要成为新一代的热门技术。它快速地成为硬核心开发人员所痴迷的技术,并且以非常快的速度发展着。Rust语言还在发展之中,还是一门新语言,因此,Rust的就业市场尚未形成,传播的深度与广度还不够。
Rust语言由Mozilla公司于2010年开发,它是GraydonHoare所负责的一个研究项目。而现在开发者社区喜爱它并负责对其维护,他们决心将Rust推向一个新的高度。
Rust是一种低级的系统编程语言,其目标是提供高性能、安全性和并发性,它是一个不错的C/C++的替代语言。过去,C开发人员努力使用Rust编写操作系统、数据库、嵌入式程序、内核以及各种系统程序。
Rust是一种现代语言,它拥有高级语言的灵活性和C这样的低级语言才有的高性能以及对硬件的可控性。
11.其他
下面是另外的一些很受欢迎的编程语言,它们和排名靠前的那些语言进行着激烈的竞争。
GO——Go是谷歌公司推出的一款相对较新的语言,对于web服务器开发、网络开发以及命令行程序开发来说,它是又一个比较优秀的选择。
R——当要进行数据分析和统计软件开发时,你可以选择R语言。随着大数据和机器学习的兴起,R得以不断发展并和Python和Matlab展开了激烈竞争。
Perl——最古老的语言之一,但它正越来越受欢迎并显示出伟大复苏的迹象。DevOps是新生事物,Perl正发展成为用于DevOps的深受欢迎的语言,它或许会成为像Python语言那样的下一个重要语言。
VisualBasic.Net——微软公司推出的一种面向对象编程语言,对于开发.Net程序以及web程序和XMLweb服务这样的专业领域程序来说,这是一个很好的选择。
Haskell——统治着函数式编程的世界。和面向对象编程相比,函数式编程具有完全不同的哲学理念。函数式编程在分布式系统开发中应用广泛,分布式系统开发的关键需求是并行执行和并发性。人工智能和数学计算是函数式编程的又一应用领域,Haskell的应用同样如此。
三、结论
我们正处于一个用技术敲开自动化新世界大门的舞台,由机器学习、大数据、物联网与不同设备上运行的apps驱动。apps包括运行在你手机、台式机、手表、电视等设备,并且apps是在屏幕后台运行的。为了融入程序与app的生态系统,并且跟上科技改革的时代潮流,你需要学习一门编程语言并且动手亲自编程。技术领域的工作需要编程技巧的不断增加,如果你在看行业分析师的预测与调查,(你会发现)至少在未来的10年内,软件开发者的需求量将持续增加。
这些顶级编程语言都不会是曾设计用于解决所有技术问题的,因此有多种多样的选择来实现不同领域的开发。例如,JavaScript对于前端开发而言是最常用的,然而Swift语言适用于iosapps开发,虽然并非唯一选择。