主流编程语言的介绍及特点

1.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)Android ROM 的定制,以及 Android App 的 NDK 开发。

(3)用 Cocos2d-x 开发游戏也是 C++ 程序员的好出路。

C

​          C 语言是一种通用的高级语言,最初是由丹尼斯·里奇在贝尔实验室为开发 UNIX 操作系统而设计的。UNIX 操作系统,C编译器,和几乎所有的 UNIX 应用程序都是用 C 语言编写的。由于各种原因,C 语言现在已经成为一种广泛使用的专业语言。

​         C语言是一门面向过程的计算机编程语言,与C++、Java等面向对象编程语言有所不同。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。C语言描述问题比汇编语言迅速,工作量小、可读性好,易于调试、修改和移植,而代码质量与汇编语言相当。C语言一般只比汇编语言代码生成的目标程序效率低10%~20%。因此,C语言可以编写系统软件。

​         特点:

易于学习,进行结构化编程

c语言所产生的代码运行速度与汇编语言编写的代码运行速度几乎一样

预编译处理使C语言更有弹性

​         优点:

代码量小

生成目标代码质量高,运行速度快

功能强大

跨平台,可移植性强

使用指针,灵活性强

允许直接访问物理地址,对硬件进行操作

缺点:

数据安全性有很大问题

语法限制不严格,映像程序安全性

指针太过灵活,初学难度有点大

c++

C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。

​        特点:

支持数据封装和数据隐藏

支持集成和重用

面向对象

支持多态性

C++ 是一种静态类型的、编译式的、通用的、大小写敏感的、不规则的编程语言,支持过程化编程、面向对象编程和泛型编程。

​         优点:

类型检查比c语言更加严格

增加了面向对象机制

增加了泛型编程机制

增加了函数重载和运算符重载

异常处理

提供了标准库STL

缺点:

没有垃圾回收机制,可能引起内存泄漏

2.Java

一句话概括:最长寿的语言

Java 是最典型的面向对象语言。Java 不仅吸收了 C++ 语言的各种优点,还摒弃了 C++ 里难以理解的多继承、指针等坑爹概念。今明两年毕业的大学生大多是 Java 的同龄人(1995 年)。

Java 的优势:

Java 平台不断迎来新功能,比如移动互联网时代的 Android,大数据时代的 Hadoop,人工智能时代的 TensorFlow;Java 是世界上使用范围最广的语言——Java 环境安装时那句 “3 Billion Devices Run Java” 谁没见过?

Java 的不足:

国内 Java 及其衍生技术的就业环境被培训班破坏得太厉害,培训班 HR 曾问我:“Android 不吃香了,你能推荐几个Hadoop 讲师吗?”Java 占用大量内存,并且启动时间较长——搞 Android 的都被 Windows 系统中的 Android AVD 坑过。

特性

  1. 纯面向对象

  2. 支持分布式

  3. 跨平台,移植性强

  4. 是一门编译性语言

  5. 支持多线程,高性能

优点

  1. 面向对象

  2. 稳健、安全、可移植、高性能

  3. 跨平台

  4. 编译型静态语言

​ 缺点:

  1. 编译速度慢

3.Python

一句话概括:需要拿着游标卡尺学习的语言

Python 是一款服务器端解释型开源非编译脚本语言。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是 C/C++)很轻松地联结在一起。

Python 的优势

Python 学习简单,被誉为 “最易学习的语言”

Python 的不足

Python 存在一些只在特定情况下才会出现(无法重现)的 bug

职业路线:

(1)用 Django 框架进行 Web 开发:和 Java 没什么两样。

(2)用 PIL 框架进行图形处理

(3)物联网:Raspberry Pi 等物联网平台都选择了 Python 作为开发语言

(4)Python 有一个无所不能的 Hack 库,如果认为 “打工时不可能打工的” 就去当一个自由的黑客吧

特性

  1. 解释性语言

  2. 拥有丰富的库

  3. 跨平台

  4. 可移植、可扩展

  5. 支持GUI编程

  6. 可嵌入

优点

  1. 简单,易学

  2. 免费,开源

  3. 可移植性强

  4. 属于解释性的一门动态语言

  5. 面向对象

  6. 拥有丰富的库

  7. 强制性缩进代码使得代码规范

缺点

  1. 运行速度慢

  2. 国内市场小

  3. 中文资料匮乏

4.JavaScript

一句话概括:不是 Java 语言的语言。

JavaScript 是一种动态类型、弱类型、基于原型的直译式脚本语言,也是使用频率最高的给 HTML 网页增加动态功能的语言。外行最常闹的笑话是以为它是 Java 语言的分支。

JavaScript 的优势:

作为脚本语言,JavaScript 可立即运行而无需等待服务器响应,速度非常出色;JavaScript 是动态类型语言,学习难度低。并且掌握了 JavaScript 语言就等于成为能同时开发网页(HTML5)、后台(Node.js)、移动端(React Native、Weex)的全栈工程师。

JavaScript 的不足:

代码在用户电脑上运行,可能会被别有用心的坏人恶意利用;JavaScript 过于依赖浏览器,在不同的浏览器上有不同的表现。

职业路线:

(1)首选 HTML5 的初心:网站和手机站的前端页面开发。

(2)用 Node.js 或 Bmob 云端代码进行后台开发

(3)基于 React Native、PhoneGap、Weex、HBuilder、AppCan 进行移动开发,只需写一遍代码,就有 Android 和 iOS 两个软件

(4)微信开发:包括微信公众号、微信小游戏、微信小程序。不要把这个方向当成中国特色方向,国外的 Android 机也是需要 PWA开发的。

(5)如果以上四样全能做到,那么你就是全栈工程师。

优点

  1. 减少网络数据传输

  2. javascript可以方便的操纵HTML对象

  3. 支持分布式运算

缺点

  1. 各浏览器对javascript支持程度不同

  2. “web安全性”对javascript一些功能牺牲

5.SQL

一句话概括:数据库离不开的语言

SQL 是一种专精于数据库的特殊目的语言。用于存取数据以及查询、更新和管理关系数据库系统。

SQL 的优势:

存储过程可以重复使用, 可减少数据库开发人员的工作量,开发速度快;SQL 可设定只有某此用户才具有对指定存储过程的使用权,安全性好。

SQL 的不足:

和 Java 语言的大多数设计模式一样,SQL 开发速度是靠牺牲运行速度换来的;不同数据库系统之间的 SQL 不能完全相互通用,可移植性差。

职业路线:

(1)掌握了 SQL 可以从事 DBA(Database Administrator,即数据库管理员),主要负责业务数据库从设计、测试到部署交付的全生命周期管理。

6.PHP

PHP 是一种通用开源脚本语言。语法吸收了 C 语言、Java 和 Perl 的特点,利于学习,使用广泛,主要适用于 Web 开发领域。号称 “世界上最好的语言”

PHP 的优势:

PHP 学习简单,易于快速上手;历久弥新的 PHP 拥有庞大而活跃的官方社区,开发者面临的大部分难题都有现成的解决方案,很多十几年前的解决方案在当代也有指导意义。

PHP 的不足:

PHP 的运行速度比较慢;PHP 的错误处理机制比较糟糕,以为 PHP 需要支持大量旧版本的功能。

职业路线:

(1)适合进行 Web 开发,配合 Node.js 效果更佳。

​        特性:

独特的语法:混合了c、java\perl以及php自创的新的语法

与其他编程语言相比,更快速的执行动态网页

php支持几乎所有流行的数据库以及操作系统

可以用c、c++进行程序扩展

​         优点:

php是一个免费开源语言

开发快,运行快,语法简单,方便学习

跨平台,效率高

具有很多成熟框架

有成熟社区支持php的开发

​         缺点:

php是个单进程的程序,不支持多线程

只支持做web开发,不方便做.exe问件、桌面应用程序、手机程序

不适合做爬虫、自动运行脚本

后期维护比较困难,后期提速空间局限性大

7.C#

一句话概括:自称不是 Java 的 Java 语言

C#是微软看到 Java 太火了而发明的和 Java 语法差不多的语言。

C#的优势:

C#的最大优势在于全面集成.Net 库,提供出色的功能与完美的库访问能力;VR 时代的到来让 Unity-3d 开发者有很好的发展前景。

C#的不足:

由于集成.Net 库造成跨平台能力太差;目前.Net 在国内就业环境不太好,收入较低。

职业路线:

(1)招聘网站上常见的 “招聘 C#开发” 和 “招聘.Net 开发” 指的都是狭义的 C#开发——基于.Net 框架的后台开发。

(2)Unity-3d 也用 C#作为开发语言,除了能开发 3D 游戏,在 VR 时代也会大放光芒。

8.JSP

​         JSP全称Java Server Pages,是一种动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码。

​       特点:

JSP可以直接在HTML网页中动态嵌入元素

JSP 基于Java Servlet API,因此,JSP拥有各种强大的企业级Java API,包括JDBC,JNDI,EJB,JAXP等等。

JSP页面可以与处理业务逻辑的 Servlet 一起使用,这种模式被Java servlet 模板引擎所支持。

​         优点:

一次编写,到处运行。除了系统之外,代码不用做任何更改。

跨平台,支持多种网页格式,jsp标签可扩展性

强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。

具有非常多的免费优秀的开发工具,并且可以顺利的运行于多平台

支持服务器端组件

​         缺点:

增加产品的复杂性

java的高效率运行需要占用大量的内存和硬盘空间

调试困难

9.    go

​         go语言被设计成一门应用于搭载web服务器,存储集群或巨型中央服务器的系统编程语言,在高性能分布式系统领域拥有着极其高效的开发效率

​         特点:

简洁,快速,安全

自动垃圾回收

函数多返回值

并发编程

反射

语言交互

跨平台

开源

编译型静态语言

​         优点:

1.性能优越,go比python快30倍,比java快将近一倍

2. 编译时间非常快

3. go编写简单,易于学习

4. 对 gPRC 和 protocol Buffers 具有一流支持

5. GOFMT,强制代码格式

6. 天生支持并发编程

7. 强大的标准库

8. 接近c的运行效率,接近php的开发效率

​         缺点:

没有主要框架

错误处理机制太原始

垃圾回收器不完善

语法格式要求太过严格,禁止有未使用的变量和多余的import

对象没有构造函数和析构函数

技术比较年轻,有待后续发展

转载于:https://www.cnblogs.com/zyx110/p/10617323.html

主流编程语言的介绍及特点相关推荐

  1. 请允许我用2019年11种主流编程语言,祝祖国70华诞快乐!

    ------·今天距2020年91天·------ 这是ITester小栈第45次推文 大家好,我是coco 小 锦鲤 今天是十月一日 举国同庆 喜大普奔 风调雨顺 让我们用11种主流编程语言 祝福祖 ...

  2. 入小学教材、主流编程语言增长最快…… Python 的 2017 回顾

    (点击上方公众号,可快速关注) 整理:Python开发者(PythonCoder) [导读]:每当有 Python 相关重要资讯时,「Python开发者」都会跟进推荐给大家.2017 年中 Pytho ...

  3. Go语言无孔不入的2016:跻身主流编程语言、国内大热、极速提升、尖端应用……

    2015,Go迎来了全迸发的一年.时隔一年,回头再看,Go已跻身主流编程语言行列.在国内,Go的热度更是不凡.2016,对于Go来说,又是怎样的一年? 前言 Go语言已经7岁了!今年8月,Go 1.7 ...

  4. 跳妹儿学编程之ScratchJr(二):主流编程语言的区别,小孩如何选择(Scratch/Java/Python/C/C++)

    目录 一.前言 二.主流编程语言区分 1.概括 2.Scratch 3.C 4.C++ 5.Java 6.Python 7.对比 a.彼此关系 b.编写难度(入手难度) c.执行效率(执行速度) 三. ...

  5. Java处理XML的三种主流技术及介绍

    Java处理XML的三种主流技术及介绍(1) 2012-08-15 10:44 顾彬/冯晨/乔彬 IBM developerWorks 我要评论(0) 字号:T | T XML (eXtensible ...

  6. 主流markdown编辑器介绍

    主流markdown编辑器介绍 这是从别的博客找来的markdown编辑器汇总,删掉了废话,只留下了中点,方便查找.(文末有原文出处,想看原文的可以去看) 1.Mou Mou 是一款由国人开发的Mar ...

  7. MongoDb Windows linux平台环境及主流编程语言驱动安装同时配置mongoDb的远程连接

    MongoDb Windows linux平台环境及主流编程语言驱动安装同时配置mongoDb的远程连接 <一,>MongoDB 简介篇Ruiy; MongoDB是一个高性能,开源,无模式 ...

  8. 主流浏览器内核介绍(前端开发值得了解的浏览器内核历史)

    内核 首先得搞懂浏览器内核究竟指的是什么. 浏览器内核又可以分成两部分:渲染引擎(layout engineer 或者 Rendering Engine)和 JS 引擎.它负责取得网页的内容(HTML ...

  9. 基于对象和面向对象编程范式辨析和主流编程语言中的应用

    基于对象和面向对象编程范式辨析和主流编程语言中的应用 前言 本文的目的是想告诉大家,为什么C++的模板这么强大.为什么Ruby的Duck Typing(像鸭子那样编程)这么强大! 基于对象和面向对象编 ...

  10. 各主流浏览器内核介绍

    所谓的"浏览器内核"无非指的是一个浏览器最核心的部分--"Rendering Engine",直译这个词汇叫做"渲染引擎",不过我们也常称其 ...

最新文章

  1. 【AngularJS】—— 12 独立作用域
  2. 历数玩转光伏的IT巨头们
  3. 【测试】用示波器抓取红外遥控器NEC信号
  4. python构建bp神经网络_鸢尾花分类(一个隐藏层)__1.数据集
  5. url(r'^index/$',views.index)的含义解释
  6. ISA2006系列之三 详解防火墙的三种客户端(上)
  7. 【信息系统项目管理师】第4章-项目整体管理 知识点详细整理
  8. C#等同于正则表达式的写法
  9. python敏感词过滤替换_浅谈Python 敏感词过滤的实现
  10. WGS84,GCJ-02,BD-09坐标系间的经纬度坐标转换
  11. 详解透明网桥的三个功能
  12. python画樱花(一)
  13. JavaWeb进阶之路:MyBatis初体验
  14. 超详细!apk安装包快速反编译,多种反编译及失败的解决方案(包含classes.dex的反编译,新增加快速反编译)
  15. zabbix通过pg_monz模板监控postgresql数据库
  16. node -v 不是内部或外部命令 也不是可运行的程序 或批处理文件。
  17. java中的静态、动态代理模式以及Spring中的CgLib动态代理解读(面试必问)
  18. Redis数据操作(redis入门)
  19. 02325计算机系统结构(重点)
  20. 遗失的访谈——岁月无声

热门文章

  1. 无序列表前小黑点图片替换方法
  2. Saving Tang Monk II(bfs+优先队列)
  3. 异数OS TCP协议栈测试(一)--数据传输篇
  4. 尺度不变特征变换(SIFT)匹配算法详解
  5. [Latex]visio画图导入矢量图到Latex | 裁剪pdf | 去掉pdf白边
  6. 关于VS2019调试问题:进程已退出,代码为-1073741819(已解决)
  7. Fisher精确检验
  8. 软件的开发模型之瀑布型和快速原型
  9. 一分钟掌握卡诺图化简法
  10. 基于java的OA系统设计与实现