专栏首页泰斗贤若如主流编程语言的介绍及特点

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

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

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 对象没有构造函数和析构函数 技术比较年轻,有待后续发展

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 学编程的起点——高级语言大锅烩

    学知识前总想说点鸡汤,想喝的朋友就看看,不想喝的就直接看干货吧,就当鸡汤是给我自己喝的。

    泰斗贤若如
  • 匹马行天下之思维决定高度篇——道道道,学习Java之道

    你们好!我是来自地球的一名Java程序员,首先我代表地球人对贵星球的高司令来到地球传授Java语言,造福了全人类,造福了整个地球表示由衷的感谢!

    泰斗贤若如
  • Java 发展简史:初生遇低谷,崛起于互联网

    20世纪90年代,单片式计算机系统诞生,单片式计算机系统不仅廉价,而且功能强大,使用它可以大幅度提升消费性电子产品的智能化程度。

    泰斗贤若如
  • Java 之父 Jame:差点把 Java 命名成了 Silk(丝绸)

    Java是印度尼西亚爪哇岛的英文名称,因盛产咖啡而闻名。Java语言中的许多库类名称,多与咖啡有关:如JavaBeans(咖啡豆)、NetBeans(网络豆)以...

    纯洁的微笑
  • Jenkins安装 基于宝塔面板

    点开Java项目管理器,在版本管理中安装tomcat8,这个版本安装的jdk是1.8版本的。

    华创信息技术
  • 医疗 | 美国FDA首次批准AI诊断系统,通过视网膜照片鉴别眼科疾病

    大数据文摘
  • 回顾Java 8 9 10的新特性,展望即将来临的11和明年的12【大牛经验】

    1997年4月2日,JavaOne会议召开,参与者逾一万人,创当时全球同类会议纪录;

    Java帮帮
  • 【Medium翻译】Java抽象类有什么用?

    今天安利一个网站,其实很多朋友应该早就知道了,我之前ARTS打卡,英文文档的 很多出处就来自于这个网站,叫「Medium」。

    程序员小跃
  • CCNP之高级NAT实验

    一. 实验目的 本实验的目的是通过配置负载均衡 NAT 以及使用 NAT 转换交叉地址空间,让学员对 NAT 的工作原理有更深的认识,掌握 NAT 在路由器上的...

    企鹅号小编
  • 腾讯物联网开发者社区平台Tencent Things Network发布 让IoT应用开发快速安全

    ? 5月21-23日,由云南省人民政府指导,云南省文化和旅游厅、昆明市人民政府、腾讯公司共同主办,腾讯战略升级后打造的规格最高、规模最大的行业生态大会“全球数...

    腾讯技术工程官方号

扫码关注云+社区

领取腾讯云代金券