常见编程语言

常见编程语言

 

如果您编写过软件,您肯定问过自己“我应该使用哪种语言来编写这个程序?”这是一个合理的问题。

  1. 您的代码是否需要尽可能快?
  2. 它是否会在网络上运行?
  3. 该代码将位于后端还是前端?

所有语言都有自己的定位。

编程语言 计算机语言的种类非常的多,总的来说可以分成机器语言,汇编语言,高级语言三大类。

  1. 计算机所能识别的语言只有机器语言,即由0和1构成的代码。但通常人们编程时,不采用机器语言,因为它非常难于记忆和识别。
  2. 汇编语言的实质和机器语言是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,更容易识别和记忆。它同样需要编程者将每一步具体的操作用命令的形式写出来。汇编程序通常由三部分组成:指令、伪指令和宏指令。汇编程序的每一句指令只能对应实际操作过程中的一个很细微的动作,例如移动、自增,因此汇编源程序一般比较冗长、复杂、容易出错,而且使用汇编语言编程需要有更多的计算机专业知识,但汇编语言的优点也是显而易见的,用汇编语言所能完成的操作不是一般高级语言所能实现的,而且源程序经汇编生成的可执行文件不仅比较小,而且执行速度很快。
  3. 高级语言是目前绝大多数编程者的选择。和汇编语言相比,它不但将许多相关的机器指令合成为单条指令,并且去掉了与具体操作有关但与完成工作无关的细节,例如使用堆栈、寄存器等,这样就大大简化了程序中的指令。同时,由于省略了很多细节,编程者也就不需要有太多的专业知识。 

高级语言主要是相对于汇编语言而言,它并不是特指某一种具体的语言,而是包括了很多编程语言,如目前流行的VB、VC、FoxPro、Delphi等,这些语言的语法、命令格式都各不相同。 像最简单的编程语言PASCAL语言也属于高级语言。

高级语言所编制的程序不能直接被计算机识别,必须经过转换才能被执行,按转换方式可将它们分为两类:

  1. 解释类:执行方式类似于我们日常生活中的“同声翻译”,应用程序源代码一边由相应语言的解释器“翻译”成目标代码(机器语言),一边执行,因此效率比较低,而且不能生成可独立执行的可执行文件,应用程序不能脱离其解释器,但这种方式比较灵活,可以动态地调整、修改应用程序。

  1. 编译类:编译是指在应用源程序执行之前,就将程序源代码“翻译”成目标代码(机器语言),因此其目标程序可以脱离其语言环境独立执行,使用比较方便、效率较高。但应用程序一旦需要修改,必须先修改源代码,再重新编译生成新的目标文件(* .OBJ)才能执行,只有目标文件而没有源代码,修改很不方便。现在大多数的编程语言都是编译型的,例如Visual C++、Visual Foxpro、Delphi等。

汇编语言(assembly language)

——汇编语言(assembly language)是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符(Mnemonics)代替机器指令的操作码,用地址符号(Symbol)或标号(Label)代替指令或操作数的地址。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。普遍地说,特定的汇编语言和特定的机器语言指令集是一一对应的,不同平台之间不可直接移植。

Matlab

——数学,仿真,信号处理等。

Smalltalk

——Smalltalk被公认为历史上第二个面向对象的程序设计语言和第一个真正的集成开发环境 (IDE)。由Alan Kay,Dan Ingalls,Ted Kaehler,Adele Goldberg等于70年代初在Xerox PARC开发。Smalltalk对其它众多的程序设计语言的产生起到了极大的推动作用,主要有:Objective-C,Actor, Java 和Ruby等。90年代的许多软件开发思想得利于Smalltalk,例如Design Patterns, Extreme Programming(XP)和Refactoring等。

Smalltalk和许多程序设计语言不同,它不仅仅是一门语言。下面我们从几个不同的角度来解释Smalltalk。

  1. 一种面向对象的程序设计语言;
  2. 一种程序设计环境;
  3. 一个应用开发环境(ADE);

Erlang

——Erlang是一种通用的面向并发的编程语言,它是一个结构化,动态类型编程语言,内建并行计算支持。最初是由爱立信专门为通信应用设计的,比如控制交换机或者变换协议等,因此非常适合于构建分布式,实时软并行计算系统。使用Erlang编写出的应用运行时通常由成千上万个轻量级进程组成,并通过消息传递相互通讯。进程间上下文切换对于Erlang来说仅仅只是一两个环节,比起C程序的线程切换要高效得多得多。

使用Erlang来编写分布式应用要简单的多,因为它的分布式机制是透明的:对于程序来说并不知道自己是在分布式运行。Erlang运行时环境是一个虚拟机,有点像Java虚拟机,这样代码一经编译,同样可以随处运行。它的运行时系统甚至允许代码在不被中断的情况下更新。另外如果需要更高效的话,字节代码也可以编译成本地代码运行。

Lisp

——LISP是一种通用高级计算机程序语言,长期以来垄断人工智能领域的应用。LISP作为因应人工智能而设计的语言,是第一个声明式系内函数式程序设计语言,有别于命令式系内过程式的C、Fortran和面向对象的Java、C#等结构化程序设计语言。

Lisp是一门历史悠久的语言,全名叫LISt Processor,也就是“表处理语言”,它是由John McCarthy于1958年就开始设计的一门语言。和Lisp同时期甚至更晚出现的许多语言如Algo等如今大多已经消亡,又或者仅仅在一些特定的场合有一些微不足道的用途,到现在还广为人知的恐怕只剩下了 Fortran和COBOL。但唯独Lisp,不但没有随着时间而衰退,反倒是一次又一次的焕发出了青春,从Lisp分支出来的Scheme、ML等语言在很多场合的火爆程度甚至超过了许多老牌明星。

LISP是函数式程序设计的先锋,其诸多革命性的创新思维影响了后续编程语言的发展,亦完全垄断人工智能领域的应用长达三分之一个世纪。曾在开展初年出现的低效率因素亦在集体改良中被移去,成就了现在广被应用于软件开发、电子商务及金融系统的Common Lisp、Scheme、Emacs Lisp和Clojure等。

ML

——ML (meta language)是一个通用的函数式编程语言,它是由爱丁堡大学的Robin Milner及他人在二十世纪七十年代晚期开发的。它的语法是从ISWIM得到的灵感。作为元语言的ML是为了帮助在LCF定理证明机中寻找证明策略而构想出来的。(之前的元语言是pplambda,它联合了一阶逻辑演算、多态及Λ演算)。它使用了Hindley-Milner类型推论算法来推测大多数值的类型,而不需要四处使用注解。

Clojure

——Clojure是一种运行在Java平台上的 Lisp 方言,Lisp是一种以表达性和功能强大著称的编程语言,但人们通常认为它不太适合应用于一般情况,而Clojure的出现彻底改变了这一现状。如今,在任何具备 Java 虚拟机的地方,您都可以利用 Lisp 的强大功能。

Kotlin

——是一个基于JVM的新的编程语言,由JetBrains开发。Kotlin可以编译成Java字节码,也可以编译成JavaScript,方便在没有JVM的设备上运行。Kotlin已正式成为Android官方支持开发语言。(Java也支持)

Kotlin是一门静态语言,支持多种平台,包括移动端、服务端以及浏览器端,此外,Kotlin还是一门融合了面向对象与函数式编程的语言,支持泛型、安全的空判断,并且Kotlin与Java可以做到完全的交互。

Rust

——Rust是一种低级的系统编程语言,其目标是提供高性能、安全性和并发性,它是一个不错的C/C++的替代语言。过去,C开发人员努力使用Rust编写操作系统、数据库、嵌入式程序、内核以及各种系统程序。

Rust 是一种静态类型的编译语言,满足了大多数用户使用 C 或 C++ 能够实现的目标。但是不同于 C 和 C++,Rust 还侵占了 C# 和 Java™ 语言在本世纪统治了很长时间的领域:Rust 语言是内存安全且与操作系统无关的,这意味着它可以在任何计算机上运行。实质上,您会获得系统语言的所有速度和低阶优势,而没有我提及的后几种语言中麻烦的垃圾收集。激动不已?是的。

Ruby

——Ruby 是另外一种开源的,面向对象的,通用的编程语言,这是一种简单的,有助于快速应用开发的语言。 Ruby最有名的框架是 Rails(Ruby on Rails),这主要被用来 web 开发。

Ruby是一种简单的面向对象编程语言,十分容易上手,并且功能强大。她是一个日本的Yukihiro Matsumoto(大家都叫他Matz.)在1995年首次发布的。Ruby从Perl语言那里借鉴了许多东西(有人形象地说Ruby是Perl的漂亮的妹妹:),和Perl相似,Ruby也擅长于文本处理、系统管理等任务。和Smalltalk一样,Ruby是一种纯粹的面向对象语言,任何东西都是对象。

SQL

——结构化查询语言,数据库,MySQL,Oracle,DB2,SQLServer、PostSQL等。

Scala

——Scala是一种基于JVM的编程语言,学习目的主要是为了Spark的学习与相关代码的编写。因为Scala是基于Java虚拟机,也就是JVM的一门编程语言。所有Scala的代码,都需要经过编译为字节码,然后交由Java虚拟机来运行。所以Scala和Java是可以无缝互操作的。Scala可以任意调用Java的代码。所以Scala与Java的关系是非常非常紧密的。

——Scala combines object-oriented and functional programming in one concise, high-level language. Scala's static types help avoid bugs in complex applications, and its JVM and JavaScript runtimes let you build high-performance systems with easy access to huge ecosystems of libraries.

Python图形处理、科学计算、未来大热方向机器学习和人工智能等。

——(热度大、发展快、应用范围广 ) / (开发者:Guido van Rossum)

C语言:底层开发。

——(执行效率高)  /   (创始者:贝尔实验室)

在底层编程,比如嵌入式、病毒开发等应用,可以替代汇编语言来开发系统程序。在高层应用,也可以开发从操作系统(Unix/Linux/Windows都基于C语言开发)到各种应用软件。

C++科学计算、操作系统开发、引擎开发等。

——(运行效率高) /  (创始者:贝尔实验室)C++语言在科学计算、操作系统、网络通讯、系统开发、引擎开发中仍然被大量使用。

C#:开发基于Windows的一些桌面软件。

——(与java的功能相似,但主要开发的软件类型不一样)  / (创始者:微软公司)

C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。C#在基于Windows操作系统的应用开发这一领域在取代C++,但C#的微软身份也成为了其发展的阻力,在其他IT领域应用较少。

Unity3D开发游戏时,使用C#和JavaScript。

Java企业级软件开发、安卓移动开发、大数据云计算等。

——(应用领域广,几乎涉及IT所有的领域)  / (创始者:Sun公司)

Java广泛应用于企业级软件开发、安卓移动开发、大数据云计算等领域,几乎涉及IT所有行业。

Object-C(OC)/Swift语言  : 苹果软件的开发。

——(iOS开发的核心语言)  /   (创始公司:Stepstone公司/苹果公司)

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(编译器)运作的系统上编译。

Swift

——Swift是苹果于2014年WWDC(苹果开发者大会)发布的新开发语言,可与Objective-C共同运行于Mac OS和iOS平台,用于编写 iOS 和 macOS 应用。

Fortran语言 : 复杂数学计算的科学和工程领域。

——(世界上第一种高级语言)  /   (创始公司:IBM公司)

PHP : 大量中小型网站以及某些大型网站的网页开发。

——(广泛用于WEB开发领域)   /  ( 开发者:Rasmus Lerdorf)

PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI(Common Gateway Interface)或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。

JavaScript : 浏览器端的一些动态效果开发,流行的H5开发。

——(广泛应用于WEB开发领域)   /   (创始者:Netscape公司)

JavaScript(Java脚本)是一种基于对象(Object)和事件驱动( Event Driven)并具有安全性能的脚本语言,使用JavaScript可以轻松的实现与HTML的互操作,并且完成丰富的页面交互效果,它是通过嵌入或调入在标准的HTML语言中实现的,它的出现弥补了HTML的缺陷,是java与HTML折衷的选择。

注:

    前端技术:JavaSscript,HTML5 ,  CSS3 与 PHP

    HTML:展示的内容(文字、图片等)

    PHP : 动态输出页面内容,并使输出不限于HTML,还能输出Flash电影等

    CSS :页面布局、美化页面(HTML元素的样式、颜色等)

    JavaScript:生成动态页面,提高浏览体验

COBOL语言:主要用于大量精确处理数据的商业领域如金融和银行,商业软件。

——(数据处理领域最广泛的程序设计语言,为解决经企管理问题而生) /  (开发者:RearAdmiralGraceHopper公司)

COBOL是Common Business Oriented Language的缩写,是面向商业通用编程语言。它是专门为商业数据处理而设计的计算机高级程序语言。广泛用于数据管理领域。应用于多个行业如:银行,证券,金融,制造,等等。

Basic语言:现在少用

——(一种直译式程序设计语言) /  (创始者:Dartmouth学院John G. Kemeny与Thomas E. Kurtz两位教授)

BASIC(来自英语:Beginner's All-purpose Symbolic Instruction Code的缩写),又译培基,一种直译式程序设计语言。名称字面为意思“初学者的全方位符式指令代码”,设计给初学者使用的编程语言,在完成编写后不须经由编译及链接等手续,经过解释器即可运行,但如果需要单独运行时仍然需要将其创建成可执行文件。 BASIC 语言是由Dartmouth学院John G. Kemeny与Thomas E. Kurtz两位教授于20世纪60年代中期所创。由于立意甚佳,BASIC语言简单、易学的基本特性,很快地就普遍流行起来,几乎所有小型、微型以家用电脑,甚至部分大型电脑,都有提供使用者以此种语言撰写程式。在微电脑方面,则因为BASIC语言可配合微电脑操作功能的充分发挥,使得BASIC早已成为微电脑的主要语言之一。

Pascal:现在少用

—— (最早的结构化编程语言) /  (创始者:瑞士Niklaus Wirth教授)

Pascal的名称是为了纪念十七世纪法国著名哲学家和数学家Blaise Pascal而来的,它由瑞士Niklaus Wirth教授于六十年代末设计并创立的。Pascal语言语法严谨,层次分明,程序易写,可读性强,是第一个结构化编程语言。

Pascal计算机程序教程如今已经有专业化课程,并且越来越完善和严格化。Pascal有6个主要的版本,分别是Action Pascal、Unextended Pascal、Extended Pascal、Object-Oriented Extensions to Pascal、Borland Pascal和Delphi Object Pascal。

GO

—— GO编程语言 - Go(又称Golang)是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。2007年,受够了C++煎熬的Google首席软件工程师Rob Pike纠集Robert Griesemer和Ken Thompson两位牛人,决定创造一种新语言来取代C++, 这就是Golang。出现在21世纪的GO语言,虽然不能如愿对C++取而代之,但是其近C的执行性能和近解析型语言的开发效率以及近乎于完美的编译速度,已经风靡全球。特别是在云项目中,大部分都使用了Golang来开发。

Go 文化的主要支柱是保持简单实用的代码,而不会产生多余的抽象,并且非常重视代码的可维护性。能够把大量时间用在实现业务代码上,而不是用来修改工具和配置环境,这也是文化的一部分。Go 也可以总结为“应该只有一个方法来完成一件事情”。

R

——R,当要进行数据分析和统计软件开发时,你可以选择R语言。随着大数据和机器学习的兴起,R得以不断发展并和Python和Matlab展开了激烈竞争。

Perl

—— Perl即“实用报表提取语言”(Practical Extraction and Report Language),是一种具有高级语言(如C)的强大能力和灵活性的解释型语言。

它借取了C、sed、awk、shell 脚本语言以及很多其他程序语言的特性,其中最重要的特性是它内部集成了正则表达式的功能,以及巨大的第三方代码库CPAN(CPAN, Comprehensive Perl Archive Network has over 25,000 open source modules available for download.)。被称之为“一种拥有各种语言功能的梦幻脚本语言”、“Unix 中的王牌工具”。

Perl是最古老的语言之一,但它正越来越受欢迎并显示出伟大复苏的迹象。DevOps是新生事物, Perl正发展成为用于DevOps的深受欢迎的语言, 请密切关注Perl, 它或许会成为像Python语言那样的下一个重要语言。

perl的前身是Unix系统管理的一个工具,被用在无数的小任务里。后逐渐发展成为一种功能强大的程序设计语言,用作Web编程、数据库处理、XML处理以及系统管理;在完成这些工作时,同时仍能处理日常细小工作,这是它的设计初衷。Perl特别适合系统管理和Web编程。

Perl运行在超过100种计算机平台上,适用广泛,从大型机到便携设备,从快速原型创建到大规模可扩展开发。实际上已经被用在所有Unix(包括Linux)捆绑在一起作为标准部件发布,同时也用于Microsoft Windows和几乎所有操作系统。

VisualBasic .Net  & VisualBasic & VS

—— VisualBasic .Net - 是微软公司推出的一种面向对象编程语言,对于开发.Net程序以及web程序和XML web服务这样的专业领域程序来说,这是一个很好的选择。

Microsoft Visual Studio是VS的全称。VS是美国微软公司的开发工具包系列产品。VS是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具、代码管控工具、集成开发环境(IDE)等等。所写的目标代码适用于微软支持的所有平台,包括Microsoft Windows、Windows Mobile、Windows CE、.NET Framework、.Net Core、.NET Compact Framework和Microsoft Silverlight 及Windows Phone。

Microsoft Visual C++简称Visual C++、MSVC、VC++或VC)是微软公司的C++开发工具,具有集成开发环境,可提供编辑C语言,C++以及C++/CLI等编程语言。VC++集成了便利的除错工具,特别是集成了微软Windows视窗操作系统应用程序接口(Windows API)、三维动画DirectX API,Microsoft .NET框架。目前最新的版本是Microsoft Visual C++ 2017。

Visual Basic(简称VB)是Microsoft公司开发的一种通用的基于对象的程序设计语言,为结构化的、模块化的、面向对象的、包含协助开发环境的事件驱动为机制的可视化程序设计语言。是一种可用于微软自家产品开发的语言。

Visual Basic.NET是基于微软.NET Framework之上的面向对象的编程语言。其在调试时是以解释型语言方式运作,而输出为EXE程序时是以编译型语言方式运作。可以看作是Visual Basic在.Net Framework平台上的升级版本,增强了对面向对象的支持。大多的VB.Net程序员使用Visual Studio .Net作为IDE(integrated development environment).SharpDevelop是另一种可用的开源的IDE。VB.Net需要在.Net Framework平台上才能执行。

VB.NET不是单单开发web应用程序那么简单,还可以开发windows应用程序,PDA程序,WEB服务等。VB.NET的功能很强大,FOXMAIL是用DELHPI写的,但是用VB.NET也能写。VB已经过时了,我们没有理由不从VB上过渡到VB.NET上。

.NET程序对运行环境是没有特别的要求的,只要安装了.net framework,它就能在上面运行(不管是windows系统,还是Liunx系统,甚至是PDA)。微软的.NET和Sun公司的JAVA基本上类似,都是需要平台的,Java需要虚拟机,.NET程序需要.net framework。支持拖拽布局。

Haskell

——  Haskell统治着函数式编程的世界。和面向对象编程相比,函数式编程具有完全不同的哲学理念。函数式编程在分布式系统开发中应用广泛,分布式系统开发的关键需求是并行执行和并发性。人工智能和数学计算是函数式编程的又一应用领域,Haskell的应用同样如此。

Haskell 是函数式(一切通过函数调用来完成)、静态、隐式类型(类型由编译器检测,类型声明不是必需的)、惰性(除非必要,否则什么也不做)的语言。其最大众化的近亲大概是 ML 族语言(不过不是惰性的)。

Delphi/Object Pascal

——Delphi是一个集成开发环境(IDE),使用的核心是由传统Pascal语言发展而来的Object Pascal,以图形用户界面为开发环境,透过IDE、VCL工具与编译器,配合连结数据库的功能,构成一个以面向对象程序设计为中心的应用程序开发工具。

Delphi是一个集成开发环境(IDE),使用的是由传统Pascal语言发展而来的Object Pascal语言。它在本质上是一个代码编辑器而不是一种语言,但是由于Delphi是几乎是市场上唯一一个使用Pascal语言的产品,因此有的时候Delphi也成为了人们称呼Object Pascal的代名词。Borland公司已经把Object Pascal语言改称为Delphi语言。

Groovy

——Groovy是一种基于JVM(Java虚拟机)的敏捷的动态语言,也是一种成熟的面向对象编程语言,既可以用于面向对象编程,又可以用作纯粹的脚本语言。(注:动态语言,是指程序在运行时可以改变其结构:新的函数可以被引进,已有的函数可以被删除等在结构上的变化,类型的检查是在运行时做的)

它构建在强大的Java语言之上并添加了从Python,Ruby和Smalltalk等语言中学到的诸多特征,例如动态类型转换、闭包和元编程(metaprogramming)支持。

它在设计时充分考虑了Java集成,这使 Groovy 与 Java 代码的互操作很容易。由于其运行在 JVM 上的特性,Groovy 可以使用其他 Java 语言编写的库。

 

参考:各种编程语言这间的关系图

参考:计算机编程语言分类与简介

参考:计算机编程语言分类与简介

参考:https://www.tiobe.com/tiobe-index/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Data+Science+Insight

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值