目录
20 关系: Apache Maven,原型程式設計,函數程式語言,越位规则,跨平台,脚本语言,Git,GitHub,Haskell,Java,JavaScript,JQuery,MIT許可證,Node.js,Perl,Python,Rhino (JavaScript引擎),Ruby,YAML,指令式編程。
- 2009年建立的程式語言
- 2009年软件
- 動態編程語言
- 基于原型的编程语言
- 自由軟體計劃
Apache Maven
Apache Maven,是一个软件(特别是Java软件)项目管理及自动构建工具,由Apache软件基金会所提供。基于项目对象模型(缩写:POM)概念,Maven利用一个中央信息片断能管理一个项目的构建、报告和文档等步骤。 Maven也可被用于构建和管理各种项目,例如C#,Ruby,Scala和其他语言编写的项目。Maven曾是Jakarta项目的子项目,现为由Apache软件基金会主持的独立Apache项目。.
原型程式設計
原型程式設計(prototype-based programming)或称为--、原型编程,是面向对象编程的子系统和一种方式。在原型编程中,类不是实时的,而且行为重用(通常认为继承自基于类的语言)是通过复制已经存在的原型对象的过程实现的。这个模型一般被认为是 classless、面向原型、或者是基于实例的编程。 原型编程最初的(也是最经典的)例子是编程语言 Self,它是由 David Ungar 和 Randall Smith 开发的。但是 classless 编程方式最近变得越来越受欢迎,并且被 JavaScript、Squeak (当使用观察者框架操作 Morphic 组件时)、Cecil、NewtonScript、Io、MOO、REBOL 还有一些其他的程序语言所采纳。.
函數程式語言
函數式編程(functional programming)或称函数程序设计,又稱泛函編程,是一種編程典範,它將電腦運算視為數學上的函數計算,並且避免使用程序状态以及易变物件。函數程式語言最重要的基礎是λ演算(lambda calculus)。而且λ演算的函數可以接受函數當作輸入(引數)和輸出(傳出值)。 比起指令式編程,函數式編程更加強調程序执行的结果而非执行的过程,倡导利用若干简单的执行单元让计算结果不断渐进,逐层推导复杂的运算,而不是设计一个复杂的执行过程。.
越位规则
越位規則(Off-side rule)是指程式語言中,用縮排來表示的範圍。這名詞是來自Peter J. Landin,是足球中越位(offside)的雙關語。.
跨平台
跨平台泛指编程语言、软件或硬件设备可以在多种作業系統或不同硬體架構的電腦上運作。.
脚本语言
脚本语言(Scripting language)是为了缩短传统的「编写、编译、链接、运行」(edit-compile-link-run)过程而创建的计算机编程语言。早期的脚本语言经常被称为批处理语言或工作控制语言。一个脚本通常是解释运行而非编译。脚本語言通常都有簡單、易學、易用的特性,目的就是希望能讓程式設計師快速完成程式的編寫工作。而巨集語言則可視為脚本語言的分支,兩者也有實質上的相同之處。 虽然许多脚本语言都超越了计算机简单任务自动化的领域,成熟到可以编写精巧的程序,但仍然还是被称为脚本。几乎所有计算机系统的各个层次都有一种脚本语言。包括操作系统层,如计算机游戏,网络应用程序,字处理文档,网络软件等。在许多方面,高级编程语言和脚本语言之间互相交叉,二者之间没有明确的界限。.
Git
git(,)是一个分散式版本控制软件,最初由林纳斯·托瓦兹(Linus Torvalds)創作,於2005年以GPL釋出。最初目的是为更好地管理Linux内核开发而设计。应注意的是,这与GNU Interactive Tools(一个类似Norton Commander界面的文件管理器)有所不同。 git最初的开发动力来自于BitKeeper和Monotone。git最初只是作为一个可以被其他前端(比如Cogito或Stgit)包装的后端而开发的,但后来git内核已经成熟到可以独立地用作版本控制。很多著名的软件都使用git进行版本控制,其中包括Linux内核、X.Org服务器和OLPC内核等项目的开发流程。.
GitHub
GitHub是通过Git进行版本控制的软件源代码托管服务,由GitHub公司(曾称Logical Awesome)的开发者Chris Wanstrath、PJ Hyett和Tom Preston-Werner使用Ruby on Rails编写而成。 GitHub同时提供付费账户和免费账户。这两种账户都可以建立公开的代码仓库,但是付费账户還可以建立私有的代码仓库。根据在2009年的Git用户调查,GitHub是最流行的Git存取站点。除了允许个人和组织建立和存取保管中的代码以外,它也提供了一些方便社会化共同软件开发的功能,即一般人口中的社群功能,包括允许用户追蹤其他用户、组织、软件库的动态,对软件代码的改动和bug提出评论等。GitHub也提供了图表功能,用于概觀显示开发者们怎样在代码库上工作以及软件的开发活跃程度。 截止到2015年,GitHub已经有超过两千八百万注册用户和7900万代码库。事实上已经成为了世界上最大的代码存放网站和开源社区。 2018年6月4日晚上,美国科技公司微软宣布以75亿美元的股票收购GitHub。.
Haskell
Haskell()是一种标准化的,通用的纯函數程式語言,有非限定性语义和强静态类型。它的命名源自美国逻辑学家哈斯凱爾·加里,他在数理逻辑方面上的工作使得函数式编程语言有了广泛的基础。在Haskell中,“函数是第一類物件”。作为一门函數程式語言,主要控制结构是函数。Haskell语言是1990年在编程语言Miranda的基础上标准化的,并且以λ演算为基础发展而来。这也是为什么Haskell语言以希腊字母「λ」(Lambda)作为自己的标志。Haskell具有“证明即程序、命题为类型”的特征, with 2 sections by William Craig, see paragraph 9E。.
Java
Java是一種廣泛使用的電腦程式設計語言,擁有跨平台、物件導向、泛型程式設計的特性,广泛应用于企业级Web应用开发和移动应用开发。 任職於昇陽電腦的詹姆斯·高斯林等人于1990年代初开发Java語言的雛形,最初被命名为Oak,目標設定在家用电器等小型系統的程式语言,應用在电视机、电话、闹钟、烤面包机等家用电器的控制和通訊。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代網際網路的发展,Sun公司看見Oak在網際網路上应用的前景,于是改造了Oak,於1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。 Java编程语言的风格十分接近C++语言。继承了C++语言面向对象技术的核心,Java舍弃了C++语言中容易引起错误的-zh-hans:指针; zh-hant:指標;-,改以-zh-hans:引用; zh-hant:參照;-取代,同時移除了C++中的--和多重继承特性,改用接口取代,增加垃圾回收器功能。在Java SE 1.5版本中引入了泛型编程、类型安全的枚举、不定长参数和自动装/拆箱特性。昇陽電腦对Java语言的解释是:「Java编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言」 Java不同於一般的编译語言或直譯語言。它首先将源代码编译成字节码,然后依赖各种不同平台上的虚拟机来解释执行字节码,从而实现了“一次编写,到处运行”的跨平台特性。在早期JVM中,这在一定程度上降低了Java程序的运行效率。但在J2SE1.4.2发布后,Java的執行速度有了大幅提升。 与传统型態不同,Sun公司在推出Java時就将其作为开放的技术。全球数以万计的Java开发公司被要求所设计的Java软件必须相互兼容。“Java语言靠群体的力量而非公司的力量”是 Sun公司的口号之一,并获得了广大软件开发商的认同。这与微软公司所倡导的注重精英和封闭式的模式完全不同,此外,微软公司後來推出了与之竞争的.NET平台以及模仿Java的C#语言。後來Sun公司被甲骨文公司併購,Java也隨之成為甲骨文公司的產品。 現時,行動作業系統Android大部分的代碼採用Java 程式設計語言編程。.
JavaScript
JavaScript,一种高级编程语言,通过解释执行,是一门动态类型,面向对象(基于原型)的直譯語言。它已经由ECMA(欧洲电脑制造商协会)通过ECMAScript实现语言的标准化。它被世界上的绝大多数网站所使用,也被世界主流浏览器(Chrome、IE、Firefox、Safari、Opera)支持。JavaScript是一门基于原型、函数先行的语言,是一门多范式的语言,它支持面向对象编程,命令式编程,以及函数式编程。它提供语法来操控文本、数组、日期以及正则表达式等,不支持I/O,比如网络、存储和图形等,但这些都可以由它的宿主环境提供支持。 虽然JavaScript与Java这门语言不管是在名字上,或是在语法上都有很多相似性,但这两门编程语言从设计之初就有很大的不同,JavaScript的语言设计主要受到了Self(一种基于原型的编程语言)和Scheme(一门函数式编程语言)的影响。在语法结构上它又与C语言有很多相似(例如if条件语句、while循环、switch语句、do-while循环等)。 在客户端,JavaScript在传统意义上被实现为一种解释语言,但在最近,它已经可以被即时编译(JIT)执行。随着最新的HTML5和CSS3语言标准的推行它还可用于游戏、桌面和移动应用程序的开发和在服务器端网络环境运行,如Node.js。.
JQuery
jQuery是一套跨瀏覽器的JavaScript函式庫,简化HTML與JavaScript之間的操作。由約翰·雷西格(John Resig)在2006年1月的BarCamp NYC上釋出第一個版本。目前是由Dave Methvin领导的开发团队进行开发。全球前10,000个访问最高的网站中,有65%使用了jQuery,是目前最受歡迎的JavaScript函式庫。.
MIT許可證
MIT授權條款(The MIT License)是許多軟體授權條款中,被廣泛使用的其中一種。與其他常見的軟體授權條款(如GPL、LGPL、BSD)相比,MIT是相對寬鬆的軟體授權條款。.
Node.js
Node.js 是一個能夠在伺服器端運行 JavaScript 的 開放原始碼、跨平台 JavaScript 執行環境。Node.js 由 Node.js 基金會持有和維護,並與 Linux基金會 有合作關係。Node.js 採用 Google 開發的 V8執行程式碼,使用 事件驅動、非阻塞 和 非同步輸入輸出 模型等技術來提高效能,可優化應用程式的傳輸量和規模。這些技術通常用於資料密集的實時應用程式。 Node.js 大部分基本模組都用 JavaScript 語言編寫。在 Node.js 出現之前,JavaScript 通常作為用戶端程式設計語言使用,以 JavaScript 寫出的程式常在用戶的瀏覽器上執行。Node.js 的出現使 JavaScript也能用於伺服器端編程。Node.js 含有一系列內置模組,使得程式可以脫離 Apache HTTP Server 或 IIS,作為獨立伺服器執行。 目前,Node.js 已被 IBM、Microsoft、Yahoo!、Walmart、Groupon、SAP、 LinkedIn、Rakuten、PayPal、Voxer和GoDaddy 等企業採用。.
Perl
Perl是高階、通用、直譯式、動態的程式语言家族。最初设计者拉里·沃尔為了讓在UNIX上進行報表處理的工作變得更方便,決定開發一個通用的腳本語言,而在1987年12月18日發表。目前,Perl语言家族包含两个分支Perl 5以及Perl 6(开发中)。 Perl借用了C、sed、awk、shell脚本以及很多其他程式語言的特性。其中最重要的特性是Perl内部集成了正则表达式的功能,以及巨大的第三方代码库CPAN。 2000年开始,目前拉里·沃尔开始開發Perl 6,來作為Perl的後繼;不過,Perl 6語言的語法有很多轉變,所以Perl 6被視為Perl家族中的另一個語言。 Perl语言的应用范围很广,除CGI以外,Perl被用于图形编程、系统管理、网络编程、金融、生物以及其他领域。由于其灵活性,Perl被称为脚本语言中的瑞士军刀。.
Python
Python( ),是一种广泛使用的高级编程语言,属于通用型编程语言,由吉多·范罗苏姆创造,第一版发布于1991年。可以視之為一種改良(加入一些其他程式語言的優點,如物件導向)的LISP。作为一种解释型语言,Python的设计哲学强调代码的可读性和简洁的语法(尤其是使用空格缩进划分代码块,而非使用大括号或者关键词)。相比於C++或Java,Python让开发者能够用更少的代码表达想法。不管是小型还是大型程序,该语言都试图让程序的结构清晰明了。 与Scheme、Ruby、Perl、Tcl等动态类型编程语言一样,Python拥有动态类型系统和垃圾回收功能,能够自动管理内存使用,并且支持多种编程范式,包括面向对象、命令式、函数式和过程式编程。其本身拥有一个巨大而广泛的标准库。 Python 解释器本身几乎可以在所有的操作系统中运行。Python的正式直譯器CPython是用C语言编写的、是一個由社群驱动的自由软件,目前由Python软件基金会管理。.
Rhino (JavaScript引擎)
Rhino是一個完全以Java編寫的JavaScript引擎,目前由Mozilla基金會所管理。Rhino計畫開始於1997年,當時,Netscape計劃開發Java版本的Netscape Navigator,雖然該計劃最終被放棄,但是Rhino引擎被遺留了下來。1998年4月,Mozilla基金會宣佈開放原始碼。引擎的命名源自於歐萊禮所出版的《JavaScript: The Definitive Guide》一書的封面動物。 Rhino作为JDK脚本引擎对JavaScript支持部分包含到甲骨文JDK 1.6中,但将被继承取代包含到OpenJDK 1.8中。.
查看 CoffeeScript和Rhino (JavaScript引擎)
Ruby
Ruby 是一种面向对象、命令式、函数式、动态的通用编程语言。在20世纪90年代中期由日本電腦科學家松本行弘(Matz)设计并开发。 遵守BSD许可证和Ruby License。它的灵感与特性来自于Perl、Smalltalk、Eiffel、Ada以及Lisp语言。由Ruby语言本身还发展出了JRuby(Java平台)、IronRuby(.NET平台)等其他平台的Ruby语言替代品。.
YAML
YAML(,尾音類似camel駱駝)是一個可讀性高,用來表達資料序列的格式。YAML參考了其他多種語言,包括:C語言、Python、Perl,並從XML、電子郵件的數據格式(RFC )中獲得靈感。Clark Evans在2001年首次發表了這種語言,另外Ingy döt Net與Oren Ben-Kiki也是這語言的共同設計者。目前已經有數種程式語言或腳本語言支援(或者說解析)這種語言。 YAML是"YAML Ain't a Markup Language"(YAML不是一種标记語言)的遞迴縮寫。在開發的這種語言時,YAML 的意思其實是:"Yet Another Markup Language"(仍是一種标记語言),但為了強調這種語言以數據做為中心,而不是以标记語言為重點,而用反向缩略语重新命名。.
指令式編程
指令式編程(Imperative programming),是一種描述電腦所需作出的行為的編程典範。幾乎所有電腦的硬體工作都是指令式的;幾乎所有電腦的硬體都是設計來執行機器碼,使用指令式的風格來寫的。較高階的指令式編程語言使用變數和更複雜的語句,但仍依從相同的典範。菜譜和行動清單,雖非電腦程式,但與指令式編程有相似的風格:每步都是指令,有形的世界控制情況。因為指令式編程的基礎觀念,不但概念上比較熟悉,而且較容易具體表現於硬體,所以大部分的編程語言都是指令式的。 大部分的高级语言都支援四種基本的語句:.
另见
2009年建立的程式語言
- CoffeeScript
- Go
2009年软件
- AdBlock
- Algodoo
- Apache Cordova
- Apache Wave
- Chromium OS
- CoffeeScript
- DeaDBeeF
- F.lux
- Google Voice
- Google定位
- Google日文输入法
- Homebrew
- I3 (窗口管理器)
- IPhone OS 3
- Internet Explorer 8
- Less (层叠样式表)
- Mac OS X Snow Leopard
- MariaDB
- Microsoft Security Essentials
- MongoDB
- Node.js
- Nova (作業系統)
- OpenCL
- OpenFeint
- Parabola GNU/Linux-libre
- Plex
- Prey
- Shotwell
- Tails (操作系统)
- Tango桌面计划
- WebOS
- Windows 7
- Windows Server 2008 R2
- Windows Virtual PC
- 比特币核心
- 苍月浏览器
- 重音Teto
動態編程語言
- APL語言
- AppleScript
- Clipper
- Clojure
- CoffeeScript
- Common Lisp
- Erlang
- E语言
- Groovy
- Io语言
- Lua
- PHP
- Perl
- REBOL
- Ruby
- Self
- Squeak
- 动态语言
基于原型的编程语言
- CoffeeScript
- Io语言
- JScript
- JavaScript
- Lua
- NewtonScript
- REBOL
- Self