各种编程语言的优缺点
转载链接:https://www.cnblogs.com/lyj910313/p/10794961.html
编程语言 javascript,c#,python,Ruby,PHP,Java,swift,basic
前端框架 vue.js,angular 2,bootstrap,less/sass,ember.js
后端 node.js,PHP,Ruby,python,java
开发工具 VB(basic语言),VC(c++),VS(c,c++······)
1、万物之源C语言
难度:★★★ 人气:★★★★★ 诞生于1972年
C语言是一种通用型命令式计算机编程语言,其支持结构化编程、词汇变量范围与递归,同时亦是套能够预防各类未预期操作的静态类型系统,最初构建目标在于编写系统软件。
用途:软件开发、硬件、操作系统。
优势:
1、可移植性 :无需或者很少改动就可以将开发出的软件在不同平台上运行
2、C语言完全基于变量、宏、函数以及结构,因此可被嵌入至几乎一切现代处理器。从冰箱到闹钟即可作为其运行平台。
3、了解C语言,也就了解了关于编程语言的一切:几乎所有现代编程语言都脱胎于C.因此了解C语言能够帮助大家快速掌握其它各类编程语言。
劣势:
1、运行时:C语言不具备运行时检查机制。
2、面向对象编程:C语言不支持面向对象编程,因此C++才会诞生以解决这一问题。
3、复杂的学习曲线:并非最易或者最难于上手的编程语言,比较适合那些已经对其它编程语言有所了解的学习者。
冷知识:
1、C语言被用来构建AmazonKindle、Linux、OpenGL。
2、C语言于1969年至1973年之间由AT&T公司旗下贝尔实验室创建完成,用于构建Unix操作系统。
3、大部分诞生的语言都直接或间接地借用了C语言的概念,其中包括 Linux C++.D. Go、Rust. Java. JavaS- JS cript. Limbo. LPC C#、Objec tive-C. Perl. PHP、Python。
2、C#
难度:★★★ 人气:★★★★ 诞生于2000年
属性:这是 一款强大而灵活的编程语言。与其他编程语言一样,它也可用于创建多种应用程序。事实上,C#的功能只受限于我们的想象力。该语言对开发者的操作内容完全不设任何限制,其可被用于交付动态网站、开发工具甚至是编译器等等。
用途:Windows应用 企业级业务应用 软件开发
优势:
1、Net库: :全面集成Net库,提供出色的功能与支持库访问能力。
2、可转换性:其基于C语言,因此C#的结构可转移至Java、Objective-C、PHP以及C++等其它语言形式
3、需求旺盛::C#加Java为目前各企业需求最为旺盛的软件开发技能组合。
劣势:
1、C#并不是最适合新手们进行入门学习的编程语言,其学习曲线非常陡峭。
2、跨平台能力差:由于集成Net,因此不具备跨平台能力
冷知识:
1、C#用于构建Stack Overflow、EVERNOTE
2、C#的首席设计师兼首席设计架构师为微款公司的Anders Heisberg.。
3、C#原本曾被定名为Cool, 全称为"C-like Object OnientedL anguage"即类C 型面向对象编程语言,由于商标原因而更名为C# 。
3、C++
难度:★★★★ 人气:★★★★ 诞生于1983年
属性:C++是一款面向对象编程(简称OOP)语言,被广泛视为最出色的大规模应用构建语言。C++属于C语言的一个超集。
用途:软件开发 搜索引擎 操作系统 视频游戏
优势:
1、重要技能:掌握C/C++能够帮助大家在众多开发人才当中脱颖而出,掌提了C/C++大家将能够深入了解Java或Python等编程语言中的内存管理机制,并了解如何回避各类常见的馅阱与难题。
2、灵活的调整空间:C++允许大家对自己的应用进行灵活调整井充分发挥计算机的全部性能。与Java相比,编程过程并不友好,但我们却能够利用它实现一切操作。
劣势:
1、艰难的学习曲线::C++非常难于学习,但在掌握之后大家将直接登上程序员金字塔的塔尖。
2、体系极为庞大:: C++规模可观且拥有大量极为复杂的功能交互方式,没有哪位开发者能够使用其提供的全部构建组件,但我们可以充分发挥自己的才智为理序选择正确的功能子集。
冷知识:
1、C++用来构建Google、Outlook
2、C++由Bjarne Stroustrup于1983年开发完成,并作为C语言的增强方案。
4、C++中有84个关键字
3、C++可实现跨越所有设备移植,如、安卓、苹果、windows Phone、黑莓等移动平台。
4、Java
难度:★★★ 人气:★★★★★ 创建于1995年
Java的热度一直居高不下,长期霸占各类编程语言排行榜前三名。Java是一门面向对象的编程语言,开发者可以利用其在计算机上创建应用程序。大家在下载某款需要Java运行时的程序时,可能已经在不知不觉中将其安装到了自己的系统当中。Java还提供Web插件,允许大家在浏览器中运行此类应用。
用途:安卓、IOS开发、视频游戏开发、桌面GUI、软件开发。
优势:
1、需求旺盛,Java开发岗位为目前需求量最大的软件技能方向,Java也是世界上使用范围最广泛的编程语言。
2、不断发展的语言,Java平台不断迎来新功能,包括llambda机制的引入。
3、Android应用开发的基石:谷歌公司的Androld移动平台是目前全球范围内人气最高的移动平台,开发者可以利用自己的Java技能力为Android系统开发应用。
劣势:
1、占用大量内存:Java使用的内存量高于C++。
2、学习曲线较长:并不属于最马于上手的语言,当然也不是最难学习的语言。
3、启动时间较长:利用Java语言开发Androld应用时,我们一定会对其模拟器代码在台式机上运行速度留下深刻印象。
冷知识:
1、Java最初命名为Oak,因为其缔造者的窗外有一棵巨大的橡树
2、Java是Android操作系统的基石
3、使用Java帮助我们在网络世界旅行
4、大部分网站允许我们将图片直接上传到由Java构建而成的平台。
5、使用Java插件即可实现交互式在线地图
6、利用Java实现在线游戏
5、JavaScript(JS)
难度: ★★ 人气:★★★★ 诞生时间1995年
属性:JavaScnpt是一款使用领率最高的客户端脚本语言,这意味这JavaSonpt代码写至HTML页面当中, 当用户通过内部 JavaScript请求至HTML页面时,该脚本会被发送至浏览器,并由浏览器决定下一步操作。
用途:网站前端 分析 功能控件 Web交互
优势:
1、速度:作为客户端脚本语言JavaSarpt中的任意代码函数却可立即运行而无需等待服务器连接及应答,因此其速度非常出色。
2、易学性:JavaSorpt相对易于学习及使用。
3、简单性:JavaScrpt能够与其它多种语言项利协作,并可用于多种不同应用程序与PHP或者SSI脚本不同,JavaSoript 可被插入任意网页当中,而无需考虑具体文件扩展名。
劣势:
1、安全性:由于代码在用户计算机上执行,因此其有时会被恶意活动所利用.正因为如此,部分用户会选择禁用JavaScript.
2、最终用户依赖性::JavaScnpt有时会在不同浏览器上以不同方式进行解释。相较于总能提供同样输出结果的服务器端脚本,JavaScript客户端脚本的可预测性相对较差。不过这一问题并不是非常严重,只要我们在全部主流测览器上对脚本进行充分测试即可。
冷知识:
1、JS被用来构建PayPal 、YouTube
2、JS于1995年由网景公司开发完成
3、jQuery为目前为网络上应用最为广泛JS库
4、JavaScrip可用于在客户端实现表单数据,从而节约服务器资源与时间
5、JS基于当前时间显示信息
6、可以用来动态变更网页内容,无需借助于服务器程序
7、为网站引入交互元素
6、PHP
难度: ★★ 人气:★★★★ 诞生时间1994
PHP是一款服务器端脚本语言,主要面向Web开发但同时作为通用性编程语言。
用途:WordPress插件 Web开发 创建包含数据库功能页面
优势:
1、易于上手且功能丰富:它是一款适合Web开发与通用用途,易于快速上手的服务器端脚本语言。
2、庞大的社区:换有庞大所活跃的社区。Web开友者面临的大部分难题拥有现成的制决方案。
3、数据库:可与各类数据库、文件系统及图片顺畅协作。
劣势:
1、学习门槛过低:由于学习门槛太低,项目中存在着大量经验不足的开发者,某些开源代码甚至已经存在十余年。
2、速度::PHP为解释型语言,其代码运行速度低于大部分编程语言党争对手。
3、错误处理机制: PHP的错误处理机制比较糟糕,特别是与其它编程语言相比较,这主要是因为PHP的开发历史过长且需要支持大量旧有功能。
冷知识:
1、PHP用于构建FaceBook、WordPress
2、PHP最初表示个人主页(Personal Home Page),如今的含义是超文本预处理器
3、Rasmus Lerdort于1994年开发出PHP语言。他曾经开发出一系列网关接口脚本,并借此维护个人主页
4、PHP功能丰富并且支持 文本、HTML、CSS、JavaScript
5、PHP能用作收集表单数据、在服务器上对文件操作、生成动态页面内容、限定用户访问网站中的特定网页、添加 修改数据库中的数据、暑促HTML,图像,PDF,SWF文件、加密数据、发送接收cookie
7、Python
难度: ★ 人气:★★★★★ 诞生时间1990
Python是一项服务器端解释型开源非编译脚本语言可单独使用,也可作为django等框架的组成部分。
用途:Web开发、视频游戏开发、桌面GUI 软件开发。
优势:
1、易于学习:Python作为最易于掌握的编程语言而拥有极高人气。
2、库:广泛的工具及功能库能够帮助大家轻松完成构建工作。
3、物联网:Python特随着物联网技术的普及而进一步发展,目前Rasp-bery Pi等新型平台已经将其作为开发基础。
劣势:
1、速度:作为一种解释型语言,其速度往往往低于编译语言。
2、移动:Python在移动计算领域的表现比较直观,利用Python开发的移动应用非常罕见。
3、设计:Python语言在设计上存在一些问题,其属于动态类语言,因此需要进行更多测试且带来某些只在特定运行时中出现的错误。
冷知识:
1、Python用来构建YouTube、Spotify
2、是Google的官方语言之一
3、由程序员Guido van Rossum创建而成
8、RUBY
难度: ★★ 人气:★★★ 诞生时间1995年
属性:Ruby是一款动态式、响应式、面向对象的通用型编程语言,同时也是适合新手入门的语言之一。
用途:桌面GUI Web应用 Web开发
优势:
1、易于学习:与Python类似.Ruby同样属于最易于学习的编程语言之一。
2、广泛的工具及功能库使得利用Ruby构建应用安得非常轻松。详情参阅RubyGems.ong。
3、庞大且不断发展的社区:世界范围内几乎每一座主要城市都会定明组织Ruby社区研讨活动,其同时也是社交编程站点GitHub上最具人气的语言。
劣势:
1、运行时速度:关于Ruby on Rals,人们最深的印象就是糟糕的速度表现。
2、说明文档::我们很难找到良好的 Pauby说明文档。特别是对人气较低的gems以及库而言。
3、性能表现:: RoR应用的运行速度无法与Java或者C语言编写的应用相媲美但必先强调,大部分Rubon Rals应用的运行速度已经能够让人们接受了。
冷知识:
1、用于构建hulu、GROUPON、airbnb
2、Ruby的定位是帮助世界上每一位程序员获得生产力,享受编程的快感
3、Ruby on Rails是一套由Ruby编写的基于MIT许可的Web应用框架。
总结
从上面的对比我们不难发现,每种程序语言都有其优势和劣势,那么我们应该怎么选择编程语言呢?下面主要介绍种要考虑的的要点。
1、构建编写网页 推荐:HTML、CSS、PHP
2、开发app 推荐:Java、C++
3、制作视频游戏 推荐:Python、Java
4、对数据进行管理 推荐:C#、PHP、Python
5、进行偏硬件的编程 推荐:C
6、进行科学计算 推荐:Python
当然,我们在实际开发的时候需要我们综合考虑产品需求,在程序运行速度指标、硬件要求、开发周期等方面进行权衡,最终确定编程所需语言。