编程语言历史
编程语言历史
1940
1948
Assembly (汇编语言)
一种低级编程语言,与特定的计算机体系结构紧密相关。它使用助记符(如MOV, ADD, JMP)来表示机器码指令,是机器码的人类可读表示形式。汇编语言程序需要通过汇编器转换成机器码才能执行。
1950
1952
Autocode
被认为是世界上最早的“自动编程系统”或“高级编程语言”之一,旨在简化机器语言编程。它允许程序员使用更接近数学符号的指令,显著提高了编程效率,是后来更复杂编译器和高级语言的先驱。
1954
Fortran (公式翻译语言)
由IBM的John Backus团队开发,是世界上第一个高级编程语言。1957年,首个Fortran编译器发布。Fortran 主要用于科学计算、数值分析和工程应用,以其高效的数值运算能力而闻名。其后续版本,如Fortran IV (1962年)、首个ANSI标准Fortran 77 (1978年)以及引入了现代编程特性的Fortran 90 (1991年),使其至今仍广泛应用于高性能计算领域。
1955
FLOW-MATIC
一种早期的高级商业数据处理语言。它的设计目标是使用接近英语的命令,使得业务用户更容易理解和编程。FLOW-MATIC对后来的COBOL语言产生了非常直接和深远的影响,许多COBOL的特性和理念都源自FLOW-MATIC。
1956
IPL (Information Processing Language)
一种早期的列表处理语言,主要用于人工智能研究。它引入了许多后来在Lisp中变得流行的概念,如列表结构和符号操作。虽然不像Lisp那样普及,但IPL是人工智能领域重要的里程碑,用于开发了早期的AI程序,如逻辑理论机 (Logic Theory Machine) 和通用问题求解器 (General Problem Solver)。
1958
ALGOL 算法语言
一种国际合作开发的算法语言,旨在成为一种通用、机器独立的语言。尽管在商业上未像Fortran或COBOL那样普及,但其重要的版本如ALGOL 60(1960年)和ALGOL 68(1968年)引入了许多现代编程语言的特性,如块结构、递归、词法作用域和显式类型声明,对后来的语言(如Pascal、C)产生了深远影响。
Lisp 列表处理
世界上第二古老的高级编程语言,以其独特的括号语法(S-表达式)和对列表处理的强大支持而闻名。1962年,Lisp 1.5版本发布,成为第一个广泛可用的Lisp实现。Lisp是函数式编程的先驱,广泛应用于人工智能、符号计算、宏系统和元编程等领域。
1959
COBOL 通用商业语言
一种面向商业数据处理的高级编程语言。1960年,首个COBOL标准(COBOL 60)发布。COBOL的设计理念是使其语法接近英语,易于阅读和理解。其后续的标准化版本,如COBOL 68 (1968年)、COBOL 74 (1974年)以及广泛应用的COBOL 85 (1985年),使其在金融、政府和大型企业等领域处理事务、报表生成和批处理任务方面占据主导地位,至今仍有大量遗留系统在使用。
FACT (Fully Automatic Compiling Technique)
Honeywell公司开发的一种高级商业数据处理语言,是与COBOL、FLOW-MATIC等同时代的竞争者。FACT旨在提供一种面向商业应用的编程解决方案,它具有自己独特的语法和功能,但最终未能获得与COBOL相当的市场份额。它也代表了当时业界对通用商业编程语言的探索和竞争。
RPG (Report Program Generator)
最初设计为一种生成商业报告的实用工具,后来发展成为一种功能齐全的商业编程语言。RPG以其独特的固定格式(卡片列)编程方式而闻名,特别擅长处理文件和记录。它在IBM的中型机(如System/36、AS/400和现在的IBM i)平台上长期且广泛地应用于业务应用开发。
1960
1960
COMTRAN (Commercial Translator)
IBM为商业数据处理开发的一种语言,旨在与COBOL竞争。它在某些方面与COBOL相似,但也包含了一些独特的语法结构。COMTRAN未能像COBOL那样获得广泛采用,最终被IBM转向支持COBOL。它体现了当时业界对通用商业语言的探索。
1962
APL (A Programming Language)
一种高度符号化、面向数组的编程语言。1966年,APL\360在IBM System/360上实现,极大地推动了APL的普及和应用。 APL以其独特的字符集、简洁的语法和强大的数组操作能力而闻名,特别适用于数值计算、统计分析和金融建模。
SNOBOL
一种主要用于字符串处理和模式匹配的语言。SNOBOL具有非常强大的字符串操作能力和独特的模式匹配语法,在文本处理、符号计算和语言学研究领域有所应用。
Simula
由Ole-Johan Dahl和Kristen Nygaard在挪威计算中心开发,主要用于模拟。Simula被认为是第一种引入了**面向对象编程(OOP)**核心概念的语言,包括类、对象、继承、虚方法和协程,对后来的C++、Java和Smalltalk等语言产生了深远影响。
1963
CPL (Combined Programming Language)
一种雄心勃勃的通用编程语言,旨在结合ALGOL的结构化和Fortran的实用性。CPL非常复杂,难以实现和掌握,但它的设计理念和特性(如递归、高阶函数)影响了其后继者BCPL,并最终间接影响了C语言。
JOSS (JOHNNIAC Open Shop System)
最早的交互式、分时系统之一,允许用户直接在终端上编写和执行程序。JOSS以其简单、易于使用的语法和即时反馈的特性,对后来的BASIC语言和其他交互式编程环境产生了重要影响。
1964
BASIC (Beginner's All-purpose Symbolic Instruction Code)
设计初衷是让计算机编程变得易于学习和使用,面向非专业人士。1978年,ANSI发布了Minimal BASIC标准,促进了语言的统一性。 BASIC语法简单,通常以解释器形式运行,在个人计算机革命中发挥了巨大作用,是许多人接触编程的第一门语言。
PL/I (Programming Language One)
一种庞大且功能丰富的通用编程语言,旨在融合Fortran(科学计算)、COBOL(商业数据处理)和ALGOL(结构化编程)的最佳特性。1966年,IBM发布了第一个广泛可用的PL/I编译器(PL/I F)。 PL/I支持多种数据类型、指针、并发和异常处理,被认为功能强大但复杂。
Speakeasy
一种交互式、数组导向的编程环境和语言,主要用于科学和工程计算。Speakeasy支持动态类型和用户自定义的模块,对后来的MATLAB等交互式数值计算环境产生了影响。
1966
MUMPS (Massachusetts General Hospital Utility Multi-Programming System)
一种专门为医疗信息系统设计的多用户、多任务、集成数据库的编程语言。MUMPS以其对字符串操作的强大支持、层次化数据模型和事务处理能力而著称,至今仍在全球众多医疗机构的核心系统中广泛使用。
ISWIM (If You See What I Mean)
一种理论性的函数式编程语言,从未被直接实现为一个可用的编程语言。ISWIM引入了许多重要的概念,如词法作用域、纯函数式表达式和"where"子句,对后来的函数式语言(如ML、Haskell)的设计产生了深远影响。
MacLisp
Lisp语言的一个重要方言,专为麻省理工学院的Macintosh计算机开发。MacLisp在内存管理、编译效率和调试工具方面进行了优化,是许多早期人工智能系统(如MACSYMA、SHRDLU)的基础,也是后来的Common Lisp标准的重要灵感来源。
1967
BCPL (Basic Combined Programming Language)
一种用于编写编译器和系统软件的语言,旨在简化其前身CPL的复杂性。BCPL是无类型的,其语法和一些概念直接影响了后来的B语言和C语言,在Unix操作系统的早期开发中扮演了重要角色。
Logo
一种教育编程语言,以其“海龟绘图”(Turtle Graphics)功能而闻名。Logo旨在通过互动和探索的方式帮助儿童学习编程和计算思维,它基于Lisp,支持列表处理和递归。
1968
Pascal
由Niklaus Wirth设计的一种结构化、强类型编程语言,旨在用于教学和培养良好的编程习惯。1983年,ISO发布了Standard Pascal (ISO 7185) 标准,进一步推广了语言。 Pascal因其清晰的语法和对结构化编程的支持而风靡一时,并被广泛用于大学教学。
1969
B
基于BCPL并简化而来的一种无类型系统编程语言。B语言在早期Unix系统的开发中发挥了关键作用,它是C语言的直接前身。
SETL (SET Language)
一种基于数学集合理论的超高级编程语言。SETL允许直接操作集合、映射和序列等抽象数据结构,并支持非确定性构造,旨在简化算法的表达,对声明式编程和数据库查询语言的设计有所启发。
Planner
一种早期的人工智能语言,旨在结合逻辑编程和过程式编程的特点。Planner引入了模式匹配、回溯、目标导向编程和“过程依附”(procedural attachment)等概念,对Prolog等逻辑编程语言以及AI规划和专家系统的发展产生了重要影响。
1970
1970
Smalltalk
一种纯粹的面向对象编程(OOP)语言,以及一个完整的图形化编程环境。Smalltalk-76(1976年)和Smalltalk-80(1980年)是其发展中的重要里程碑,奠定了现代GUI和面向对象范式的许多基础,如所有事物都是对象、消息传递,对Objective-C、Ruby和Java等语言产生了巨大影响。
Forth
一种独特的堆栈(Stack-based)、连接式(Concatenative)的编程语言和环境。Forth以其高度可扩展性、交互性和紧凑性而闻名,常用于嵌入式系统、固件和实时控制应用。
1972
NPL (New Programming Language)
是一种早期用于逻辑和定理证明的函数式编程语言,是ML(Meta Language)的理论前身之一。它探索了类型理论和函数式编程的结合,对后来的函数式语言设计产生了影响。
Prolog (PROgramming in LOGic)
第一批逻辑编程语言之一,基于一阶谓词逻辑。1981年,Clocksin-Mellish Prolog的出版使其成为事实上的标准,极大地促进了Prolog的普及。 Prolog通过模式匹配、回溯和统一机制来解决问题,主要应用于人工智能、专家系统、自然语言处理和数据库查询。
C
一种通用的、过程式的计算机编程语言,旨在用于系统编程(如操作系统和编译器)。C语言结合了高级语言的结构化特性与低级语言的效率和对硬件的直接访问能力。自1989年(C89/C90标准)以来,通过一系列国际标准(如C99、C11、C17等)不断完善和演进,是Unix操作系统和许多现代语言(如C++, Java, C#)的基石。
1973
ML (Meta Language)
一种通用型函数式编程语言,以其静态类型系统、类型推断、模式匹配和模块系统而闻名。ML及其方言(如Standard ML、OCaml)在编程语言研究、编译器开发和函数式编程教学中非常流行。
1974
CLU
一种开创性的通用编程语言,引入了抽象数据类型(Abstract Data Types,ADTs)的概念,以及迭代器、参数化类型(泛型)和异常处理机制。CLU的设计理念对Ada、C++和Java等后来的语言产生了深远影响。
1975
Scheme
Lisp语言的一个现代方言,以其简洁的语法、词法作用域、完全的尾递归优化和对续体(continuations)的支持而闻名。Scheme是编程语言理论研究和教育中的重要工具。
Modula
作为Pascal的继任者,Modula语言的主要创新在于模块化(Modularity)和对并发编程的支持。它旨在改进Pascal的不足,并为系统编程提供更好的支持,是Modula-2和Oberon的先驱。
1976
SASL (Syntactic Abstraction of S-expressions Language)
一种纯函数式编程语言,是早期支持惰性求值(Lazy Evaluation)的语言之一。SASL是Miranda和Haskell等更现代函数式语言的直接先驱。
S
一种用于统计计算、数据分析和图形化的编程语言和环境。S语言极大地促进了统计软件的发展,是广受欢迎的R语言的直接祖先。
1977
AWK
一种用于文本处理和数据提取的脚本语言,以其强大的模式匹配和字段处理能力而闻名。AWK是Unix/Linux环境中处理文本文件、生成报告和数据转换的强大工具。
FP (Functional Programming)
FP不是一种广泛实现的语言,而是一种理论上的函数式编程范式,强调无变量、值级编程和函数组合。它旨在通过“程序的代数”来提高编程的数学严谨性,对函数式编程理论产生了影响。
1978
Hope
一种早期的纯函数式编程语言,引入了代数数据类型和模式匹配等特性。Hope对后来的函数式语言(特别是ML家族)产生了显著影响。
Modula-2
Modula的改进版本,旨在继承Pascal的清晰性,并提供Modula的模块化和并发特性。Modula-2是面向系统编程和嵌入式应用的有力工具,并在教育领域得到广泛使用。
1979
C++
C语言的扩展,支持多范式编程(过程式、面向对象和泛型编程)。该语言在1983年被正式命名为C++。C++在1998年(C++98标准)被标准化,此后通过一系列ISO标准(如C++11、C++14、C++17、C++20等)持续演进,引入了Lambda表达式、智能指针、协程等大量现代编程特性,使其成为支持多范式编程的强大语言,广泛应用于游戏开发、高性能计算和操作系统等领域。
REXX (Restructured Extended Executor)
一种过程式的解释型脚本语言,主要用于编写宏、批处理脚本和系统命令解释器。REXX以其简单、易读的语法和强大的字符串处理能力在IBM大型机和OS/2环境中广泛应用。
1980
1981
KRC (Kent Recursive Calculator)
一种纯函数式编程语言,是SASL的继任者,也是Miranda和Haskell的先驱。KRC引入了列表推导式(list comprehensions)等特性,对函数式编程语言设计产生了影响。
1982
PostScript
一种图灵完备的页面描述语言,用于描述文本和图形在打印机和显示器上的外观。它采用堆栈式(stack-based)和逆波兰表示法,是桌面出版革命的关键技术之一。
1983
Ada
一种结构化、静态类型、面向对象(后来的版本)的编程语言,专为可靠性、安全性和可维护性要求高的领域(如航空航天、军事、实时系统)设计。1983年,首个ANSI标准(Ada 83)发布。 后续的重大版本如Ada 95 (1995年)引入了面向对象特性,Ada 2005 (2005年)和Ada 2012 (2012年)继续引入现代特性,使其语言特性不断完善。
Object Pascal
Pascal语言的面向对象扩展。它在传统的Pascal语言基础上加入了类(classes)、对象(objects)、继承(inheritance)和多态(polymorphism)等面向对象特性,在苹果Macintosh和后来的Borland Delphi开发环境中非常流行。
SISAL (Streams and Iteration in a Single Assignment Language)
一种函数式、单赋值语言,旨在利用并行计算机体系结构。SISAL的设计强调无副作用(side-effect free)的并行计算,用于科学和工程应用。
1984
Common Lisp
Lisp语言的通用标准化方言,旨在统一Lisp生态系统。它是一种多范式(函数式、过程式、面向对象)的强大语言,以其强大的宏系统、动态特性和Common Lisp Object System (CLOS) 而闻名,广泛应用于AI、研究和复杂系统开发。
MATLAB
一种用于数值计算、矩阵操作、数据分析和可视化的高级编程语言和交互式环境。MATLAB广泛应用于工程、科学、金融和研究领域。
Objective-C
C语言的面向对象扩展,主要通过消息传递(message passing)机制实现Smalltalk风格的面向对象。1988年,NeXTSTEP操作系统采纳Objective-C作为主要开发语言,为其后续在Apple平台上的广泛应用奠定了基础。 2007年,Objective-C 2.0发布,引入了属性、快速枚举等现代语法特性。
1985
Emacs Lisp (Elisp)
GNU Emacs文本编辑器内置的Lisp方言,用于扩展和定制Emacs。Elisp具有强大的文本处理能力和高度的自省性,是Emacs成为可编程编辑器中“操作系统”的关键。
Miranda
一种纯函数式编程语言,是早期引入了惰性求值(lazy evaluation)、多态类型(polymorphic types)和模式匹配(pattern matching)的语言之一。Miranda是Haskell语言的直接前身。
Eiffel
一种面向对象编程语言,旨在通过“设计契约”(Design by Contract,DbC)来提高软件的可靠性。Eiffel强调严格的类型检查、断言、前置条件和后置条件,以确保代码的正确性。
Caml (Categorical Abstract Machine Language)
ML语言的一个方言,专注于效率和实用的系统编程。Caml引入了抽象机器(Categorical Abstract Machine)来执行代码,是OCaml的直接前身,对函数式编程在工业界的应用做出了贡献。
1986
Erlang
一种并发、分布式、容错的函数式编程语言,特别适合构建大规模、高可用性的实时系统。1996年,Erlang/OTP(开放电信平台)被Ericsson开源,并成为Erlang的标准发行版。 Erlang采用Actor模型进行并发,并支持热代码升级。
LabVIEW (Laboratory Virtual Instrument Engineering Workbench)
一种图形化编程语言和开发环境,用于数据采集、仪器控制、自动化和测试。LabVIEW的程序以数据流图(Dataflow Diagram,即“G语言”)的形式表示,而非传统的文本代码。
1987
Oberon
Modula-2的继任者,旨在简化语言和操作系统设计,以实现更小、更快的系统。Oberon具有模块化、类型安全和面向对象特性,并用于构建完整的操作系统和开发环境。
Perl
一种通用的、解释型的动态编程语言,最初设计用于文本处理和系统管理。1994年发布了影响深远的Perl 5版本,引入了模块系统、面向对象特性,并极大地增强了其能力。 Perl以其强大的正则表达式、灵活性和“TMTOWTDI”(There's More Than One Way To Do It)哲学而闻名,在早期Web开发和系统管理中扮演了重要角色。
ABC
一种旨在取代BASIC的通用、易学、交互式编程语言,强调代码的可读性。ABC拥有固定缩进语法和高层级数据类型,对Python语言的设计产生了深远影响(Python的创造者Guido van Rossum曾参与ABC的开发)。
Self
一种纯粹的面向对象编程语言,以其原型式编程(prototype-based programming)而非类(class)为基础的特性而闻名。Self探索了动态优化、继承和消息传递的新机制,对JavaScript、Ruby以及Java虚拟机(JVM)的HotSpot优化器产生了重要影响。
HyperTalk
一种为HyperCard(一种早期的个人信息管理和多媒体创建工具)设计的脚本语言。HyperTalk以其接近英语的语法和事件驱动的编程模型而闻名,使得非程序员也能轻松创建交互式应用程序。
1988
Tcl (Tool Command Language)
一种通用的脚本语言,旨在易于嵌入到应用程序中作为命令语言。1991年,其配套的图形工具包Tk发布,极大地增强了Tcl在快速构建GUI应用方面的能力。 Tcl以其简单的语法、强大的字符串处理和Tk图形工具包而闻名。
Wolfram Language
一种多范式编程语言,专注于符号计算、数值计算、数据可视化和知识管理。Wolfram Language内置了庞大的算法库和数据知识库,是计算科学和工程领域的重要工具。
1989
Bash (Bourne-Again Shell)
Unix shell的一种,是Bourne shell (sh) 的增强版本,并兼容其语法。Bash是Linux系统中最常用的命令行解释器和脚本语言,广泛用于系统管理、自动化任务和日常操作。
Coq
一种交互式定理证明器和逻辑框架,基于构造演算(Calculus of Constructions)。Coq允许用户以形式化的方式定义数学定理和计算机程序,并证明其正确性,在形式化验证领域有重要应用。
FL (Functional Language)
作为FP(Functional Programming)的后续研究项目,FL旨在探索更实用、更强大的函数式编程语言。它结合了FP的无变量编程理念和对数组操作的支持,但主要作为研究语言,并未广泛普及。
1990
1990
Haskell
一种标准化的纯函数式编程语言,以其强静态类型、类型推断、惰性求值(lazy evaluation)和单子(monads)概念而闻名。1998年,Haskell 98发布,成为该语言的第一个稳定标准。 随后,Haskell 2010 (2010年)发布,进一步完善了语言。Haskell在编程语言研究、函数式软件开发和理论计算机科学中占有重要地位。
J
APL语言的后继者,也是一种高度简洁、面向数组的函数式编程语言。J语言使用ASCII字符集而非APL的特殊符号,继承了其强大的数学和统计计算能力,常用于数值分析和金融建模。
Standard ML (SML)
ML语言的标准化版本,是一种通用的函数式编程语言,具有强静态类型、类型推断、模式匹配和模块系统。SML在编程语言研究、编译器开发和教学中广泛应用。
1991
Python
一种高级的、解释型的、通用的编程语言,以其简洁明了的语法、强大的标准库和对多种编程范式(面向对象、命令式、函数式)的支持而闻名。2008年,发布了不兼容的Python 3版本,旨在解决Python 2的一些设计缺陷并成为未来发展的方向。 Python在Web开发、数据科学、人工智能、机器学习和自动化领域极其流行。
Visual Basic
一种基于BASIC语言的事件驱动编程语言和集成开发环境(IDE),旨在简化Windows GUI应用程序的开发。Visual Basic以其快速应用程序开发(RAD)能力而广受欢迎,是许多人接触编程的入门语言。
1993
K
一种高性能的、面向数组的编程语言,是APL和J语言的派生。K语言以其极度简洁的语法和在处理海量数据方面的超高效率而闻名,主要用于金融领域的高频交易和大数据分析。
Lua
一种轻量级的、可嵌入的、多范式(过程式、函数式、面向对象)脚本语言。Lua以其简洁的语法、高效的性能和易于与其他语言(特别是C/C++)集成的特性,广泛应用于游戏开发(如Roblox)、嵌入式系统和Web服务。
R
一种用于统计计算和图形的编程语言和环境,是S语言的开源实现。R拥有强大的数据处理、统计建模和可视化能力,在数据科学、统计学和学术研究领域广泛使用。
1995
Delphi
基于Object Pascal语言的集成开发环境和快速应用程序开发(RAD)工具。Delphi以其可视化的窗体设计器和强大的组件库(VCL)而闻名,用于快速构建高性能的Windows桌面应用程序,并扩展支持macOS、iOS和Android。
Java
一种面向对象的、并发的、基于类的编程语言,旨在实现“一次编写,随处运行”(Write Once, Run Anywhere)。该语言最初于1991年命名为Oak,后于1995年正式更名为Java。自发布以来,通过一系列重要版本(如2004年的Java 5引入泛型、2014年的Java 8引入Lambda表达式和Stream API)不断增强,成为企业级应用、Android移动开发和大数据处理领域的主流语言。
JavaScript
一种高级的、解释型的、动态的脚本语言。该语言最初于1995年命名为LiveScript,后于同年更名为JavaScript。最初作为客户端脚本语言用于Web浏览器,实现网页的交互性。随着2009年Node.js的出现,JavaScript也广泛用于服务器端开发,并且2015年ECMAScript 2015 (ES6) 及其后续每年发布的新特性,极大地增强了语言能力,成为全栈Web开发的核心语言。
PHP (Personal Home Page/Hypertext Preprocessor)
一种主要用于Web开发的服务器端脚本语言。该语言最初名为“Personal Home Page Tools”,1998年PHP 3.0发布时,正式采用了递归缩写“PHP: Hypertext Preprocessor”作为其名称。 PHP易于学习和使用,擅长生成动态网页内容,与HTML、数据库(如MySQL)紧密集成。2015年发布的PHP 7.0版本,在性能和新特性方面取得了巨大飞跃,巩固了其作为世界上许多网站(如WordPress、Facebook)后端语言的地位。
Racket
一种Scheme语言的现代方言,以其语言导向编程(Language-Oriented Programming)的能力而闻名,允许用户轻松创建自己的特定领域语言(DSLs)。Racket在编程语言研究、教育和宏元编程中非常活跃。
Ruby
一种动态的、面向对象的通用编程语言,强调代码的优雅、可读性和程序员的生产力。2004年,Ruby on Rails框架的发布极大地推广了Ruby在Web开发领域的应用。 Ruby以其简洁的语法和强大的元编程能力而闻名。
1996
OCaml (Objective Caml)
ML语言的一个主要方言,同时支持函数式、命令式和面向对象编程。OCaml以其强静态类型、类型推断、高效的编译器和强大的模块系统而闻名,在系统编程、编译器开发和形式化验证领域有应用。
VBScript (Visual Basic Script Edition)
一种解释型的脚本语言,语法基于Visual Basic。VBScript主要用于Windows环境下的Web客户端脚本(Internet Explorer)、ASP(Active Server Pages)的服务器端脚本和Windows脚本宿主(WSH)中的系统自动化任务。
1997
Rebol (Relative Expression Based Object Language)
一种多范式、解释型的动态编程语言,专为网络通信、数据交换、领域特定语言(DSLs)创建和数据处理而设计。Rebol以其独特的消息传递和高度自洽的语法结构而闻名。
1998
Curl
一种面向对象的编程语言,旨在将文本标记、脚本和高性能应用程序开发集成到一个统一的Web内容创建平台中。它试图构建丰富的互联网应用程序(RIA),但未获得广泛的市场份额。
Joule
一种用于构建分布式、并发系统的编程语言,它借鉴了Go语言和Limbo语言的设计理念。Joule旨在提供一种安全、高效的方式来开发网络服务和分布式应用程序,但其普及度不高。
E
一种面向对象的编程语言,专注于分布式计算和基于能力(capability-based)的安全模型。E语言旨在提供一种安全可靠的方式来编写分布式应用程序,尤其是在点对点网络环境中。
ActionScript
一种基于ECMAScript(与JavaScript类似)的面向对象编程语言,主要用于Adobe Flash平台开发富互联网应用程序(RIA)、动画和游戏。随着Flash的衰落,ActionScript的使用也大幅减少。
2000
2000
C# (C Sharp)
由微软公司开发的一种多范式(面向对象、函数式、命令式、泛型)编程语言,是.NET平台的核心语言。C#吸取了C++和Java的优点,自发布以来与.NET平台同步发展,通过不断引入新特性(如2007年的LINQ、2012年的async/await)持续演进,旨在提供高效的企业级应用、桌面应用、Web应用、游戏(Unity)和移动应用开发能力。
易语言 (Yi language)
一种面向中国用户的可视化编程语言,旨在降低编程门槛。它使用中文作为关键字和语法,支持拖放式编程,主要用于Windows桌面应用开发和游戏开发。
2001
D
一种通用的系统编程语言,旨在结合C++的性能和控制力,以及现代语言(如Python、Ruby)的生产力和安全性。2007年,D 2.0版本发布,进行了显著的改进和扩展,包括更完善的库和更稳定的特性集。 D支持多种范式,包括命令式、面向对象和函数式编程,并提供了垃圾回收和手动内存管理等特性。
2002
HLSL (High-Level Shading Language)
微软为DirectX平台设计的着色器编程语言。HLSL用于在图形处理单元(GPU)上编写程序(着色器),以控制3D图形的渲染过程,如光照、纹理映射和特效,是游戏开发和计算机图形学中的关键工具。
2003
F
是Fortran 95语言的一个严格的、最小化的子集,旨在移除Fortran中一些过时和不安全的特性,从而提供一个更现代、更易于教学和编写高质量代码的Fortran版本。
Groovy
一种动态的、可选类型(dynamic and optionally typed)的编程语言,运行在Java虚拟机(JVM)上。2012年,Groovy 2.0发布,引入了静态编译能力,显著提升了性能。 Groovy旨在增强Java,提供更简洁的语法、脚本能力、元编程和领域特定语言(DSL)的创建,常用于自动化、Web开发(Grails框架)和测试。
Scala
一种运行在Java虚拟机(JVM)上的多范式编程语言,它将面向对象和函数式编程的最佳特性结合在一起。Scala以其简洁性、类型推断、模式匹配和强大的并发模型(Actor模型)而闻名,在大数据处理领域(尤其是在2014年发布的Apache Spark框架中得到广泛应用)和Web服务中广泛应用。
2004
DTrace (Dynamic Tracing)
Sun Microsystems开发的一种全面的动态跟踪框架,用于实时诊断和故障排除操作系统及应用程序的性能问题。DTrace本身包含一种C风格的编程语言,允许用户编写自定义的探针和数据收集脚本。
GLSL (OpenGL Shading Language)
OpenGL平台下的着色器编程语言,与HLSL类似,用于在GPU上编写程序以控制图形渲染管线。GLSL是跨平台的,广泛用于游戏、科学可视化和各种3D图形应用程序。
2005
F#
一种运行在.NET平台上的函数式优先编程语言,同时支持命令式和面向对象编程。2010年,F# 2.0发布并首次作为Visual Studio的组成部分。 2012年,F# 3.0引入了Type Providers,极大地简化了数据访问。 F#结合了函数式语言的简洁性和安全性,以及.NET生态系统的强大功能,适用于数据分析、Web开发、并行编程和金融建模。
2006
PowerShell
微软为Windows和跨平台管理设计的命令行shell和脚本语言。PowerShell基于.NET框架,支持管道对象而非文本,提供了强大的系统管理、自动化和配置能力,适用于IT专业人员和开发者。
Rust
一种注重安全(特别是内存安全,无需垃圾回收器)、并发和性能的系统编程语言。2015年,Rust 1.0正式发布,标志着语言的稳定和生产可用性。 Rust以其“所有权”系统和借用检查器而闻名,旨在提供C/C++的性能同时避免常见的内存错误,适用于系统编程、WebAssembly、嵌入式和命令行工具。
2007
Clojure
Lisp语言的一个现代方言,运行在Java虚拟机(JVM)上。Clojure强调函数式编程、不可变数据结构、以及通过软件事务内存(STM)实现的强大并发模型。它在Web开发、数据处理和分布式系统中有应用。
CUDA (Compute Unified Device Architecture)
NVIDIA开发的并行计算平台和编程模型,允许开发者使用C、C++或Fortran等语言的扩展来在NVIDIA GPU上进行通用目的的并行计算。CUDA在科学计算、机器学习和高性能计算领域广泛应用。
Scratch
一种基于图形化积木的编程语言和在线社区,专为儿童设计,旨在通过拖放代码块的方式帮助他们学习编程概念和计算思维。Scratch广泛用于K-12教育。
Idris
一种通用型、纯函数式编程语言,以其依赖类型(Dependent Types)系统而闻名。Idris允许在类型系统中表达复杂属性,从而在编译时验证程序的正确性,适用于形式化验证、定理证明和安全关键系统。
2008
OpenCL (Open Computing Language)
一个用于编写跨异构平台(CPU、GPU、FPGA等)程序的并行计算框架。OpenCL包含一个基于C99的语言用于编写计算核(kernels),与CUDA类似,但更强调开放标准和跨硬件厂商的兼容性。
Nim
一种静态类型、编译型编程语言,旨在提供Python般的语法和C语言般的性能。Nim支持多范式编程,可以编译成C、C++、Objective-C或JavaScript代码,适用于系统编程、Web开发和游戏开发。
2009
CoffeeScript
一种“小语言”,可以编译成JavaScript。CoffeeScript旨在通过提供更简洁、更具可读性的语法来改善JavaScript的编写体验,并引入了类、列表推导式等特性。在ES6/ES2015普及后,其重要性逐渐降低。
Go (Golang)
一种静态类型、编译型、并发支持的编程语言。2012年,Go 1.0正式发布,承诺API稳定性,使其可以用于生产环境。 Go旨在提供简洁的语法、高效的编译速度、强大的并发原语(goroutines和channels)和垃圾回收。它在云计算、微服务、网络编程和命令行工具领域非常流行。
2010
2011
ClojureScript
Clojure语言到JavaScript的编译器。它允许开发者使用Clojure的Lisp方言和其固有的函数式、不可变数据结构特性来编写Web前端应用程序,并与JavaScript生态系统无缝集成。
Dart
一种面向客户端开发的编程语言,最初旨在成为Web语言的替代品。Dart支持JIT和AOT编译,语法接近C++和Java,但更简洁。2017年,随着Flutter框架的发布,Dart在高性能跨平台移动、桌面和Web应用程序开发领域的应用得到了爆发式增长。
Kotlin
一种在Java虚拟机(JVM)上运行的静态类型编程语言,旨在与Java完全互操作。Kotlin提供了更简洁的语法、更强大的类型推断和空安全等现代特性。2017年,Google宣布Kotlin成为Android官方推荐开发语言,极大促进了其普及。
2012
Elixir
一种运行在Erlang虚拟机(BEAM)上的动态函数式编程语言。Elixir结合了Ruby的语法优雅和Erlang在构建高度并发、容错和分布式系统方面的能力,广泛应用于Web开发(Phoenix框架)和消息队列。
Elm
一种纯函数式编程语言,编译为JavaScript,主要用于构建可靠的Web前端应用程序。Elm以其强大的类型系统、无运行时异常保证和名为“Elm Architecture”的简洁状态管理模式而闻名。
Julia
一种高性能动态编程语言,专门设计用于数值计算、科学计算、数据科学和机器学习。2018年,Julia 1.0正式发布,标志着语言API的稳定和成熟。 Julia旨在提供接近C语言的性能,同时具有Python的易用性,并支持多重派发(multiple dispatch)。
TypeScript
JavaScript的一个超集,它添加了静态类型定义。2014年,TypeScript 1.0发布,标志着其作为生产可用语言的里程碑。 TypeScript代码可以编译为纯JavaScript,旨在提高大型JavaScript项目的可维护性、可伸 Gh展性和开发效率,在Web前端和后端开发中广泛使用。
2014
Crystal
一种静态类型、编译型编程语言,其语法灵感来源于Ruby,旨在兼顾Ruby的开发效率和C/C++的执行性能。Crystal支持并发(使用协程)和强大的宏系统,适用于Web开发和命令行工具。
Swift
Apple为iOS、macOS、watchOS和tvOS开发应用程序而创建的一种现代、安全、快速的通用编程语言,旨在取代Objective-C。2015年,Swift 2.0引入了错误处理。2016年,Swift 3.0进行了重大语言重构以匹配API设计指南。2019年,Swift 5.0实现了ABI稳定性,极大地提升了其生态系统。 Swift强调类型安全和性能,并支持多种编程范式。
2015
Pony
一种面向对象的、基于Actor模型的并发编程语言。Pony以其独特的类型系统和引用能力(reference capabilities)保证内存安全和并发安全(无死锁、无数据竞争),适用于构建高性能的并发和分布式系统。
2016
ReasonML
OCaml语言的一个语法扩展,旨在让JavaScript开发者更容易地使用OCaml的强大类型系统和函数式编程能力。ReasonML通常与React等前端框架结合,编译为JavaScript以构建Web应用程序。
Zig
一种专注于简单性、性能和细粒度控制的系统编程语言。Zig被设计为C/C++的现代化替代品,具有无运行时、手动内存管理、强大的编译时元编程能力和友好的错误处理。
2017
Ballerina
一种云原生编程语言,旨在简化分布式服务的构建、集成和部署。Ballerina将网络通信概念(如服务、端点、流)直接集成到语言中,并提供“代码即图表”(diagram-as-code)的独特可视化功能。
2019
Raku
Perl语言家族的最新成员,是一种多范式编程语言,设计目标是高度可进化和强大。该语言最初被称为Perl 6,在2015年发布第一个稳定版本。为明确其与Perl 5的独立性,2019年正式更名为Raku。 Raku拥有强大的并发支持、对象模型、统一的语法和内置的语法分析器(grammar engine)。
2020
2022
Carbon
一种实验性的、开源的通用编程语言,被设计为C++的继任者。Carbon旨在解决C++的一些长期存在的问题,同时提供与现有C++代码的双向互操作性,并引入现代语言特性。
2023
Mojo
Python语言的一个超集,旨在实现与C/C++相似的性能,特别是在AI和机器学习工作负载中。Mojo能够直接访问底层硬件,并提供Python的语法便利性,使其成为AI加速器编程的强大工具。