常见编程语言

文章目录

    • 编程语言排行榜
      • 2019年12月排行榜
      • 历年年度编程语言
    • 非主流编程语言介绍
      • Go
      • Objective-C
      • Perl
      • R
      • Groovy
      • Swift
      • Delphi/Object Pascal
      • D
      • Rust
      • LISP
      • Ada

编程语言排行榜

TIOBE排行榜是根据互联网上有经验的程序员、课程和第三方厂商的数量,并使用搜索引擎(如Google、Bing、Yahoo!)以及Wikipedia、Amazon、YouTube统计出排名数据,只是反映某个编程语言的热门程度,并不能说明一门编程语言好不好,或者一门语言所编写的代码数量多少。
链接:https://www.tiobe.com/tiobe-index/

2019年12月排行榜

常见编程语言_第1张图片

历年年度编程语言

常见编程语言_第2张图片

非主流编程语言介绍

Go

Go(又称Golang)是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。
2007年,受够了C++煎熬的Google首席软件工程师Rob Pike纠集Robert Griesemer和Ken Thompson两位牛人,决定创造一种新语言来取代C++, 这就是Golang。出现在21世纪的GO语言,虽然不能如愿对C++取而代之,但是其近C的执行性能和近解析型语言的开发效率以及近乎于完美的编译速度,已经风靡全球。特别是在云项目中,大部分都使用了Golang来开发。
Go 文化的主要支柱是保持简单实用的代码,而不会产生多余的抽象,并且非常重视代码的可维护性。能够把大量时间用在实现业务代码上,而不是用来修改工具和配置环境,这也是文化的一部分。Go 也可以总结为“应该只有一个方法来完成一件事情”。

GO语言的关键特性主要包括以下几方面:
语言级别支持协程(微线程)并发,基于消息传递的协程间通信方式
重度依赖于静态代码分析,包括用于文档的 godoc,用于代码格式化的 gofmt,用于代码风格检查的 golint,以及许多其他的例子。
丰富实用的内置数据类型
丰富的标准库,Go目前已经内置了大量的库,特别是网络库非常强大。
支持函数多返回值
Go 提供了一个内置的测试和性能分析框架,旨在简化和高效。
defer延时处理机制,这种机制非常适合善后逻辑处理
是强类型的编译型语言,但是提供了Any类型(interface{})和强大的类型反射(reflect)能力,二者相结合,开发的灵活性上已经很接近解析型语言
在语言级别自带HTTP/TCP/UDP高性能服务器
有一套标准的工程管理规范
编程规范强制集成在语言中
可直接编译成机器码,不依赖其他库;编写的Go代码不包含cgo可以跨平台编译
内置runtime,支持垃圾回收,不过,还不太完善
内嵌C支持,Go里面也可以直接包含C代码,利用现有的丰富的C库。

GO语言的缺点
Go 语言没有一个主要的框架。
Go 语言的软件包管理绝对不是完美的。默认情况下,它没有办法制定特定版本的依赖库。

GO语言适合用途
服务器编程,以前你如果使用C或者C++做的那些事情,用Go来做很合适,例如处理日志、数据打包、虚拟机处理、文件系统等。
分布式系统,数据库代理器等。
网络编程,这一块目前应用最广,包括Web应用、API应用、下载应用。

Objective-C

Objective-C是扩充C的面向对象编程语言。它主要使用于Mac OS X和GNUstep这两个使用OpenStep标准的系统,而在NeXTSTEP和OPENSTEP中它更是基本语言。(注:NeXTSTEP和OPENSTEP是基于Unix OS内核,并遵循OpenStep的API规范的操作系统)
GCC与Clang含Objective-C的编译器,Objective-C可以在GCC以及Clang(编译器)运作的系统上编译。

Perl

Perl即“实用报表提取语言”(Practical Extraction and Report Language),是一种具有高级语言(如C)的强大能力和灵活性的解释型语言。
它借取了C、sed、awk、shell 脚本语言以及很多其他程序语言的特性,其中最重要的特性是它内部集成了正则表达式的功能,以及巨大的第三方代码库CPAN。被称之为“一种拥有各种语言功能的梦幻脚本语言”、“Unix 中的王牌工具”。

Perl的前身是Unix系统管理的一个工具,被用在无数的小任务里。后逐渐发展成为一种功能强大的程序设计语言,用作Web编程、数据库处理、XML处理以及系统管理;在完成这些工作时,同时仍能处理日常细小工作,这是它的设计初衷。Perl特别适合系统管理和Web编程。
Perl运行在超过100种计算机平台上,适用广泛,从大型机到便携设备,从快速原型创建到大规模可扩展开发。实际上已经被用在所有Unix(包括Linux)捆绑在一起作为标准部件发布,同时也用于Microsoft Windows和几乎所有操作系统。

R

R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。
R是集统计分析与图形显示于一体的。

它的特点有:
R是自由软件。
R是一种可编程的语言。
所有R的函数和数据集是保存在程序包里面的。
R具有很强的互动性。除了图形输出是在另外的窗口处,它的输入输出窗口都是在同一个窗口进行的。
如果加入R的帮助邮件列表,每天都可能会收到几十份关于R的邮件资讯。可以和全球一流的统计计算方面的专家讨论各种问题,可以说是全世界最大、最前沿的统计学家思维的聚集地。

Groovy

Groovy是一种基于JVM(Java虚拟机)的敏捷的动态语言,也是一种成熟的面向对象编程语言,既可以用于面向对象编程,又可以用作纯粹的脚本语言。(注:动态语言,是指程序在运行时可以改变其结构:新的函数可以被引进,已有的函数可以被删除等在结构上的变化,类型的检查是在运行时做的)
它构建在强大的Java语言之上并添加了从Python,Ruby和Smalltalk等语言中学到的诸多特征,例如动态类型转换、闭包和元编程(metaprogramming)支持。
它在设计时充分考虑了Java集成,这使 Groovy 与 Java 代码的互操作很容易。由于其运行在 JVM 上的特性,Groovy 可以使用其他 Java 语言编写的库。

Swift

Swift是苹果于2014年WWDC(苹果开发者大会)发布的新开发语言,可与Objective-C共同运行于Mac OS和iOS平台,用于编写 iOS 和 macOS 应用。
Swift 结合了 C 和 Objective-C 的优点并且不受C兼容性的限制。Swift 采用安全的编程模式并添加了很多新特性,这将使编程更简单,更灵活。
Swift在应用开发上比Objective-C具有更新更好的特性,但是不能胜任所有方面,例如底层和Framework的开发。

Delphi/Object Pascal

Delphi是著名的Borland(现在已和Inprise合并)公司开发的可视化软件开发工具。
Object Pascal指Pascal的面向对象的衍生分支,以Delphi的主要编程语言著称。
Object Pascal 是一种高级编译语言,具有强类型特性,支持结构化和面向对象编程。它的优点包括代码的易读性、快速编译,以及支持多个单元文件从而实现模块化编程。

D

D语言最初由Digital Mars公司就职的Walter Bright于2001年发布,意图改进C++语言,它是一门静态编译型语言。
D 语言源自C/C++,借鉴了众多编程语言的特色和现代编译器技术,融会贯通了设计者丰富的实践经验,使之具备了非凡的威力--既有 C/C++ 语言的强大威力,又有 Python 和 Ruby 的开发效率,采用了各种野心勃勃的编译器优化技术。

它集众多系统级编程所需的功能于一身,例如垃圾回收、手工内存操作、多范式编程、契约式设计和内置单元测试、高级模板技术、内嵌汇编、Mixin 风格多继承、类 Java 包管理机制、内置同步机制、内建基本运行时信息。
D 很适合于编写从中等规模到团队合作完成、数百万行代码规模的各种程序。D不直接兼容 C/C++源代码,但对C API提供了很好的支持,不仅支持所有的 C数据类型,还提供了直接访问 C 函数的能力。

Rust

Rust是一门系统编程语言,也是许多区块链底层编程语言,专注于安全,尤其是并发安全,支持函数式和命令式以及泛型等编程范式的多范式语言。Rust最初是由Mozilla研究院的Graydon Hoare设计创造,然后在Dave Herman, Brendan Eich以及很多其他人的贡献下逐步完善的。
Rust编译器是在MIT License 和 Apache License 2.0双重协议声明下的免费开源软件。

Rust在语法上和C++类似,但是设计者想要在保证性能的同时提供更好的内存安全。
Rust不使用自动垃圾回收系统,而是通过RAII(Resource Acquisition Is Initialization,也称为“资源获取就是初始化”,是C++语言的一种管理资源、避免内存泄漏的惯用法。它保证在任何情况下,使用对象时先构造对象(获取资源),最后析构对象(释放资源)。)来管理内存和资源,还可选引用计数。Rust以低开销提供资源确定性管理。
标准Rust性能与标准C++性能不相上下。

LISP

LISP语言(LISP,List Processing的缩写)是一种早期开发的、具有重大意义的表处理语言。它适用于符号处理、自动推理、硬件描述和超大规模集成电路设计等。
特点是,使用表结构来表达非数值计算问题,实现技术简单。

LISP语言不仅在专家系统和CAD领域有广泛的应用,在符号代数、定理证明、机器人规划等领域也有广泛的应用。LISP语言已成为最有影响,使用十分广泛的人工智能语言。

影响LISP语言使用的主要原因有:一是LISP是非可视化语言;二是LISP在通用计算机上的运行效率较低;三是LISP的数值计算能力较差;四是人们对函数型语言的编程风格不习惯。

Ada

Ada是一种表现能力很强的通用程序设计语言,它是美国国防部为克服软件开发危机,耗费巨资,历时近20年研制成功的。它被誉为第四代计算机语言的成功代表。与其他流行的程序设计语言不同,它不仅体现了许多现代软件的开发原理,而且将这些原理付诸实现。因此,Ada语言的使用可大大改善软件系统的 清晰性,可靠性,有效性,可维护性。
Ada语言的定义同国际标准化组织(ISO)的标准有很大不同,因为他是一个自由内容形式的。Ada语言由严格的巴斯特范式定义,但是不适合一般人阅读。它是第一种同时拥有IEC/ISO/美国军用标准认证的语言。

Ada语言最早是针对嵌入式和实时系统设计的,并且在今天依然在这方面使用广泛。
Ada语言最初设计是为了构建长周期的、高度可靠的软件系统。

Ada语言的重要特征就是其嵌入式风格,模块化设计,编译检查,平行处理,异常处理及泛型编程。Ada在95年加入了对面向对象设计的支持,包括动态分配等。
Ada的编译检查主要是针对没有分配的内存读写的保护,堆栈溢出错误,单个错误空闲,队列读写错误以及其他可以避免的小问题。
Ada的动态内存管理非常安全和高规格。
Ada也支持单独编译(separate compilation),在物理层上支持模块性。
Ada包含了很复杂的功能以支持实时(real-time),并发程序设计(concurrent programming)。
错误可以作为异常(exception)来标示,并可以被明确地处理。

你可能感兴趣的:(学习笔记,非主流语言系技术)