2020年您應該注意的13種腳本語言

腳本語言是一種特定的計算機語言,可用於向其他軟體(例如Web瀏覽器,伺服器或獨立應用程序)提供指令。當今許多最流行的編碼語言是腳本語言,例如JavaScript,PHP,Ruby,Python等。

由於腳本語言使編碼更簡單,更快捷,因此在Web開發中被廣泛使用也就不足為奇了。

但是,這並不是他們唯一的應用領域。還有用於操作系統,統計分析軟體,辦公應用程序,遊戲引擎和許多其他平台的腳本語言。

什麼是腳本語言?

腳本語言可以在特定的運行時環境中執行不同的動作,例如自動化任務執行,增強父軟體的功能,執行配置,從數據集中提取數據等。

腳本語言可以通過兩種方式實現:

  1. 運行時環境可以引入自己的腳本語言,例如用於GNU操作系統的Bash或用於Microsoft Office應用程序的VBA。
  2. 運行時環境可以採用現有的腳本語言,例如,MongoDB的mongo shell是圍繞JavaScript構建的。

另一方面,有時最先出現的是腳本語言,它孕育了自己的父平台-聽起來可能很奇怪。

這就是Node.js的情況,Node.js是一種後端運行時環境,其創建目的是使Web開發人員不僅可以在前端使用JavaScript,還可以在後端使用JavaScript(遵循「 JavaScript無處不在」的範例)。

腳本在編程中意味著什麼?

腳本的作用實質上是編寫一系列由應用程序或腳本引擎逐個解釋的命令。即使腳本會指導平台執行操作(為腳本提供讀取和解釋的許可權),執行還是由運行時環境執行,而不是由腳本語言本身執行。

這就是腳本語言與Java等編程語言的不同之處,您可以「編寫一次,隨處運行」(Java官方口號,表示Java程序可以在任何環境中作為獨立的應用程序運行;自從被創造以來,它就成為WORA的原則,是指跨平台功能)。

腳本語言與編程語言

儘管術語「腳本語言」和「編程語言」經常互換使用,但它們不是同一件事。

平台特定與平台無關

腳本語言是特定於平台的,而編程語言具有平台無關性(跨平台),因為它們具有執行自身的能力。例如,您可以在任何操作系統上運行Java程序。

(大多數)解釋與編譯

編譯編程語言時,腳本語言主要是解釋性的-即使有些腳本語言既可以編譯也可以解釋,例如Python和Groovy。

「已編譯」是指一種編程語言具有其自己的編譯器,該編譯器會在運行時將語法轉換為機器代碼。相反,腳本語言在運行時由運行它們的平台的解釋器逐行解釋。

運行時更快vs更慢

由於實現上的這種差異,編程語言的運行速度比腳本語言快,因為它們不必實時編譯。編譯器還在執行之前執行集體錯誤處理,而解釋器則逐行評估代碼,因此每次遇到錯誤時它們都會暫停(或完全停止)。

這也增加了腳本語言的總執行時間,即使在現代且速度更快的硬體上,這也比以前更少了。

更多與更少的代碼密集型

編程語言的代碼強度更高,因為在腳本語言的情況下,您必須手動執行平台處理的許多事情。如果使用腳本語言,則必須編寫更少的代碼。

獨立應用程序與作為堆棧一部分的應用程序

使用腳本語言根本無法完成某些事情。最重要的是,您無法使用腳本語言創建獨立的桌面和移動應用程序,因為沒有運行時環境可以解釋它們。

例如,您只能將WordPress和Laravel之類的PHP框架用於網站和Web應用程序,因為它們使用Web瀏覽器作為其運行時環境。同樣,WordPress移動應用程序在包含Web視圖的移動運行時環境(例如Capacitor)中運行。

腳本語言與編程語言—差異概述

因此,腳本語言和編程語言之間的主要區別如下:

腳本語言 編程語言
特定於平台 平台無關(跨平台)
(大部分)解釋 已編譯
運行時更快 運行時變慢
更加代碼密集 減少代碼密集度
創建獨立的應用程序 將應用程序創建為堆棧的一部分

關於腳本語言的困惑

關於腳本語言,您經常會遇到一些困惑,因此讓我們先了解一下它們,然後再使用最好的腳本語言。

最重要的是,儘管您會在網路上找到許多文章都使用這種分組方式,但是談論前端腳本語言和後端腳本語言並沒有多大意義。

實際上,目前只有一種前端腳本語言正在使用,那就是JavaScript(以前存在其他語言,例如ActionScript和JScript,但現在已棄用)。

在腳本語言的上下文中,重要的不是前端還是後端,而是可以運行腳本語言的運行時環境。

請注意,「前端」僅表示Web瀏覽器可以解釋的內容(圖像,字體,標記,樣式表,腳本,另一種類型的靜態文件)。例如,嘗試直接從Web瀏覽器打開PHP文件:您不能這樣做,因為PHP應用程序伺服器必須對其進行解釋-因此,PHP是Web開發上下文中的後端腳本語言,而應用程序層則是腳本語言環境中的伺服器堆棧(例如LAMP)。

除了Web開發(前端腳本和後端腳本)之外,腳本語言還可以用於多種用途,例如編程和配置操作系統以及特定的應用程序/環境,操縱數據集,自動化任務等。

腳本語言也可以在多種環境中運行。

什麼不是腳本語言

在學習最好的腳本語言之前,讓我們看一下有時被錯誤地稱為腳本語言的編碼語言,但是您不能使用它們編寫腳本:

  • 標記語言,例如HTML和XML。在HTML中,有用於事件處理的屬性,例如onclick和onmouseover,但是它們仍然是JavaScript回調。
  • 樣式表語言,例如CSS,Sass和LESS。
  • 建立在任何腳本語言之上的任何類型的庫或框架,例如jQuery,PostCSS,React,Vue,Angular,Rails,Grails,Laravel,WordPress,Django等。
  • 編譯成腳本語言的語言,例如TypeScript和CoffeeScript。
  • SQL是用於在關係資料庫管理系統(RDBMS)(例如MySQL和MariaDB)中管理數據的SQL。它們不允許您編寫動態功能。但是,許多RDBMS都具有可讓您使用腳本語言(例如,MySQL Shell中的JavaScript或Python)的shell。
  • 一種或多種腳本語言(例如NodeJS)的運行時環境。

13種最佳腳本語言

本指南中有許多很棒的腳本語言值得一提,但是它們不再處於活躍的開發中。但是,以下13種腳本語言會定期更新,並在生產中使用。

因此,如果您正在考慮學習一種新的腳本語言作為一條新的專業道路,那麼它們都是值得一試的。

1. JavaScript / ECMAScript

的JavaScript

的JavaScript

JavaScript是ECMA-262標準的實現,該標準定義了ECMAScript(ES)通用腳本語言。換句話說,JavaScript是ECMAScript語言的方言,因此它沒有獨立的規範,但使用與ECMAScript相同的語法。

JavaScript具有一流的功能(將功能視為變數),並支持基於原型的面向對象的編程(現有對象可重用為原型)。

代碼示例

ECMAScript使用大括弧語法。以下JavaScript代碼示例將1到10的數字相加,並將結果輸出到控制台(您可以通過按F12在Web瀏覽器的JavaScript控制台中對其進行測試):

設total = 0,count = 1;

而(count <= 10){
total + = count;
計數+ = 1;
}

console.log(total);
// 55

資料來源:Marijn Haverbeke的Eloquent JavaScript:簡介

用例和環境

JavaScript是現代Web瀏覽器使用的腳本語言,例如Chrome的V8引擎和Mozilla的SpiderMonkey引擎。此外,前端Web開發也可以在非瀏覽器環境中使用。已經創建了NodeJS運行時環境,以使Web開發人員可以在後端使用它。

某些NoSQL資料庫管理系統(例如MongoDB和Apache CouchDB)的外殼以及一些關係資料庫管理系統(例如上述的MySQL Shell)也將其用作腳本語言。

2. PHP

的PHP

的PHP

PHP是後端Web開發中使用的通用開放源代碼腳本語言。首字母縮寫詞最初代表「個人主頁」,因為最初創建PHP是為了向靜態HTML頁面添加動態功能。

從那時起,PHP已經發展成為一種獨立的語言,因此現在使用的首字母縮寫為「超文本預處理器」。PHP是鬆散類型的(不必聲明變數的數據類型),可以嵌入HTML文檔中,並且還具有面向對象的功能。

代碼示例

PHP具有類似C的語法。以下PHP代碼示例創建一個具有四個元素的數字數組,循環遍歷它們,將每個項目乘以2,並在循環結束時取消設置$ value變數。

<?php
$ arr = array(1、2、3、4);

foreach($ arr as&$ value){
$ value = $ value * 2;
}
// $ arr現在是array(2,4,6,8)

unset($ value);
?>

來源:PHP文檔:控制結構

用例和環境

PHP可以在不同的HTTP伺服器上執行,其中Apache和Nginx是最受歡迎的伺服器。

最常見的PHP伺服器堆棧是LAMP(Linux,Apache,MySQL,PHP),LEMP(Linux,Nginx,MySQL,Kinsta使用的PHP)和WAMP(Windows,Apache,MySQL,PHP)和MAMP(macOS, Apache,MySQL,PHP)。

許多流行的內容管理系統(CMS)(例如WordPress,Drupal和Joomla)以及Web應用程序框架(例如Laravel,Symfony和CodeIgniter)也都使用它,它們都基於PHP語言構建,並通過附加功能進行了增強。

您也可以將PHP用於本地WordPress開發。

3. Python

蟒蛇

蟒蛇

Python目前是GitHub上第二受歡迎的編碼語言(僅次於JavaScript)。它以其簡潔明了的語法而廣受喜愛-使用Python進行編碼時,您所鍵入的內容比大多數語言都少得多。

使用WordPress,我們的流量增長了1,187%。
我們將向您展示如何。

加入20,000多個其他人,他們每周都會收到有關WordPress內部技巧的新聞!

現在訂閱

成功!感謝您的訂閱

您將在一周內收到下一期的Kinsta新聞通訊。

訂閱Kinsta新聞通訊

訂閱

我同意條款和條件以及隱私政策

Python是一個免費的開源項目,由Python Software Foundation管理。它支持結構化,面向對象和功能性編程範例,並具有廣泛的標準庫,該庫是常用Python模塊的集合。

代碼示例

Python不使用大括弧,而分號是可選的,因此代碼易於讀取和編寫。以下Python代碼示例循環遍歷0到4之間的整數,並列印出來:

計數= 0
而計數<5:
列印(計數)
計數+ = 1

來源:學習Python:循環

用例和環境

最受歡迎的Python實現是用C語言編寫的CPython。它也是您與Python語言一起下載的參考實現。即使Python是一種解釋型語言,CPython也會同時使用編譯和解釋步驟。首先,它將源代碼編譯為在運行時解釋的位元組碼(與機器代碼不同)。

除了CPython之外,Python還具有其他運行時環境,最重要的是PyPy省略了編譯步驟,僅執行JIT(即時)解釋。Python實現是跨平台的,這意味著它們可以在多種操作系統(包括Linux,Windows和macOS)上運行。

Python語言經常用於機器學習,後端Web開發(Django是最受歡迎的Web框架),數據分析,自動化,科學計算和Web抓取。

4.紅寶石

紅寶石

紅寶石

Ruby是一種開放源代碼的通用腳本語言,具有緊湊且易於閱讀的語法。它遵循面向對象編程的原理,並允許您編寫乾淨而邏輯的代碼。在Ruby中,所有內容都是一個對象-甚至是大多數語言中都是原始類型的類型,例如布爾值和整數。

諸如繼承,混合和元類之類的面向對象的概念也被大量使用。

儘管Ruby具有純面向對象的設計,但它還支持過程編程(在類外部定義的函數和變數屬於Self對象)和函數編程(通過匿名函數,閉包和延續)。

代碼示例

Ruby具有類似於Python的簡潔語法。以下Ruby代碼示例將KaraokeSong類定義為Song類的子類:

class KaraokeSong <歌曲
def初始化(名稱,藝術家,時長,歌詞)
super(名稱,藝術家,時長)
@lyrics =歌詞
結尾
end

來源:Ruby編程參考指南:類,對象和變數

用例和環境

Ruby主要用於後端Web開發中,為諸如Ruby on Rails之類的一些強大的Web應用程序框架提供支持。許多流行的網站和應用程序都在Ruby on Rails上運行,例如Airbnb,Shopify,GitHub和Hulu。

Ruby也是許多流行的Web開發工具所使用的語言,其中最著名的是Sass CSS預處理器,Jekyll靜態網站生成器和Vagrant虛擬機環境。

Ruby的默認實現是YARV(又一個Ruby虛擬機)。它改變了Ruby的原始解釋器Matz的Ruby Interpreter(也包括Ruby MRI或CRuby),該解釋器因速度和可伸縮性問題而受到批評。

Ruby也有幾種競爭的運行時環境,例如JRuby(讓您在Java虛擬機上運行Ruby),mruby(可以嵌入到應用程序中的輕量級實現),TruffleRuby(基於GraalVM構建的Oracle Ruby解釋器),Rubinius (適用於Ruby的雲原生虛擬機)等。

5. Groovy

Groovy

Groovy

Groovy是為Java虛擬機(JVM)編寫的一種令人難以置信的靈活語言,既可以用作腳本語言也可以用作編程語言。這是一個由Apache Software Foundation維護的開源項目。Groovy是一種擴展java.lang.Object超類的面向對象語言。

它支持靜態和動態類型化(可以在編譯時和運行時都執行類型檢查),並且對列表,關聯數組,正則表達式以及諸如HTML和XML這樣的標記語言具有本地支持。

您可以將Groovy與現有的Java庫一起使用。

代碼示例

Groovy具有Java兼容的語法,使用大括弧。下面的Groovy代碼示例使用緯度和經度屬性以及getAt()方法定義Coordinates類:

@不可變的
類坐標{
雙緯
雙經

double getAt(int idx){
如果(idx == 0)緯度
,如果(idx == 1)經度,
否則拋出new Exception(「錯誤的坐標索引,使用0或1」)
}
}

來源:Groovy文檔:語義學

用例和環境

Groovy編譯為Java位元組碼時,您可以將其用作類似於Java的通用編程語言。在這種情況下,您可以在運行時使用groovyc編譯器(相當於javac)將源代碼編譯為位元組碼。

但是,也有許多Groovy實現使您可以將其用作腳本語言。最受歡迎的是Grails Web應用程序框架(以前稱為Grails上的Groovy)和Gradle構建自動化工具,但是還有其他幾個。

6. Perl

佩爾

佩爾

Perl是一種通用腳本語言,自1987年以來已有30多年的歷史了。最初,它是作為用於報告處理的UNIX腳本語言創建的。這也是其名稱的來歷,因為Perl的縮寫代表「實用提取和報告語言」。

Perl語言在1990年代開始流行,當時程序員開始將其廣泛用於CGI(通用網關介面)腳本,CGI是Web伺服器的一種較舊的介面規範(當前,它主要由遺留站點使用)。

儘管是相對較早的參與者,但Perl在TIOBE索引中仍然排名第11位,在GitHub上是第21種最受歡迎​​的語言(截至2020年10月)。

代碼示例

Perl的語法類似於C語言。下面的Perl代碼示例首先定義了square()子常式,該子常式計算並返回數字的平方,然後將值8作為參數傳遞,運行該子常式,然後將結果保存到$ sq變數中:

子平方{
my $ num = shift;
我的$ result = $ num * $ num;
返回$ result;
}

$ sq =平方(8);

來源:Perl文檔:Perl簡介

用例和環境

儘管這些天並不是Web開發人員最經常選擇的選擇,但Perl可以成功地用於後端開發中。除了CGI運行時環境外,它還可以在Apache和Nginx Web伺服器上執行-LAMP堆棧實際上是LAMPP,代表Linux,Apache,MySQL,PHP和Perl。

還存在一些Perl Web開發框架,其中最受歡迎的是Catalyst,Mojolicious和Dancer。

幾個著名的網站和應用程序都使用Perl,例如Amazon,IMDB,Booking.com和BBC iPlayer。它也用於其他領域,例如網路編程和系統管理。您還可以查看綜合Perl存檔網路(CPAN),其中有25,000多個開源Perl項目可供下載。

7.盧阿

採取

採取

Lua是一種快速,輕量級的腳本語言。「 lua」一詞在葡萄牙語中的意思是「月亮」,因為該語言是由巴西里約熱內盧天主教天主教大學開發和維護的。Lua支持過程式,面向對象和功能性編程範例。

由於Lua的解釋器是用C編寫的,因此可以使用其C API輕鬆將其嵌入到應用程序中。話雖這麼說,您可以使用Lua擴展以C語言編寫的現有應用程序,例如C,C ++,C#,Java,Perl,Ruby等。

代碼示例

Lua具有簡潔易讀的語法,類似於Python和Ruby。以下Lua代碼示例顯示了如何使用if-then-else語句。首先,它計算op變數,然後根據其值執行基本的算術運算:

如果op ==「 +」,則
r = a + b
elseif op ==「-」,則
r = a-b
elseif op ==「 *」,則
r = a * b
elseif op ==「 /」,則
r = a / b
else
錯誤(「無效操作」)
結束

來源:Lua中的編程參考指南:語句

用例和環境

默認的Lua實現不會直接解釋源代碼,而是先將其編譯為位元組代碼,然後在Lua虛擬機上執行。由於所有這些都是在運行時發生的,因此無需執行手動編譯步驟(即使您可以選擇在運行時之前編譯Lua以提高性能)。

還有其他Lua實現,例如LuaJIT,LuaVela和許多其他實現。

Lua通常用於開發視頻遊戲,例如《憤怒的小鳥》,《魔獸世界》和《格里姆·范丹戈》。由於易於嵌入,因此它也是嵌入式設備(如機頂盒,汽車儀錶板(例如Volvo),IP攝像機(例如Cisco)等)的常見選擇。

它也可以用於Web開發,因為Apache和Nginx伺服器都具有Lua模塊(這裡是Apache的mod_lua,這裡是Nginx的ngx_http_lua_module)。Wikipedia選擇使用Lua作為其模板腳本語言,並且Adobe Photoshop Lightroom的UI也使用Lua編寫。

8.重擊

重擊

Bash是GNU操作系統的命令行解釋器(shell)以及所屬腳本語言的名稱。實際上,「 Linux」是使用Linux內核的GNU操作系統(內核是OS的核心部分,它是操作系統載入的第一個程序)。

Bash是原始UNIX Bourne shell(sh)的替代品-Bash的縮寫代表「 Bourne Again SHell」(「 Born Again Shell」的雙關語)。

除了是Bourne Shell語法的超集之外,Bash還包括其他Shell腳本語言的功能,例如KornShell(ksh)和C Shell(csh),例如,命令行編輯和命令歷史記錄。您可以在交互模式(一次執行一個命令並等待機器的回復)和腳本模式(一次運行一組命令-Bash腳本)中使用Bash。

代碼示例

與大多數CLI腳本語言一樣,Bash具有簡單的描述性語法。下面的Bash代碼示例從當前文件夾中選擇一個文件,並輸出一條包含文件名和索引的消息:

在*中選擇fname;

回聲你選$ FNAME($ REPLY)
休息;
完成

來源:Bash參考手冊:條件構造

用例和環境

您可以使用Bash進行更改並執行與您的操作系統有關的不同操作,例如執行命令,使用圖形用戶界面執行大多數人會執行的任務(例如創建,移動或刪除文件夾和文件),自定義和自動化管理任務,連接到遠程伺服器等。

是否需要為您的客戶站點提供快速,安全且對開發人員友好的託管?Kinsta在構建時就考慮了WordPress開發人員,並提供了許多工具和功能強大的儀錶板。查看我們的計劃

Bash是許多基於Unix操作系統的默認外殼程序,包括大多數Linux發行版以及所有macOS發行版,直到macOS Catalina都已在2019年用Z Shell(Zsh)替換了Bash。您也可以使用Windows在Windows 10上運行Bash腳本由Microsoft開發的Linux子系統(WSL)兼容性層。

9. PowerShell

電源外殼

最初,PowerShell是僅用於Windows操作系統的命令行外殼程序和腳本語言。從那時起,Microsoft開源並將其從只能創建Windows應用程序的.NET Framework遷移到.NET Core,後者可以為Windows,Linux和macOS創建應用程序。這意味著PowerShell現在是跨平台的。

它也已從Windows PowerShell重命名為PowerShell Core,與基礎框架相對應。與大多數命令行外殼不同,PowerShell接受並返回.NET對象而不是純文本,這為任務自動化中的新機遇提供了空間。

代碼示例

PowerShell具有緊湊的語法,可以更快地在命令行中工作。下面的PowerShell代碼示例創建boot.ini文件的備份並將其保存到boot.bak文件中:

複製項-Path C:boot.ini-目標C:boot.bak

來源:PowerShell文檔:處理文件和文件夾

用例和環境

您可以在Windows,Linux,macOS操作系統和某些ARM設備(例如可穿戴設備,多媒體播放器,平板電腦和其他消費電子設備)上使用PowerShell。

您可以使用PowerShell進行系統管理,任務自動化和配置管理。要查找PowerShell模塊和腳本,您也可以查看PowerShell庫和Microsoft的官方示例腳本集合。

10. R

[R

R是一種軟體環境和腳本語言,可用於統計計算,數據分析和圖形顯示。這是一個免費和開放源代碼的GNU項目,是S統計計算語言的一種實現(不再處於主動開發中)。

R使您可以使用許多不同的統計技術,例如經典統計測試,聚類,時間序列分析,線性和非線性建模等。

代碼示例

R的語法與大多數腳本語言不同,並且也具有一些不同尋常的元素-例如,主賦值運算符是<-而不是=等號,並且具有無循環循環-有關此R語法的怪癖的更多信息,請參見此初學者。 Sharon Machlis撰寫的R指南。

以下R代碼示例為水果向量(R中包含相同類型元素的基本數據結構)定義一個名稱屬性,該屬性使用字母數字名稱(橙色,香蕉,蘋果,桃子)來幫助識別其成分。稍後,Lunch(或另一個)子向量可以使用其別名來訪問每個組件:

>水果<-c(5,10,1,20)
>名稱(水果)<-c(「橙色」,「香蕉」,「蘋果」,「桃子))
>午餐<-水果[c(」蘋果「 ,「橙子」)]

資料來源:R簡介:索引向量;選擇和修改數據集的子集

用例和環境

R軟體環境是跨平台的;您可以在Windows,Linux和macOS操作系統上運行它。還可以從其他一些腳本語言(例如Python和Perl)獲得默認的R實現。這意味著您可以使用這些腳本語言訪問R的所有統計功能。

除了默認的R環境之外,您還可以在其他環境中使用R腳本語言,例如pqR(代表「 R的非常快速的版本」)和Renjin(位於Java虛擬機之上的R實現)。

11. VBA

VBA

VBA代表Visual Basic for Applications,它是Visual Basic 6編程語言的一種實現(自2008年以來未在積極開發中)。它是為Microsoft Office應用程序創建的,以使開發人員能夠自動執行重複任務,添加新功能以及與文檔的最終用戶進行交互。

與Visual Basic相似,VBA遵循事件驅動的編程範例,該範例將諸如用戶操作之類的事件置於驅動程序流程的中心。

由於Microsoft Office應用程序具有圖形用戶界面,因此您可以將VBA腳本附加到菜單按鈕,鍵盤快捷鍵,宏(可編程模式)和OLE事件(對象鏈接和嵌入,使您可以從另一個應用程序控制一個應用程序;這是一項專有的Microsoft技術) )。

代碼示例

由於VBA基於Visual Basic(是BASIC的增強),因此它使用的語法類似於BASIC(初學者的通用符號指令代碼)家族的語言-這意味著它非常適合初學者。

下面的VBA代碼示例使用SignatureInfo對象的GetCertificateDetail()方法獲取數字證書的到期日期:

Sub GetCertDetails()
昏暗objSignatureInfo為SignatureInfo
昏暗varDetail為變體

strDetail = objSignatureInfo.GetCertificateDetail(certdetExpirationDate)

結束子

來源:Office VBA參考:SignatureInfo對象

用例和環境

VBA腳本語言已嵌入到大多數Microsoft Office應用程序中,分別是Access,Excel,Mac版Office,Outlook,PowerPoint,Project,Publisher,Visio和Word-每個文檔在Microsoft文檔站點上都有單獨的參考指南,同時詳細介紹了常規VBA概念在庫參考中。

除了Microsoft Office應用程序外,還有其他一些也支持VBA的應用程序,例如AutoCAD和CorelDRAW。

12. Emacs Lisp

埃馬克斯·利斯普

Emacs Lisp是為GNU Emacs文本編輯器設計的特定於域的腳本語言。它是Lisp編程語言家族的一種方言(名稱來自LISt Processor)。

由於Emacs Lisp被設計為可在代碼編輯器中使用,因此它具有特定於該環境的功能集,例如文本掃描和解析,緩衝區(具有可編輯文本的對象)和顯示管理等。

Emacs Lisp腳本語言與編輯器界面本身緊密集成在一起,因此每個命令也是一個Lisp函數,您可以從腳本中調用它,定製參數也是Lisp變數。

代碼示例

Emacs Lisp的語法基於完整的帶括弧的前綴表示法,如果您以前沒有使用過任何Lisp語言,那麼一開始可能會有點難以理解。

以下Emacs Lisp代碼示例定義了兩個變數(符號),並為每個變數分配了一個值列表-符號樹的樹木列表(松樹,冷杉,橡樹,楓樹)和草食動物列表(瞪羚,羚羊,斑馬)對草食動物的象徵:

(setq樹’(松杉橡木楓樹)
草食動物’(瞪羚羚羊斑馬))

資料來源:Emacs Lisp編程簡介:設置變數的值

用例和環境

Emacs文本編輯器是一個跨平台應用程序,可以將其安裝在Windows,Linux和macOS計算機上。

使用Emacs Lisp腳本語言,您可以擴展和自定義代碼編輯器,重複和自動化過程,創建圖,將焦點限制在特定區域(出於安全性),搜索正則表達式,存儲文本,定義模式和鍵映射,向用戶提問,並執行許多其他操作。

Emacs Lisp也有一些配置框架-Doom Emacs和Spacemacs是最著名的框架。

13. GML

GML

首字母縮寫詞GML代表GameMaker Language。這是遊戲開發中使用的特定領域腳本語言的一個很好的例子。GML是屬於GameMaker Studio 2的專有腳本語言,GameMaker Studio 2是YoYo Games擁有和維護的跨平台遊戲引擎和開發平台。

儘管GML主要用於控制遊戲對象,但它不是面向對象的語言,而是一種程序性語言。它允許您從任何遊戲對象調用自定義腳本。

除了GML腳本語言外,GameMaker Studio 2還具有一個稱為「拖放」(DnD)的可視腳本工具。由於GameMaker Studio 2的靈活性,您也可以將DnD與GML腳本混合使用。

代碼示例

GML的語法類似於JavaScript和其他類似C的語言。

以下GML代碼示例使遊戲對象以5像素/步的速度向屏幕上的滑鼠指針水平移動。一旦到達指針的當前位置,該腳本將創建一個爆炸效果層,運行它(屏幕上有一個爆炸效果),然後銷毀實例(將爆炸效果移除):

如果mp_linear_step(mouse_x,mouse_y,5,0){
instance_create_layer(x,y,「效果」,obj_Explosion);
instance_destroy();
}

來源:GameMaker Studio 2文檔–腳本– GML參考–運動和碰撞–運動計劃

用例和環境

如果要使用此腳本語言開發遊戲,則需要購買GameMaker Studio 2來解釋GML。

定價取決於您要為其創建遊戲的平台-Mac和Windows遊戲是最便宜的遊戲;跨平台(Windows,macOS,Ubuntu)桌面遊戲,HTML5網路遊戲,UWP(通用Windows平台)遊戲和跨平台(Android,Fire,iOS)手機遊戲處於中等水平;PS4,Xbox One和Nintendo Switch是最昂貴的。

使用GML創建的視頻遊戲的一些示例包括Blackhole,10 Second Ninja X,Death’s Gambit,Deltarune等。

概要

毫無疑問,腳本語言令人著迷。它們具有許多不同的變體,語法和實現,並且可以用於很多事情。

從構建動態網站到自動化系統管理,再到創建視頻遊戲,等等。

關於腳本語言,要記住的三個最重要的事情是:

它們不能自己運行,但始終需要一個具有該腳本語言解釋器的環境(實現,運行時)。

有時,您可以使用通用腳本語言來訪問主要為其他編程或腳本語言創建的環境和平台。可以舉出JRuby(讓您在Java虛擬機上運行Ruby),Renjin(也在JVM上實現R),Rpy2(可以從Python使用的R介面)作為很好的例子。

最後,在學習新的腳本語言之前,始終最好使用TIOBE索引或GitHut來檢查其當前的流行度。

取決於它,您還將發現或多或少的示例腳本,GitHub存儲庫,模塊庫,參考指南,詳細手冊以及應用程序展示,它們將幫助您開始使用該語言……並獲得報酬更高的項目和工作!

如果您喜歡這篇文章,那麼您會喜歡Kinsta的WordPress託管平台。加速您的網站並獲得我們經驗豐富的WordPress團隊的24/7支持。我們基於Google Cloud的基礎架構專註於自動擴展,性能和安全性。讓我們向您展示Kinsta的與眾不同!查看我們的計劃

相關文章