各编程语言的优缺点,编程语言的优缺点及应用领域
转载:http://blog.csdn.net/dongfeng9ge/article/details/74634563
在初级程序员阶段,每个人都不可避免地会遇到选择编程语言和职业方向的困难。我选取了几种常见的编程语言,分析了它们的优缺点和职业方向,供想成为程序员的人参考。
C/C
一句话:国内大部分程序员的第一语言。
c语言是当代鲁典面向过程的语言,常用来写操作系统。C是C语言的超集,既有指针又有对象,使其成为最复杂的语言。
C/C的优点:几乎所有的现代编程语言都脱胎于C/C,因此,了解C/C有助于你了解编程语言的一切,非常有利于快速掌握其他种类的编程语言。
C/C的缺点:据说C/C发明的时候,为了提高入门门槛和行业收入水平,故意制造学习难度。
C/C的优点:C/C可以嵌入任何现代处理器,几乎所有操作系统都支持C/C,跨平台性非常好。
C/C的缺点:C语言虽然小,但最常用的C语言规模相当大,有大量极其复杂的函数交互方式,容易造成资源浪费。
职业路线:
(1)Unix/Linux等操作系统软件的开发,嵌入式开发为先。
(2)AndroidROM的定制和androidApp的NDK开发。
(3)用Cocos2d-x开发游戏也是C程序员的一条好出路。
爪哇
一句话:最长寿的语言。
Java是最典型的面向对象语言。Java不仅吸收了C语言的优点,而且抛弃了C语言中的多重继承和指针这些难懂的概念。今年和明年的大部分毕业生都是Java同行(1995)。
Java的优势:Java平台不断迎来新的特性,比如移动互联网时代的Android,大数据时代的Hadoop,人工智能时代的TensorFlow。
Java的缺点:Java及其衍生技术在国内的就业环境被培训班破坏的太多了。培训班HR曾经问过我,“安卓不流行。可以推荐一些hadoop的讲师吗?”
Java的优点:Java是世界上使用最广泛的语言。谁没见过安装——Java环境时“30亿台设备运行Java”这句话?
Java的缺点:Java占用内存大,启动时间长。——凡是搞安卓的,都被Windows系统的安卓AVD坑过。
职业路线:
(1)招聘网站上常见的“招聘Java开发”是指狭义的基于JavaEE的Java开发3354后台开发。SSH框架和SSM框架曾经流行过。现在推荐初学者学习SpringMVC框架。
(2)移动互联网时代,可以用Java进行Android App开发。但是Java在Android中的地位可能会被Kotlin取代,而且近年来培训课程造成了低级Android程序员的泛滥。
(3)大数据时代,可以用Java进行Hadoop的开发,前景非常广阔,但可能会泛滥。
(4)人工智能时代,可以用Java进行TensorFlow深度学习的开发。
C#
一句话:自称不是Java的Java语言。
c是微软看到Java太火而发明的类似Java语法的语言。
C#的优势:C#最大的优势在于它全面集成了。Net图书馆,提供优秀的功能和完善的图书馆访问。
C的不足:由于集成了。网络图书馆。
# C的优势:VR时代的到来让Unity-3d开发者有了很好的发展前景。
# C的不足:目前的就业环境。Net在中国不太好,收入低。
职业路线:
(1)“为C#开发招聘”和“为。招聘网站上常见的“Net开发”是指狭义的C#开发3354后台开发基于。Net框架。
(2)Unity-3d同样使用C#作为开发语言。除了能开发3D游戏,在VR时代也会大放异彩。
Java Script语言
一句话:不是Java的语言。
Javascript是一种文字脚本语言,有动态类型、弱类型和原型,也是在HTML页面中添加动态功能最常用的语言。外行人最常开的玩笑是,他们认为它是Java语言的一个分支。
JavaScript的优点:作为一种脚本语言,JavaScript可以立即运行,无需等待响应
JavaScript的缺点:代码运行在用户的电脑上,可能被别有用心的坏人恶意利用。
JavaScript的优点:JavaScript是一种动态类型语言,学习起来比较困难。而掌握了JavaScript语言,就相当于成为了一个可以同时开发网页(HTML5)、后台(Node.js)、移动终端(ReactNative、Weex)的全栈工程师。
JavaScript的缺点:JavaScript对浏览器的依赖性太强,在不同的浏览器中有不同的表现。
职业路线:
(1)首选html5的初心:网站和移动站的前端页面开发。
(2)使用node.js或Bmob云代码进行后台开发。
(3)基于reactNative,PhoneGap,Weex,HBuilder,AppCan的移动开发,只需要写一次代码,有Android和iOS软件。
(4)微信开发:包括微信微信官方账号、微信游戏、微信小程序。不要把这个方向当成中国的特色方向。国外的安卓机也需要PWA开发。
(5)如果你能做到以上四点,那么你就是全栈工程师。
结构化查询语言
一句话:数据库离不开的语言。
SQL是一种专门用于数据库的专用语言。一种用于访问数据以及查询、更新和管理关系数据库系统。
SQL的优点:存储过程可以复用,可以减少数据库开发人员的工作量,开发速度快。
SQL的缺点:和大多数Java语言的设计模式一样,SQL的开发速度是以牺牲运行速度为代价的。
SQL的优点:SQL可以设置只有某个用户有权使用指定的存储过程,这是安全的。
SQL的缺点:不同数据库系统之间的SQL不能完全通用,可移植性差。
职业路线:
(1)掌握了SQL,就可以做DBA(数据库管理员),主要负责业务数据库从设计、测试到部署、交付的全生命周期管理。
计算机编程语言
一句话:你需要用游标卡尺学习的语言。
Python是一种服务器端解释的开源非编译脚本语言。常被戏称为glue language,可以轻松连接其他语言制作的各种模块(尤其是C/C)。
Python的优点:Python简单易学,被誉为“最容易学的语言”
Python的缺点:Python有一些bug是在特定情况下才会出现(无法重现)的。
职业路线:
(1)用Django框架进行Web开发:和Java没什么区别。
(2)用PIL框架进行图形处理
(3)物联网:已经选择Python作为树莓派等物联网平台的开发语言。
(4)Python有一个无所不能的Hack库。如果你认为“工作是不可能的”,那就做一个自由的黑客吧。
服务器端编程语言(Professional Hypertext Preprocessor的缩写)
一句话:世界上最好的语言
Php是一种通用的开源脚本语言。语法吸收了C语言、Java、Perl的特点,有利于学习,应用广泛,主要适用于Web开发领域。被誉为“世界上最好的语言”
PHP的优点:PHP简单易学,使用快捷。
PHP的缺点:PHP运行速度慢。
PHP的优势:历史悠久的PHP有一个庞大而活跃的官方社区,开发者面临的大部分问题都有现成的解决方案。十几年前的很多解决方案,在当代也是有指导意义的。
PHP的缺点:PHP的错误处理机制比较糟糕,因为PHP需要支持大量老版本的函数。
职业路线:
(1)适合Web开发,用Node.js效果更好
目标-C和Swift
一句话:吃过培训班亏的语言。
Objective-c和swift都是OS X和ios系统上的专用语言。目标-C是三年前中国收入最高的语言。从去年开始,大量的培训课程输出了大量的“三年经验”和快速的“iOS工程师”成为匿名区的笑话。
Objective-C的优点:苹果提供了丰富的工具和库,供开发者使用Objective-C开发软件。
Objective-C的不足:Objective-C有自己独特的编程方法,与其他编程语言有很大的不同。
Swift的优势:随着时间的推移,Swift在iOS和OS X软件中所占的代码会越来越多。
Swift的缺点:版本变化太快,不同版本差异太大。近年来出现了几个“从掌握到重新引进”的案例。
Objective-C和Swift的优点:因为只需要在少数平台上运行,所以不容易遇到兼容性问题。
Objective-C和Swift的缺点:这两种语言的就业环境被培训班彻底破坏了。现在刚开始学这两种语言,可能会有像07年6000入市的散户那样的下场。
职业路线:
(1)两种语言都是为iOS和OS X设计的,记得在入行前准备好苹果电脑和苹果开发者账号。近年来,培训课程造成了低级Objective-C和Swift程序员的泛滥。
科特林
一句话:运行在JVM上但不是Java的语言。
Kotlin是最新的基于JVM的编程语言,专门用于Android的开发。
Kotlin的优势:与Java优秀的互操作性。其他JVM语言已经实现了它们自己的标准库。另一方面,Kotlin使用Java的标准库,但只是扩展了它。更轻、更小的Apk。
Kotlin的缺点:同时也可能继承了Java一些比较可怜的东西。
Kotlin的优点:因为数据类型弱化,学习成本比Java低。
Kotlin的缺点:可以而且只能在Android Studio 3.0上运行,有点像换语言。
职业路线:
(1)只能用于开发Android。就算想干点别的,除了Android Studio 3.0还有别的编译器吗?