常用编程语言及各语言特点
从1946年至今,电脑已经发展了70多年了,从最开始的电子管到如今的个人PC,除了硬件上的更新迭代外,软件的更新即编程语言的发展也是重中之重。
当今世界主流的编程语言排行榜如下:
(PS:内容来自百度图片)
而常用的编程语言有:C,C++,C#,JAVA,Python,Go,接下来我便要写点对于这些语言的简介和对于各个语言特点的理解了(理解部分有的是自己写的,有的是参照了网路资源,毕竟也没学过那么多语言嘛)
C语言
- 介绍
百度百科对于C语言的描述。百度百科.
C语言是一门强大的语言,与大多数面对对象思维的语言不同,C语言是面向程序的,这种面向结构的编程语言由Dennis Ritchie于1972年在贝尔实验室开发。 C语言的一些特性来源于B语言或基本组合编程语言-BCPL。而且它广泛的在Linux,UNIX和Windows等操作系统上开发系统应用程序。
- 特点
- 优点
- 代码量小。
- 运行速度快。
- 功能强大。
- 缺点
- 危险性高。
- 开发周期长。
- 可移植性不强。
C++
- 介绍
C++是C语言的直接继承人,面向对象编程的先驱,不是完全的面向对象言语主要的软件解决方案,驱动程序和固件包都有C ++实现。 C ++具有高级和低级编程语言的特点。 因此,它被视为一种中级语言。 但是当谈到低级别,硬核编程时,C ++是首选。
C ++被用于游戏,特别是3D。它还用于基于图形用户界面(GUI)的应用程序、Web浏览器、高级计算和图形、编译器、数据库软件、操作系统、企业软件解决方案以及高端CAD、CAM系统等应用程序。
- 特点
较之于C语言
- 优点
C++既保留C语言的灵活性,简洁高效和接近汇编底层语言等的特点,又增加面向对象等特点。用C++写的代码可读性好,运行效率高。
- 代码可读性好。
- 可重用性好。
- 可移植。
- C++设计成无需复杂的程序设计环境
- 运行效率高,高效安全
- 语言简洁,编写风格自由。
- 提供了标准库stl
- 面向对象机制
- 缺点
- 相对java来说,没有垃圾回收机制,可能引起内存设漏;
- 内容较多较难,学起来相对困难;
C#
- 介绍
由微软设计和开发的C#(发音为C-sharp)是一种面向对象的编程语言。
由.NET Framework支持的Microsoft应用程序需要C#执行。 顾名思义,这种语言是基于C和C ++的。 - 特点
- 优点
- 相比java,有更先进的语法体系
由于C#是后生,所以其很多语法都是其它语言的改进。作为一个商业产品,C++用户是C#的首要目标,所以它充分照顾到了C++用户的习惯。从整体看,C#语法比java更优雅。这里java粉丝就可能会站出来,说java也有好的地方----对的,我没说C#在任何地方都优于java,请不要举出局部上的反例----C#和java比较的文章比比皆是,这里就不再重复了。C#团队在设计语法时充分照顾到了常见的业务需求,而不是单纯的技术层面上的纸上谈兵。于是,C#支持事件、委托、属性、Linq等一系列让业务开发更简单的功能。 - 强大的周边
C#的IDE功能非常强大,C#的文档有包含中文的多国语言,C#所需要的运行平台在用户量极大的windows上内置。一切的一切都在向我们诉说,C#有一个强大的爹。同时也说明,C#不仅仅是一个语言,更是一个极具匠心的产品。所以,用户可以享受到这个产品的各个功能----包括售后服务。
- 缺点
- 没有考虑代码量
在C#中,文档注释需求书写xml,但是文档注释却是不能继承的,即用户必须手动为每个函数和重载添加注释。C#的很多常用的工具类因为其使用的局限性(如菜鸟用了就会出错)而不被公开。
JAVA
- 介绍
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。 - 特点
- 优点
1. 简单性
Java语言是一种面向对象的语言 ,它通过提供最基本的方法来完成指定的
任务 ,只需理解一些基本的概念 ,就可以用它编写出适合于各种情况的应用程
序。 Java略去了运算符重载、多重继承等模糊的概念 ,并且通过实现自动垃圾
收集大大简化了程序设计者的内存管理工作。另外 ,Java也适合于在小型机上运
行 ,它的基本解释器及类的支持只有 40KB左右 ,加上标准类库和线程的支持也
只有 215KB左右。库和线程的支持也只有 215KB左右。 - 面向对象
Java语言的设计集中于对象及其接口 ,它提供了简单的类机制以及动态的
接口模型。对象中封装了它的状态变量以及相应的方法 ,实现了模块化和信息
隐藏 ;而类则提供了一类对象的原型 ,并且通过继承机制 ,子类可以使用父类
所提供的方法 ,实现了代码的复用。 - 分布性
Java是面向网络的语言。通过它提供的类库可以处理 TCP/IP协议 ,用户
可以通过 URL地址在网络上很方便地访问其它对象。 - 鲁棒性
Java在编译和运行程序时 ,都要对可能出现的问题进行检查 ,以消除错误
的产生。它提供自动垃圾收集来进行内存管理 ,防止程序员在管理内存时容易
产生的错误。通过集成的面向对象的例外处理机制 ,在编译时,Java提示出可能
出现但未被处理的例外 ,帮助程序员正确地进行选择以防止系统的崩溃。另外,
Java在编译时还可捕获类型声明中的许多常见错误 ,防止动态运行时不匹配问题
的出现。 - 安全性
用于网络、分布环境下的 Java必须要防止病毒的入侵。 Java不支持指针,
一切对内存的访问都必须通过对象的实例变量来实现 ,这样就防止程序员使用
"特洛伊 "木马等欺骗手段访问对象的私有成员 ,同时也避免了指针操作中容易
产生的错误。 - 体系结构中立
Java解释器生成与体系结构无关的字节码指令 ,只要安装了 Java运行时
系统 ,Java程序就可在任意的处理器上运行。这些字节码指令对应于 Java虚拟
机中的表示 ,Java解释器得到字节码后 ,对它进行转换 ,使之能够在不同的平
台运行。 - 可移植性
与平台无关的特性使 Java程序可以方便地被移植到网络上的不同机器。
同时 ,Java的类库中也实现了与不同平台的接口 ,使这些类库可以移植。另外,
Java编译器是由 Java语言实现的 ,Java运行时系统由标准 C实现 ,这使得Java
系统本身也具有可移植性。 - 解释执行
Java解释器直接对 Java字节码进行解释执行。字节码本身携带了许多
编译时信息 ,使得连接过程更加简单。 - 高性能
和其它解释执行的语言如 BASIC、 TCL不同 ,Java字节码的设计使之能
很容易地直接转换成对应于特定CPU的机器码 ,从而得到较高的性能。 - 多线程
多线程机制使应用程序能够并行执行 ,而且同步机制保证了对共享数据的正确操作。通过使用 多线程 ,程序设计者可以分别用不同的线程完成特定
的行为 ,而不需要采用全局的事件循环机制 ,这样就很容易地实现网络上的实
时交互行为。 - 动态性
Java的设计使它适合于一个不断发展的环境。在类库中可以自由地加入
新的方法和实例变量而不会影响用户程序的执行。并且 Java通过接口来支持
多重继承 ,使之比严格的类继承具有更灵活的方式和扩展性。
2. 缺点
- 较之于C/C++,速度比较慢
- 代码较长(敲疯了好伐)
- 灵活性不足
Python
PS:源自菜鸟教程。菜鸟教程
- 介绍
Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。 - 特点
- 易于学习:Python有相对较少的关键字,结构简单,和一个明确定义的语法,学习起来更加简单。
- 易于阅读:Python代码定义的更清晰。
- 易于维护:Python的成功在于它的源代码是相当容易维护的。
- 一个广泛的标准库:Python的最大的优势之一是丰富的库,跨平台的,在UNIX,Windows和Macintosh兼容很好。
- 互动模式:互动模式的支持,您可以从终端输入执行代码并获得结果的语言,互动的测试和调试代码片断。
- 可移植:基于其开放源代码的特性,Python已经被移植(也就是使其工作)到许多平台。
- 可扩展:如果你需要一段运行很快的关键代码,或者是想要编写一些不愿开放的算法,你可以使用C或C++完成那部分程序,然后从你的Python程序中调用。
- 数据库:Python提供所有主要的商业数据库的接口。
- GUI编程:Python支持GUI可以创建和移植到许多系统调用。
- 可嵌入: 你可以将Python嵌入到C/C++程序,让你的程序的用户获得"脚本化"的能力。
Go
源自菜鸟教程菜鸟教程
- 介绍
Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。
Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发,后来还加入了Ian Lance Taylor, Russ Cox等人,并最终于2009年11月开源,在2012年早些时候发布了Go 1稳定版本。现在Go的开发已经是完全开放的,并且拥有一个活跃的社区。 - 特点
- 简洁、快速、安全
- 并行、有趣、开源
- 内存管理、数组安全、编译迅速