很難給一個嚴格的定義; 腳本,是使用一種特定的描述性語言,依據必定的格式編寫的可執行文件,Script腳本語言是介於HTML(HyperText Markup Language,超文本標示語言)和Java、C++和Visual Basic之類的編程語言之間的語言,它的語法和規則沒有可編譯的編程語言那樣嚴格和複雜。 傳統的HTML是靜態的,爲加強網頁的動態功能,一些廠商前後推出了本身的Script腳本語言,其中Netscape推出了JavaScript(for客戶端和 for服務端兩種),微軟則推出了VBScript和ASP兩種,用於服務器端和客戶端程序的編寫。 用這些語言所寫的程序, 執行的方式都是以解譯 (interpreting) 爲主, 執行效率也許不如 C, C++, Java, Pascal, 等以編譯 (compiling) 爲主的程序, 可是在研發速度上每每比後者快上數倍。這些語言最初的用途, 多半在整合系統既有的組件。 若是拿公共交通作比喻, 傳統編譯語言像高鐵 -- 成本高, 客戶多, 利潤高; 腳本語言像出租車 -- 成本低, 客戶少, 利潤低。php
常見的腳本語言:Scala、JavaScript,VBScript,ActionScript,MAX Script,ASP,JSP,PHP,SQL,Perl,Shell,python,Ruby,JavaFX,Lua,AutoIt等。 另外, UNIX 上的各類 shells, MS Windows 上的 visual basic, OS/2 上的 rexx 也均可以算是 scripting languages。html
簡單介紹一下幾種經常使用的腳本語言 :java
一、PHP PHP是一個嵌套的縮寫名稱,是英文「超級文本預處理語言」(PHP:Hypertext Preprocessor)的縮寫。PHP是一種HTML內嵌式的語言,與微軟的ASP很有幾分類似,都是一種在服務器端執行的「嵌入HTML文檔的腳本語言」,語言的風格有相似於C語言,如今被不少的網站編程人員普遍的運用。 PHP獨特的語法混合了C、Java、Perl以及PHP自創新的語法。它能夠比CGI或者Perl更快速的執行動態網頁。用PHP作出的動態頁面與其餘的編程語言相比,PHP是將程序嵌入到HTML文檔中去執行,執行效率比徹底生成HTML標記的CGI要高許多;與一樣是嵌入HTML文檔的腳本語言JavaScript相比,PHP在服務器端執行,成分利用了服務器的性能;PHP執行引擎還會將用戶常常訪問的PHP程序駐留在內存中,其餘用戶在一次訪問這個程序時就不須要誠信編譯程序了,只要直接執行內存中的代碼就能夠了,這也是PHP高效率的體現之一。 PHP具備很是強大的功能,全部的CGI或者JavaScript的功能PHP都能實現,並且支持幾乎全部流行的數據庫以及操做系統。 php能夠嵌入html,更容易編寫服務器端程序。 php自然和web服務器以及mysql數據庫相結合。 php能夠動態生成圖像。python
二、JSP JSP(Java Server Pages,Java服務器頁面)是在Sun Microsystems公司的倡導下,由許多公司共同參與創建的一種新的動態網頁技術標準。它在動態網頁的建設方面具備強大而特殊的功能。Sun公司應用組建「Java社團」的思想開發JSP技術。 在開發JSP規範的過程當中,Sun公司與許多主要的Web服務器、Web應用服務器和開發工具供應商,以及各類各樣富有經驗的開發團體進行合做,找到了一種適合於應用和頁面開發人員的開發方法,它具備極佳的可移植性和易用性。針對JSP的產品,Sun公司受權予工具提供商(如Macromedia)、結盟公司(如Apache,Netscape)、最終用戶、協做商及其餘人。 Sun公司還將JSP和Java Servlet(JSP 1.1,Java Servlet 2.2)的源代碼發放給Apache,以求JSP和Apache緊密結合、共同發展。Apache,Sun公司和許多其餘的公司及我的公開成立的諮詢機構更能方便任何公司和我的免費取得信息。mysql
三、ASP與ASP.NET ASP是微軟公司推出的意圖取代CGI的新技術。經過它,用戶可使用幾乎全部的開發工具來建立和運行交互式的動態網頁,如返饋表單的信息收集處理、文件上傳與下載、聊天室、論壇等等,實現了CGI程序的功能又比CGI簡單,並且容易學習。 因爲ASP使用基於開放設計環境的Active X技術,用戶能夠本身定義和製做組件加入其中,使本身的動態網頁具備幾乎無限的擴充能力。它還可利用ADO(Active Data Object,微軟的一種新的數據訪問模型)方便地訪問數據庫,能很好地對數據進行處理。借WINDOWS 東風,ASP獲得了長足的發展。程序員
四、JavaScript JavaScript是一種基於對象(Object)和事件驅動(Event Driven)並具備安全性能的腳本語言。它與Java主要的不一樣點在於:JavaScript主要用於HTML的頁面,腳本嵌入在HTML的源碼中;而Java是一個獨立的、完整的編程語言,既能夠在Web中應用,也能夠用於與Web網無關的狀況。 另外,JavaS cript編寫的程序沒必要在運行前編譯,它們能夠直接寫入Web頁面中並由調用它們的瀏覽器來解釋執行。這樣,一些基本交互做用就不用在服務器端完成,提升了客戶端的響應時間。web
五、VBScript 爲了適應Internet上的應用,Microsoft公司把用於應用程序描述的Visual Basic語言壓縮成一個更合理的子集,稱爲Visual Basic Scripting Edition,簡稱VBScript。它也是一種HTML嵌入腳本語言,具備易學易用等特色。 若是你已瞭解Visual Basic或Visual Basic for Applications,就會很快熟悉VBScript。Microsoft公司將VBScript語言做爲實施其ActiveX腳本化的最佳選擇,用戶能夠採用小的相互操做的部件一塊兒來完成工做,使得應用程序的功能列增強大。sql
六、Perl Perl是Practical Extraction and Report Language(實用摘錄和報告語言)的縮寫,由Larry Wall於1986年開發成功。當初的目的主要是Unix環境下從多個文本文件中產生報表,後來成爲許多程序員工具箱中最受歡迎的工具,其發展速度和Unix內核的成長速度相仿。 perl的最大特色是有強大的字符串模式匹配,是最好的文本文件的讀取和生成語言。 perl具備很大的自由性,象英語同樣有很大的隨意性, perl有一個強大的數據庫接口和其餘各類接口。 perl有最大量的程序庫。 perl不適合編寫大程序。 perl有一個著名的缺點是難懂,也有一個著名的優勢是簡練。 如今Perl已經發展到Perl6 1.0 版本,並移植到了各類平臺。shell
七、Python 是一種跨平臺的開發語言,它能夠運行在已知的各類操做系統之上,包括windows、Mac OS、Unix、BSD、Palm等。python是一種支持擴展的開發語言,主要的擴展變種有CPython、JPython、PerlPython。它們分別使用C、Java、Perl作它的擴展接口基礎環境的。 首先,python是和basic同樣面向初學者的語言,和英語同樣容易懂。 python具備和java同樣的最豐富的語法。 python有和perl相似的簡單性,但沒有模式匹配。 python適合編寫大程序。 python有和lisp類似的地方,它有將字符串做爲程序執行的eval函數,能夠對一個對象的全部數據進行保存,能夠把函數做爲參數傳給另外一個函數。 python具備很是好的擴充性,python程序能夠和c程序,以及java程序很好地結合。數據庫
八、ColdFusion 美國的一對兄弟allire,在爲本身的客戶解決數據庫訪問的問題時,感受到了cgi程序在編寫和維護上的難度是不能容忍的困難。因而,具備計算機天賦的Jeremy Allire便在1995年編寫了一種快速響應且易於編寫的動態腳本語言,叫作coldfusion,一經推出,便震撼整個網絡行業。 以後,兄弟倆看到了coldfusion的發展前途,便成立了Allire公司(後來被macromedia收購)。以後的幾年,全球500強中的一半都採用了coldfusion來解決公司不一樣狀況的問題。經過不斷的版本修改和開發者的不斷壯大,Coldfusion後來發展成爲業界知名的企業級解決方案的開發首選。
九、XML xml便可擴展標記語言,可擴展標記語言,標準通用標記語言的子集,一種用於標記電子文件使其具備結構性的標記語言。 它能夠用來標記數據、定義數據類型,是一種容許用戶對本身的標記語言進行定義的源語言。 它很是適合萬維網傳輸,提供統一的方法來描述和交換獨立於應用程序或供應商的結構化數據。 XML開發者源於SGML的設計和應用者,他們已經在SGML上投入了大量精力,但他們卻發現SGML並無徹底發揮它的做用。 SGML(通用標記語言標準ISO 8879:1986)是HTML的前身技術,它是文件和文件中信息的構成主體;SGML與HTML不一樣,它容許用戶擴展tag集合,容許用戶創建必定的規則,SGML所產生的tag集合是用來描敘信息段特徵的,而HTML僅僅只是一個tag集合,因此咱們能夠說HTML是一個SGML的子集。 早在Seattle會議以前,Bosak和一些精心挑選的SGML結構信息專家就已向W3C提出了「網絡上的SGML」計劃,W3C支持並贊助了他們的努力,工做於1996年7月正式開始起動,工做的早期有較大的阻力,由於也存在反對SGML的人,一些制定XML標準的W3C表明甚至聲稱「網絡上的SGML」是不可能實現,工做組(原稱「SGML編輯審議委員會」)並未退縮,他們打算讓SGML以全新的面目出如今網上,給SGML以全新的面貌,故給它命名爲「可擴展標識語言」,即XML。
如今的 scripting languages 不僅能夠做高階的整合, 也能夠寫低階的程序, 甚且有它本身的編譯器。 再加上 swig 能夠替 c 語言寫的函數庫包上與各類 scripting 語言連結的外衣, 因此在許多場合 scripting 語言幾乎能夠徹底取代傳統的編譯語言。