Ngôn ngữ kịch bản là một loại ngôn ngữ máy tính cụ thể mà bạn có thể sử dụng để đưa ra hướng dẫn cho phần mềm khác, chẳng hạn như trình duyệt web, máy chủ hoặc ứng dụng độc lập. Nhiều ngôn ngữ viết mã phổ biến nhất hiện nay là ngôn ngữ kịch bản, chẳng hạn như JavaScript, PHP, Ruby, Python và một số ngôn ngữ khác.

Vì các ngôn ngữ kịch bản làm cho việc viết mã trở nên đơn giản và nhanh hơn, nên không có gì ngạc nhiên khi chúng được sử dụng rộng rãi trong phát triển web.

Tuy nhiên, đó không phải là lĩnh vực ứng dụng duy nhất của họ. Ngoài ra còn có các ngôn ngữ kịch bản cho hệ điều hành, phần mềm phân tích thống kê, ứng dụng văn phòng, công cụ trò chơi và nhiều loại nền tảng khác.

Ngôn ngữ viết kịch bản là gì?

Các ngôn ngữ kịch bản có thể thực hiện các hành động khác nhau trong một môi trường thời gian chạy cụ thể, chẳng hạn như tự động hóa việc thực thi tác vụ, nâng cao chức năng của phần mềm mẹ, thực hiện cấu hình, trích xuất dữ liệu từ tập dữ liệu và những thứ khác.

Ngôn ngữ kịch bản có thể xuất hiện theo hai cách:

  1. Môi trường thời gian chạy có thể giới thiệu ngôn ngữ kịch bản của riêng nó, chẳng hạn như Bash cho hệ điều hành GNU hoặc VBA cho các ứng dụng Microsoft Office.
  2. Một môi trường thời gian chạy có thể sử dụng một ngôn ngữ kịch bản hiện có, ví dụ: trình bao mongo của MongoDB đã được xây dựng dựa trên JavaScript.

Mặt khác, đôi khi ngôn ngữ script tồn tại đầu tiên và nó sinh ra nền tảng mẹ của chính nó – tuy nhiên điều đó nghe có vẻ lạ lùng.

Đây là những gì đã xảy ra trong trường hợp của Node.js , một môi trường thời gian chạy phụ trợ được tạo ra để cho phép các nhà phát triển web sử dụng JavaScript không chỉ trên giao diện người dùng mà còn trên cả phần phụ trợ, tuân theo mô hình ‘JavaScript ở mọi nơi’.

Scripting có nghĩa là gì trong lập trình?

Hành động của kịch bản về cơ bản là viết một loạt các lệnh được giải thích từng lệnh một bởi một ứng dụng hoặc công cụ tạo kịch bản. Mặc dù tập lệnh hướng dẫn nền tảng phải làm gì (cung cấp cho nó một tập lệnh để đọc và thông dịch), việc thực thi được thực hiện bởi môi trường thời gian chạy chứ không phải bởi chính ngôn ngữ tập lệnh.

Đây là cách ngôn ngữ kịch bản khác với các ngôn ngữ lập trình như Java mà bạn có thể ‘viết một lần, chạy ở bất cứ đâu’ (khẩu hiệu chính thức của Java nghĩa là các chương trình Java có thể chạy như các ứng dụng độc lập trong bất kỳ môi trường nào; kể từ khi được đặt ra, nó cũng đã trở thành nguyên tắc WORA đề cập đến khả năng đa nền tảng).

Ngôn ngữ kịch bản so với Ngôn ngữ lập trình

Mặc dù thuật ngữ ‘ngôn ngữ kịch bản’ và ‘ngôn ngữ lập trình’ thường được sử dụng thay thế cho nhau, chúng không giống nhau.

Nền tảng cụ thể so với nền tảng không xác định

Các ngôn ngữ kịch bản là dành riêng cho nền tảng, trong khi các ngôn ngữ lập trình là ngôn ngữ bất khả tri nền tảng (đa nền tảng) vì chúng có khả năng tự thực thi. Ví dụ, bạn có thể chạy một chương trình Java trên bất kỳ hệ điều hành nào.

(Chủ yếu) Đã thông dịch so với Biên dịch

Trong khi các ngôn ngữ lập trình được biên dịch, các ngôn ngữ kịch bản chủ yếu được thông dịch – mặc dù có một số ngôn ngữ lập trình vừa được biên dịch vừa thông dịch, chẳng hạn như Python và Groovy.

‘Đã biên dịch’ có nghĩa là một ngôn ngữ lập trình có trình biên dịch riêng của nó để dịch cú pháp thành mã máy trước thời gian chạy. Ngược lại, các ngôn ngữ kịch bản được thông dịch từng dòng trong thời gian chạy bởi trình thông dịch của nền tảng mà chúng đang chạy.

Nhanh hơn so với Chậm hơn trong thời gian chạy

Do sự khác biệt trong việc triển khai này, các ngôn ngữ lập trình chạy nhanh hơn các ngôn ngữ lập trình vì chúng không phải được biên dịch theo thời gian thực. Các trình biên dịch cũng thực hiện xử lý lỗi tập thể trước khi thực thi, trong khi trình thông dịch đánh giá từng dòng mã, vì vậy họ tạm dừng (hoặc dừng hoàn toàn) mỗi khi gặp lỗi.

Điều này cũng làm tăng tổng thời gian thực thi của các ngôn ngữ kịch bản, mặc dù trên phần cứng hiện đại và nhanh hơn, điều này ít gây ra vấn đề hơn so với trước đây.

Nhiều hơn so với Ít Mã-Chuyên sâu

Các ngôn ngữ lập trình đòi hỏi nhiều mã hơn vì bạn phải thực hiện nhiều việc theo cách thủ công do nền tảng xử lý trong trường hợp ngôn ngữ kịch bản. Nếu bạn sử dụng một ngôn ngữ kịch bản, bạn phải viết ít mã hơn nhiều.

Ứng dụng độc lập so với Ứng dụng như một phần của ngăn xếp

Có một số điều bạn không thể làm với một ngôn ngữ kịch bản. Quan trọng nhất, bạn không thể tạo các ứng dụng di động và máy tính để bàn độc lập với ngôn ngữ kịch bản, vì không có môi trường thời gian chạy diễn giải chúng.

Ví dụ: bạn chỉ có thể sử dụng các khung PHP như WordPress và Laravel cho các trang web và ứng dụng web vì chúng sử dụng trình duyệt web làm môi trường thời gian chạy của chúng. Tương tự, các ứng dụng di động WordPress chạy trong môi trường thời gian chạy di động, chẳng hạn như Tụ điện, kết hợp các chế độ xem web.

Ngôn ngữ lập trình và viết kịch bản – Tổng quan về sự khác biệt

Vì vậy, sự khác biệt chính giữa ngôn ngữ lập trình và kịch bản như sau:

Ngôn ngữ viết kịch bản Ngôn ngữ lập trình
Nền tảng cụ thể Nền tảng bất khả tri (đa nền tảng)
(Hầu hết) được diễn giải Tổng hợp
Nhanh hơn trong thời gian chạy Chậm hơn trong thời gian chạy
Nhiều mã chuyên sâu hơn Ít sử dụng mã hơn
Tạo các ứng dụng độc lập Tạo ứng dụng như một phần của ngăn xếp

Nhầm lẫn về Ngôn ngữ Viết kịch bản

Có một số nhầm lẫn về các ngôn ngữ script mà bạn sẽ thường xuyên gặp phải, vì vậy chúng ta hãy xem xét chúng trước khi tìm hiểu các ngôn ngữ script tốt nhất.

Quan trọng nhất, không có ý nghĩa gì khi nói về ngôn ngữ script frontend và backend, mặc dù nhiều bài báo mà bạn sẽ tìm thấy trên khắp trang web sử dụng kiểu nhóm này.

Thực tế chỉ có một ngôn ngữ kịch bản giao diện người dùng hiện đang được sử dụng và đó là JavaScript (đã có những ngôn ngữ khác trước đây, chẳng hạn như ActionScript và JScript, nhưng hiện tại tất cả đều không được dùng nữa).

Nó không phải là giao diện người dùng so với phần phụ trợ quan trọng trong ngữ cảnh của các ngôn ngữ kịch bản mà là (các) môi trường thời gian chạy nơi một ngôn ngữ kịch bản có thể chạy.

Lưu ý rằng ‘giao diện người dùng’ chỉ có nghĩa là một cái gì đó (hình ảnh, phông chữ, đánh dấu, biểu định kiểu, tập lệnh, một loại tệp tĩnh khác) mà trình duyệt web có thể diễn giải. Ví dụ: cố gắng mở tệp PHP trực tiếp từ trình duyệt web: bạn không thể, vì máy chủ ứng dụng PHP phải thông dịch nó – vì vậy PHP là ngôn ngữ kịch bản phụ trợ trong ngữ cảnh phát triển web, trong khi lớp ứng dụng của ngăn xếp máy chủ (ví dụ LAMP) trong ngữ cảnh của các ngôn ngữ kịch bản.

Bên cạnh phát triển web (kịch bản giao diện người dùng và phụ trợ), các ngôn ngữ kịch bản cũng có thể được sử dụng cho nhiều thứ như lập trình và cấu hình hệ điều hành và các ứng dụng / môi trường cụ thể, thao tác với tập dữ liệu, tự động hóa tác vụ và nhiều thứ khác.

Một ngôn ngữ kịch bản cũng có thể chạy trong nhiều môi trường.

Ngôn ngữ viết kịch bản không phải là gì

Trước khi tìm hiểu các ngôn ngữ viết mã tốt nhất, chúng ta hãy xem các ngôn ngữ mã hóa đôi khi bị gọi sai là ngôn ngữ viết lệnh , nhưng bạn không thể viết mã bằng chúng:

  • Các ngôn ngữ đánh dấu, chẳng hạn như HTML và XML. Trong HTML, có các thuộc tính để xử lý sự kiện như onclick và onmouseover, nhưng đây vẫn là các lệnh gọi lại JavaScript.
  • Ngôn ngữ biểu định kiểu, chẳng hạn như CSS, Sass và LESS.
  • Bất kỳ loại thư viện hoặc khuôn khổ nào được xây dựng dựa trên bất kỳ ngôn ngữ kịch bản nào, chẳng hạn như jQuery, PostCSS, React, Vue, Angular, Rails, Grails, Laravel, WordPress, Django và các ngôn ngữ khác.
  • Các ngôn ngữ được biên dịch thành ngôn ngữ kịch bản, chẳng hạn như TypeScript và CoffeeScript.
  • SQL vì nó để quản lý dữ liệu trong hệ thống quản lý cơ sở dữ liệu quan hệ (RDBMS) như MySQL và MariaDB. Họ không cho phép bạn viết chức năng động. Tuy nhiên, nhiều RDBMS có shell cho phép bạn sử dụng ngôn ngữ kịch bản (ví dụ: JavaScript hoặc Python trong MySQL Shell).
  • Môi trường thời gian chạy cho một hoặc nhiều ngôn ngữ kịch bản, chẳng hạn như NodeJS.

13 ngôn ngữ viết kịch bản tốt nhất

Có rất nhiều ngôn ngữ script tuyệt vời đáng được đề cập trong hướng dẫn này, nhưng chúng không còn được phát triển tích cực nữa. Tuy nhiên, 13 ngôn ngữ kịch bản sau đây được cập nhật thường xuyên và cũng đang được sử dụng trong quá trình sản xuất .

Vì vậy, nếu bạn đang nghĩ đến việc học một ngôn ngữ viết kịch bản mới như một con đường chuyên nghiệp mới, chúng đều đáng để thử.

1. JavaScript / ECMAScript

JavaScript
JavaScript

JavaScript là một triển khai của tiêu chuẩn ECMA-262 xác định ngôn ngữ kịch bản mục đích chung ECMAScript (ES). Nói cách khác, JavaScript là một phương ngữ của ngôn ngữ ECMAScript, do đó nó không có một đặc tả độc lập mà sử dụng cùng một cú pháp như ECMAScript.

JavaScript có các hàm hạng nhất (các hàm được coi là biến) và hỗ trợ lập trình hướng đối tượng dựa trên nguyên mẫu (các đối tượng hiện có được sử dụng lại làm nguyên mẫu).

Ví dụ về mã

ECMAScript sử dụng cú pháp ngoặc nhọn. Ví dụ mã JavaScript sau đây thêm các số từ 1 đến 10 với nhau và xuất kết quả vào bảng điều khiển (bạn có thể kiểm tra nó trong bảng điều khiển JavaScript của trình duyệt web của mình bằng cách nhấn F12):

let total = 0, count = 1; while (count <= 10) { total += count; count += 1; } console.log(total); // 55

Nguồn: JavaScript hùng hồn của Marijn Haverbeke: Giới thiệu

Các trường hợp sử dụng và môi trường

JavaScript là ngôn ngữ kịch bản được sử dụng bởi các trình duyệt web hiện đại, chẳng hạn như công cụ V8 của Chrome và công cụ SpiderMonkey của Mozilla. Bên cạnh đó, phát triển web giao diện người dùng, nó cũng có thể được sử dụng trong các môi trường không có trình duyệt. Môi trường thời gian chạy NodeJS đã được tạo để cho phép các nhà phát triển web sử dụng nó trên phần phụ trợ.

Vỏ của một số hệ quản trị cơ sở dữ liệu NoSQL, chẳng hạn như MongoDB và Apache CouchDB, và một số hệ quản trị cơ sở dữ liệu quan hệ, chẳng hạn như MySQL Shell nói trên, cũng sử dụng nó như một ngôn ngữ kịch bản.

2. PHP

PHP
PHP

PHP là một ngôn ngữ kịch bản mã nguồn mở, có mục đích chung được sử dụng trong phát triển web phụ trợ. Từ viết tắt ban đầu là viết tắt của ‘Trang chủ cá nhân’, vì PHP lần đầu tiên được tạo ra để thêm các chức năng động vào các trang HTML tĩnh.

Kể từ đó, PHP đã phát triển thành một ngôn ngữ độc lập, vì vậy bây giờ từ viết tắt này được sử dụng với nghĩa là ‘Hypertext Preprocessor’. PHP được gõ lỏng lẻo (bạn không phải khai báo kiểu dữ liệu của các biến), có thể được nhúng vào các tài liệu HTML và cũng có các tính năng hướng đối tượng.

Ví dụ về mã

PHP có cú pháp giống C. Ví dụ mã PHP sau đây tạo một mảng số có bốn phần tử, lặp qua chúng, nhân từng mục với hai và bỏ đặt biến $value khi hết vòng lặp.

<?php $arr = array(1, 2, 3, 4); foreach ($arr as &$value) { $value = $value * 2; } // $arr is now array(2, 4, 6, 8) unset($value); ?>

Nguồn: Tài liệu PHP: Control Structures

Các trường hợp sử dụng và môi trường

PHP có thể được thực thi trên các máy chủ HTTP khác nhau, với Apache và Nginx là những máy chủ phổ biến nhất.

Các ngăn xếp máy chủ PHP phổ biến nhất là LAMP (Linux, Apache, MySQL, PHP), LEMP (Linux, Nginx, MySQL, PHP – được Kinsta sử dụng) và WAMP (Windows, Apache, MySQL, PHP) và MAMP (macOS, Apache, MySQL, PHP).

Nó cũng được sử dụng bởi nhiều hệ thống quản lý nội dung (CMS) phổ biến như WordPress, Drupal và Joomla, và các khung ứng dụng web như Laravel, Symfony và CodeIgniter, tất cả đều được xây dựng trên ngôn ngữ PHP và nâng cao nó với các chức năng bổ sung .

Bạn cũng có thể sử dụng PHP để phát triển WordPress cục bộ. Hãy xem hướng dẫn chuyên sâu của chúng tôi về sự khác biệt chính giữa Javascript và PHP.

3. Python

Python
Python

Python hiện là ngôn ngữ viết mã phổ biến thứ hai trên GitHub (sau JavaScript). Nó được yêu thích vì cú pháp rõ ràng và ngắn gọn – khi viết mã bằng Python, bạn phải nhập ít hơn nhiều so với hầu hết các ngôn ngữ.

Python là một dự án mã nguồn mở và miễn phí, được quản lý bởi Python Software Foundation. Nó hỗ trợ các mô hình lập trình có cấu trúc, hướng đối tượng và chức năng, và có một Thư viện tiêu chuẩn mở rộng là một tập hợp các mô-đun Python thường được sử dụng.

Ví dụ về mã

Python không sử dụng dấu ngoặc nhọn và dấu chấm phẩy là tùy chọn, vì vậy mã rất dễ đọc và viết. Ví dụ về mã Python sau đây lặp qua các số nguyên từ 0 đến 4 và in chúng ra:

count = 0 while count < 5: print(count) count += 1

Nguồn: Học Python: Vòng lặp

Các trường hợp sử dụng và môi trường

Cách triển khai Python phổ biến nhất là CPython, được viết bằng ngôn ngữ C. Đây cũng là triển khai tham chiếu mà bạn tải xuống cùng với ngôn ngữ Python. Mặc dù Python là một ngôn ngữ thông dịch, CPython sử dụng cả bước biên dịch và thông dịch. Đầu tiên, nó biên dịch mã nguồn thành bytecode (không giống như mã máy) mà nó thông dịch trong thời gian chạy.

Bên cạnh CPython, Python cũng có các môi trường thời gian chạy khác, quan trọng nhất là PyPy bỏ qua bước biên dịch và chỉ thực hiện phiên dịch JIT (just-in-time). Các triển khai Python là đa nền tảng, có nghĩa là chúng chạy trên nhiều hệ điều hành, bao gồm Linux, Windows và macOS.

Ngôn ngữ Python thường được sử dụng trong học máy, phát triển web phụ trợ (Django là khuôn khổ web phổ biến nhất), phân tích dữ liệu, tự động hóa, tính toán khoa học và duyệt web.

Để tìm ra cách tốt nhất để học Python, hãy xem bài đăng trên blog của chúng tôi về hướng dẫn Python .

4. Hồng ngọc

Ruby
Ruby

Ruby là một ngôn ngữ kịch bản mã nguồn mở, có mục đích chung với cú pháp nhỏ gọn và dễ đọc. Nó tuân theo các nguyên tắc của lập trình hướng đối tượng và cho phép bạn viết mã rõ ràng và logic, khiến nó trở thành một trong những ngôn ngữ lập trình dễ học nhất. Trong Ruby, mọi thứ đều là một đối tượng – ngay cả các loại là nguyên thủy trong hầu hết các ngôn ngữ, chẳng hạn như boolean và số nguyên.

Các khái niệm hướng đối tượng như kế thừa, mixin và metaclasses cũng được sử dụng nhiều.

Mặc dù Ruby có thiết kế hướng đối tượng thuần túy, nó cũng hỗ trợ lập trình thủ tục (các hàm và biến được định nghĩa bên ngoài các lớp thuộc về đối tượng Self ) và lập trình chức năng (thông qua các hàm ẩn danh, các bao đóng và liên tục).

Ví dụ về mã

Ruby có một cú pháp ngắn gọn tương tự như Python. Ví dụ mã Ruby sau đây định nghĩa lớp KaraokeSong là lớp con của lớp Song :

class KaraokeSong < Song def initialize(name, artist, duration, lyrics) super(name, artist, duration) @lyrics = lyrics end end

Nguồn: Hướng dẫn tham khảo lập trình Ruby: Lớp, Đối tượng và Biến

Các trường hợp sử dụng và môi trường

Ruby chủ yếu được sử dụng trong phát triển web phụ trợ, cung cấp năng lượng cho một số khung ứng dụng web mạnh mẽ như Ruby on Rails. Nhiều trang web và ứng dụng phổ biến chạy trên Ruby on Rails, chẳng hạn như Airbnb, Shopify, GitHub và Hulu.

Ruby cũng là ngôn ngữ mà nhiều công cụ phát triển web phổ biến được viết, đáng chú ý nhất là bộ tiền xử lý Sass CSS, trình tạo trang web tĩnh Jekyll và môi trường máy ảo Vagrant.

Việc triển khai mặc định của Ruby là YARV (Yet Another Ruby Virtual Machine). Nó đã thay đổi trình thông dịch ban đầu của Ruby Trình thông dịch Ruby của Matz (cũng là Ruby MRI hoặc CRuby) đã bị chỉ trích vì các vấn đề về tốc độ và khả năng mở rộng.

Ngoài ra còn có một số môi trường thời gian chạy cạnh tranh cho Ruby, chẳng hạn như JRuby (cho phép bạn chạy Ruby trên Máy ảo Java), mruby (một triển khai nhẹ mà bạn có thể nhúng trong ứng dụng của mình), TruffleRuby (trình thông dịch Ruby của Oracle được xây dựng trên GraalVM), Rubinius (một máy ảo gốc đám mây dành cho Ruby) và những máy khác.

5. Groovy

Groovy
Groovy

Groovy là một ngôn ngữ linh hoạt đáng kinh ngạc được viết cho Máy ảo Java (JVM) có thể được sử dụng làm ngôn ngữ lập trình và lập trình. Đây là một dự án mã nguồn mở do Apache Software Foundation duy trì. Groovy là một ngôn ngữ hướng đối tượng mở rộng lớp cha java.lang.Object .

Nó hỗ trợ cả nhập tĩnh và nhập động (kiểm tra kiểu có thể được thực hiện cả trong thời gian biên dịch và thời gian chạy) và có hỗ trợ gốc cho danh sách, mảng kết hợp, biểu thức chính quy và các ngôn ngữ đánh dấu như HTML và XML.

Bạn có thể sử dụng Groovy cùng với các thư viện Java hiện có.

Ví dụ về mã

Groovy có cú pháp tương thích với Java, sử dụng dấu ngoặc nhọn. Ví dụ mã Groovy sau đây xác định lớp Coordinates với các thuộc tính vĩ độ và kinh độ và phương thức getAt() :

@Immutable class Coordinates { double latitude double longitude double getAt(int idx) { if (idx == 0) latitude else if (idx == 1) longitude else throw new Exception("Wrong coordinate index, use 0 or 1") } }

Nguồn: Groovy Tài liệu: Ngữ nghĩa

Đăng kí để nhận thư mới

Các trường hợp sử dụng và môi trường

Khi Groovy biên dịch thành mã byte Java, bạn có thể sử dụng nó như một ngôn ngữ lập trình có mục đích chung tương tự như Java. Trong trường hợp này, bạn có thể biên dịch mã nguồn thành mã byte trước khi chạy bằng trình biên dịch groovyc (tương đương với javac).

Tuy nhiên, cũng có nhiều triển khai Groovy cho phép bạn sử dụng nó như một ngôn ngữ kịch bản. Những thứ phổ biến nhất là khung ứng dụng web Grails (trước đây gọi là Groovy on Grails) và công cụ tự động hóa xây dựng Gradle, nhưng cũng có một số công cụ khác.

6. Perl

Perl
Perl

Perl là một ngôn ngữ viết kịch bản có mục đích chung đã tồn tại hơn ba mươi năm (kể từ năm 1987). Ban đầu, nó được tạo như một ngôn ngữ kịch bản UNIX để xử lý báo cáo. Đó cũng là nơi mà tên của nó xuất phát, là từ viết tắt Perl của ‘Ngôn ngữ báo cáo và chiết xuất thực tế’.

Ngôn ngữ Perl trở nên phổ biến vào những năm 1990 khi các lập trình viên bắt đầu sử dụng rộng rãi nó cho kịch bản CGI (Giao diện cổng chung), đây là một đặc tả giao diện cũ hơn cho các máy chủ web (hiện tại, nó chủ yếu được sử dụng bởi các trang web cũ).

Mặc dù là người chơi khá sớm, Perl vẫn đứng thứ 11 trên chỉ số TIOBE và là ngôn ngữ phổ biến thứ 21 trên GitHub (tính đến tháng 10 năm 2020).

Ví dụ về mã

Cú pháp của Perl tương tự như ngôn ngữ C. Ví dụ mã Perl bên dưới trước tiên xác định chương trình con square() tính toán và trả về bình phương của một số, sau đó chuyển giá trị 8 làm đối số, chạy chương trình con và lưu kết quả vào biến $sq :

sub square { my $num = shift; my $result = $num * $num; return $result; } $sq = square(8);

Nguồn: Perl docs: Perl Intro

Các trường hợp sử dụng và môi trường

Mặc dù ngày nay đây không phải là lựa chọn thường xuyên nhất của các nhà phát triển web, Perl có thể được sử dụng thành công trong phát triển phụ trợ. Bên cạnh môi trường thời gian chạy CGI, nó cũng thực thi trên máy chủ web Apache và Nginx – ngăn xếp LAMP thực sự là LAMPP, viết tắt của Linux, Apache, MySQL, PHP và Perl.

Cũng tồn tại một số khung phát triển web Perl, với Catalyst, Mojolicious và Dancer là những khung phổ biến nhất.

Perl được sử dụng bởi một số trang web và ứng dụng đáng chú ý như Amazon, IMDB, Booking.com và BBC iPlayer. Nó cũng được sử dụng trong các lĩnh vực khác, chẳng hạn như lập trình mạng và quản trị hệ thống. Bạn cũng có thể xem Mạng lưu trữ Perl toàn diện (CPAN), nơi có hơn 25.000 dự án Perl mã nguồn mở để bạn tải xuống.

7. Lua

Lua
Lua

Lua là một ngôn ngữ kịch bản nhanh và nhẹ. Từ ‘lua’ có nghĩa là ‘mặt trăng’ trong tiếng Bồ Đào Nha, vì ngôn ngữ này được phát triển và duy trì bởi Đại học Công giáo Giáo hoàng Rio de Janeiro ở Brazil. Lua hỗ trợ các mô hình lập trình thủ tục, hướng đối tượng và chức năng.

Vì trình thông dịch của Lua được viết bằng C nên nó có thể dễ dàng được nhúng vào các ứng dụng bằng cách sử dụng API C của nó. Nói như vậy, bạn có thể sử dụng Lua để mở rộng các ứng dụng hiện có được viết bằng các ngôn ngữ dựa trên C như C, C ++, C #, Java, Perl, Ruby và các ứng dụng khác.

Ví dụ về mã

Lua có cú pháp ngắn gọn và dễ đọc, tương tự như Python và Ruby. Ví dụ mã Lua sau đây cho thấy cách sử dụng câu lệnh if-then-else . Đầu tiên, nó đánh giá biến op , sau đó thực hiện các phép toán số học cơ bản tùy thuộc vào giá trị của nó:

if op == "+" then r = a + b elseif op == "-" then r = a - b elseif op == "*" then r = a * b elseif op == "/" then r = a / b else error("invalid operation") end

Nguồn: Hướng dẫn tham khảo Lập trình trong Lua: Câu lệnh

Các trường hợp sử dụng và môi trường

Việc triển khai Lua mặc định không diễn giải mã nguồn trực tiếp nhưng trước tiên nó sẽ biên dịch nó thành mã byte mà sau đó nó thực thi trên máy ảo Lua. Vì tất cả điều này xảy ra trong thời gian chạy, bạn không cần thực hiện bước biên dịch thủ công nào (mặc dù bạn có thể chọn biên dịch Lua trước thời gian chạy để cải thiện hiệu suất).

Ngoài ra còn có các triển khai Lua khác, chẳng hạn như LuaJIT, LuaVela và nhiều ứng dụng khác.

Lua thường được sử dụng để phát triển các trò chơi điện tử, chẳng hạn như Angry Birds, World of Warcraft và Grim Fandango. Vì nó dễ nhúng, nó cũng là một lựa chọn thường xuyên cho các thiết bị nhúng như hộp giải mã tín hiệu, bảng thiết bị của ô tô (ví dụ: Volvo), camera IP (ví dụ: Cisco) và các thiết bị khác.

Nó cũng có thể được sử dụng trong phát triển web, vì cả máy chủ Apache và Nginx đều có mô-đun Lua (đây là mod_lua của Apache và đây là ngx_http_lua_module của Nginx). Wikipedia đã chọn Lua làm ngôn ngữ viết kịch bản mẫu và giao diện người dùng của Adobe Photoshop Lightroom cũng được viết bằng Lua.

8. Bash

Bash

Bash là tên của cả trình thông dịch dòng lệnh (trình bao) cho hệ điều hành GNU và ngôn ngữ kịch bản thuộc về. Trên thực tế, ‘Linux’ là hệ điều hành GNU sử dụng nhân Linux (nhân là phần cốt lõi của HĐH, nó là chương trình đầu tiên mà hệ điều hành tải).

Bash là sự thay thế cho UNIX Bourne shell ban đầu (sh) – từ viết tắt của Bash là viết tắt của ‘Bourne Again SHell’ (một cách chơi chữ của ‘Birth again shell’).

Bên cạnh việc là tập hợp siêu cho cú pháp shell Bourne, Bash cũng bao gồm các tính năng từ các ngôn ngữ kịch bản shell khác như KornShell (ksh) và C shell (csh) – ví dụ: chỉnh sửa dòng lệnh và lịch sử lệnh. Bạn có thể sử dụng Bash ở cả chế độ tương tác (thực hiện một lệnh tại một thời điểm và chờ phản hồi của máy) và chế độ tập lệnh (chạy một bộ lệnh – một tập lệnh Bash – cùng một lúc).

Ví dụ về mã

Giống như hầu hết các ngôn ngữ kịch bản CLI, Bash có một cú pháp mô tả và đơn giản. Ví dụ mã Bash sau đây chọn một tệp từ thư mục hiện tại và xuất ra một thông báo có chứa tên và chỉ mục của tệp:

select fname in *; do echo you picked $fname ($REPLY) break; done

Nguồn: Sách hướng dẫn tham khảo Bash: Cấu trúc có điều kiện

Cần lưu trữ nhanh chóng, an toàn và thân thiện với nhà phát triển cho các trang web khách hàng của bạn? Kinsta được xây dựng với các nhà phát triển WordPress và cung cấp nhiều công cụ cũng như bảng điều khiển mạnh mẽ. Kiểm tra các kế hoạch của chúng tôi

Các trường hợp sử dụng và môi trường

Bạn có thể sử dụng Bash để thực hiện các thay đổi và thực hiện các hành động khác nhau liên quan đến hệ điều hành của mình, chẳng hạn như thực hiện các lệnh, thực hiện các tác vụ mà hầu hết mọi người sẽ làm bằng giao diện người dùng đồ họa (ví dụ: tạo, di chuyển hoặc xóa các thư mục và tệp), tùy chỉnh và tự động hóa các tác vụ quản trị, kết nối với máy chủ từ xa và nhiều máy chủ khác.

Bash là shell mặc định cho nhiều hệ điều hành dựa trên Unix, bao gồm hầu hết các bản phân phối Linux và tất cả các bản phát hành macOS cho đến macOS Catalina đã thay thế Bash bằng Z shell (Zsh) vào năm 2019. Bạn cũng có thể chạy các tập lệnh Bash trên Windows 10, sử dụng Windows Lớp tương thích hệ thống con cho Linux (WSL) do Microsoft phát triển.

9. PowerShell

PowerShell

Ban đầu, PowerShell là một trình bao dòng lệnh và ngôn ngữ kịch bản chỉ dành cho hệ điều hành Windows. Kể từ đó, Microsoft mở nguồn và chuyển nó từ .NET Framework, vốn chỉ có thể tạo các ứng dụng Windows sang .NET Core, có thể tạo ứng dụng cho Windows, Linux và macOS. Điều này có nghĩa là PowerShell hiện là nền tảng đa nền tảng.

Nó cũng đã được đổi tên từ Windows PowerShell thành PowerShell Core, tương ứng với khung cơ bản. Không giống như hầu hết các trình bao dòng lệnh, PowerShell chấp nhận và trả về các đối tượng .NET thay vì văn bản thuần túy, mang lại cơ hội mới trong tự động hóa tác vụ.

Ví dụ về mã

PowerShell có cú pháp nhỏ gọn giúp làm việc trong dòng lệnh nhanh hơn. Ví dụ mã PowerShell bên dưới tạo một bản sao lưu của tệp boot.ini và lưu nó vào tệp boot.bak:

Copy-Item -Path C:boot.ini -Destination C:boot.bak

Nguồn: Tài liệu PowerShell: Làm việc với tệp và thư mục

Các trường hợp sử dụng và môi trường

Bạn có thể sử dụng PowerShell trên hệ điều hành Windows, Linux, macOS và một số thiết bị ARM (ví dụ: thiết bị đeo được, trình phát đa phương tiện, máy tính bảng và các thiết bị điện tử tiêu dùng khác).

Bạn có thể sử dụng PowerShell để quản trị hệ thống, tự động hóa tác vụ và quản lý cấu hình. Để tìm các mô-đun và tập lệnh PowerShell, bạn cũng có thể xem Thư viện PowerShell và bộ sưu tập tập lệnh mẫu chính thức của Microsoft.

10. R

R

R vừa là môi trường phần mềm vừa là ngôn ngữ kịch bản mà bạn có thể sử dụng để tính toán thống kê, phân tích dữ liệu và hiển thị đồ họa. Đó là một dự án GNU mã nguồn mở và miễn phí và việc triển khai ngôn ngữ tính toán thống kê S (không còn đang được phát triển nữa).

R cho phép bạn sử dụng nhiều kỹ thuật thống kê khác nhau như kiểm tra thống kê cổ điển, phân cụm, phân tích chuỗi thời gian, mô hình tuyến tính và phi tuyến tính, và các kỹ thuật khác.

Ví dụ về mã

Cú pháp của R khác với hầu hết các ngôn ngữ kịch bản và cũng có một số yếu tố bất thường – ví dụ: toán tử gán chính là <- thay vì dấu = và nó có các vòng lặp không lặp lại – hãy xem thêm về các câu hỏi của cú pháp R trong người mới bắt đầu này hướng dẫn về R của Sharon Machlis.

Ví dụ mã R sau đây xác định thuộc tính names cho vectơ fruit (cấu trúc dữ liệu cơ bản trong R chứa các phần tử cùng loại) sử dụng tên chữ và số ( orange , banana , apple , peach ) để giúp xác định các thành phần của nó. Sau đó, trình phụ cấp lunch (hoặc khác) có thể truy cập từng thành phần bằng cách sử dụng tên bí danh của nó:

> fruit <- c(5, 10, 1, 20) > names(fruit) <- c("orange", "banana", "apple", "peach") > lunch <- fruit[c("apple","orange")]

Nguồn: Giới thiệu về R: vectơ chỉ mục; lựa chọn và sửa đổi các tập hợp con của tập dữ liệu

Các trường hợp sử dụng và môi trường

Môi trường phần mềm R là đa nền tảng; bạn có thể chạy nó trên các hệ điều hành Windows, Linux và macOS. Việc triển khai R mặc định cũng có sẵn từ một số ngôn ngữ kịch bản khác như Python và Perl. Điều này có nghĩa là bạn có thể truy cập tất cả các chức năng thống kê của R bằng cách sử dụng các ngôn ngữ kịch bản này.

Bên cạnh môi trường R mặc định, bạn cũng có thể sử dụng ngôn ngữ kịch bản R trong các môi trường khác, chẳng hạn như pqR (viết tắt của ‘một phiên bản R khá nhanh’) và Renjin (một triển khai R trên Máy ảo Java).

11. VBA

VBA

VBA là viết tắt của Visual Basic for Applications và nó là sự triển khai của ngôn ngữ lập trình Visual Basic 6 (không được phát triển tích cực kể từ năm 2008). Nó đã được tạo ra cho các ứng dụng Microsoft Office để cho phép các nhà phát triển tự động hóa các tác vụ lặp đi lặp lại, thêm các chức năng mới và tương tác với người dùng cuối của tài liệu.

Tương tự như Visual Basic, VBA tuân theo mô hình lập trình hướng sự kiện đặt các sự kiện như hành động của người dùng vào trung tâm điều khiển luồng chương trình.

Vì các ứng dụng Microsoft Office có giao diện người dùng đồ họa, bạn có thể đính kèm tập lệnh VBA vào các nút menu, phím tắt, macro (các mẫu có thể lập trình) và các sự kiện OLE (Liên kết và Nhúng đối tượng cho phép bạn điều khiển một ứng dụng từ một ứng dụng khác; đó là công nghệ độc quyền của Microsoft ).

Ví dụ về mã

Vì VBA dựa trên Visual Basic (là phần mở rộng của BASIC), nó sử dụng cú pháp tương tự như các ngôn ngữ của họ BASIC (Mã hướng dẫn biểu tượng đa năng cho người mới bắt đầu) – có nghĩa là nó rất thân thiện với người mới bắt đầu.

Ví dụ mã VBA bên dưới sử dụng phương thức GetCertificateDetail() của đối tượng SignatureInfo để lấy ngày hết hạn của chứng chỉ kỹ thuật số:

Sub GetCertDetails() Dim objSignatureInfo As SignatureInfo Dim varDetail As Variant strDetail = objSignatureInfo.GetCertificateDetail(certdetExpirationDate) End Sub

Nguồn: Office VBA Tham khảo: Đối tượng SignatureInfo

Các trường hợp sử dụng và môi trường

Ngôn ngữ kịch bản VBA được nhúng vào hầu hết các ứng dụng Microsoft Office, tương ứng là Access, Excel, Office cho Mac, Outlook, PowerPoint, Project, Publisher, Visio và Word – mỗi ngôn ngữ có một hướng dẫn tham khảo riêng trên trang web tài liệu của Microsoft trong khi các khái niệm VBA chung được trình bày chi tiết trong thư viện tham khảo.

Bên cạnh các ứng dụng Microsoft Office, có những ứng dụng khác cũng hỗ trợ VBA, chẳng hạn như AutoCAD và CorelDRAW.

12. Emacs Lisp

Emacs Lisp

Emacs Lisp là một ngôn ngữ kịch bản dành riêng cho miền được thiết kế cho trình soạn thảo văn bản GNU Emacs. Nó là một phương ngữ của họ ngôn ngữ lập trình Lisp (tên bắt nguồn từ Bộ xử lý LISt).

Vì Emacs Lisp đã được thiết kế để sử dụng trong một trình soạn thảo mã, nó đi kèm với một bộ tính năng cụ thể cho môi trường đó, chẳng hạn như quét và phân tích văn bản, bộ đệm (đối tượng có văn bản có thể chỉnh sửa) và quản lý hiển thị, v.v.

Ngôn ngữ kịch bản Emacs Lisp được tích hợp chặt chẽ với chính giao diện trình soạn thảo, vì vậy mỗi lệnh cũng là một hàm Lisp mà bạn có thể gọi từ tập lệnh của mình và các tham số tùy chỉnh cũng là các biến Lisp.

Ví dụ về mã

Cú pháp của Emacs Lisp dựa trên ký hiệu tiền tố trong ngoặc đơn hoàn toàn có thể hơi khó đọc lúc đầu nếu bạn chưa làm việc với bất kỳ ngôn ngữ Lisp nào trước đây.

Ví dụ mã Emacs Lisp sau đây xác định hai biến (ký hiệu) và gán danh sách giá trị cho mỗi biến – danh sách cây ( pine , fir , oak , maple ) cho các trees biểu tượng và danh sách động vật ăn cỏ ( gazelle , antelope , zebra ) đối với herbivores biểu tượng:

(setq trees '(pine fir oak maple) herbivores '(gazelle antelope zebra))

Nguồn: Giới thiệu về lập trình trong Emacs Lisp: Đặt giá trị của một biến

Các trường hợp sử dụng và môi trường

Trình soạn thảo văn bản Emacs là một ứng dụng đa nền tảng mà bạn có thể cài đặt trên các máy Windows, Linux và macOS.

Sử dụng ngôn ngữ kịch bản Emacs Lisp, bạn có thể mở rộng và tùy chỉnh trình chỉnh sửa mã, lặp lại và tự động hóa các quy trình, tạo biểu đồ, giới hạn tiêu điểm cho các khu vực cụ thể (để bảo mật), tìm kiếm biểu thức chính quy, lưu trữ văn bản, xác định chế độ và sơ đồ bàn phím, đặt câu hỏi từ người dùng và thực hiện nhiều hành động khác.

Ngoài ra còn có một số khung cấu hình cho Emacs Lisp – Doom Emacs và Spacemacs là những khung nổi tiếng nhất.

13. GML

GML

Từ viết tắt GML là viết tắt của GameMaker Language. Đó là một ví dụ điển hình về ngôn ngữ kịch bản dành cho miền cụ thể được sử dụng trong phát triển trò chơi. GML là ngôn ngữ kịch bản độc quyền thuộc về GameMaker Studio 2, một công cụ trò chơi đa nền tảng và nền tảng phát triển do YoYo Games sở hữu và duy trì.

Mặc dù GML chủ yếu được sử dụng để điều khiển các đối tượng trò chơi, nhưng nó không phải là một ngôn ngữ hướng đối tượng mà là một ngôn ngữ thủ tục. Nó cho phép bạn gọi các tập lệnh tùy chỉnh từ bất kỳ đối tượng trò chơi nào.

Bên cạnh ngôn ngữ kịch bản GML, GameMaker Studio 2 còn có một công cụ tạo kịch bản trực quan được gọi là Kéo và thả (DnD). Do tính chất linh hoạt của GameMaker Studio 2, bạn cũng có thể kết hợp DnD với các tập lệnh GML của mình.

Ví dụ về mã

Cú pháp của GML tương tự như JavaScript và các ngôn ngữ giống C khác.

Ví dụ mã GML sau đây làm cho một đối tượng trò chơi di chuyển theo chiều ngang về phía con trỏ chuột trên màn hình với tốc độ 5 pixel mỗi bước. Khi nó đến vị trí hiện tại của con trỏ, script sẽ tạo một lớp hiệu ứng nổ, chạy nó (có hiệu ứng nổ trên màn hình), sau đó phá hủy đối tượng (hiệu ứng nổ bị loại bỏ):

if mp_linear_step(mouse_x, mouse_y, 5, 0) { instance_create_layer(x, y, "Effects", obj_Explosion); instance_destroy(); }

Nguồn: GameMaker Studio 2 Docs – Scripting – GML Reference – Di chuyển và Va chạm – Lập kế hoạch Chuyển động

Các trường hợp sử dụng và môi trường

GML được GameMaker Studio 2 giải thích rằng bạn cần phải mua nếu muốn phát triển trò chơi bằng ngôn ngữ kịch bản này.

Giá cả tùy thuộc vào nền tảng bạn muốn tạo trò chơi – Trò chơi Mac và Windows là những trò chơi rẻ nhất; trò chơi máy tính để bàn đa nền tảng (Windows, macOS, Ubuntu), trò chơi web HTML5, trò chơi UWP (Nền tảng Windows chung) và trò chơi di động đa nền tảng (Android, Fire, iOS) đang ở cấp trung bình; và PS4, Xbox One và Nintendo Switch là những thứ đắt nhất.

Một số ví dụ về trò chơi điện tử được tạo bằng GML bao gồm Blackhole, 10 Second Ninja X, Death’s Gambit, Deltarune và một số trò chơi khác.

Bản tóm tắt

Không có nghi ngờ gì rằng các ngôn ngữ kịch bản rất hấp dẫn. Chúng có nhiều biến thể, cú pháp và cách triển khai khác nhau và có thể được sử dụng cho nhiều thứ.

Từ việc xây dựng các trang web động, đến tự động hóa việc quản trị hệ thống, đến tạo trò chơi điện tử, v.v.

Ba điều quan trọng nhất cần nhớ về ngôn ngữ script là:

Chúng không thể tự chạy mà luôn cần một môi trường (thực thi, thời gian chạy) với trình thông dịch cho ngôn ngữ kịch bản đó.

Đôi khi bạn có thể sử dụng các ngôn ngữ kịch bản có mục đích chung để truy cập các môi trường và nền tảng chủ yếu được tạo cho các ngôn ngữ lập trình hoặc kịch bản khác. Hãy nghĩ đến JRuby (cho phép bạn chạy Ruby trên Máy ảo Java), Renjin (triển khai R cũng trên JVM), Rpy2 (giao diện R mà bạn có thể sử dụng từ Python), là những ví dụ điển hình.

Cuối cùng, trước khi học một ngôn ngữ kịch bản mới, bạn nên kiểm tra mức độ phổ biến hiện tại của nó bằng cách sử dụng chỉ mục TIOBE hoặc GitHut.

Tùy thuộc vào nó, bạn cũng sẽ tìm thấy nhiều hoặc ít tập lệnh mẫu, kho lưu trữ GitHub, thư viện mô-đun, hướng dẫn tham khảo, hướng dẫn chi tiết và giới thiệu ứng dụng sẽ giúp bạn bắt đầu với ngôn ngữ này… và nhận được các dự án và công việc được trả lương cao hơn!


Tiết kiệm thời gian, chi phí và tối đa hóa hiệu suất trang web với:

  • Trợ giúp tức thì từ các chuyên gia lưu trữ WordPress, 24/7.
  • Tích hợp Cloudflare Enterprise.
  • Tiếp cận khán giả toàn cầu với 34 trung tâm dữ liệu trên toàn thế giới.
  • Tối ưu hóa với Giám sát Hiệu suất Ứng dụng được tích hợp sẵn của chúng tôi.

Tất cả những điều đó và hơn thế nữa, trong một kế hoạch không có hợp đồng dài hạn, di chuyển được hỗ trợ và bảo đảm hoàn tiền trong 30 ngày. Kiểm tra các kế hoạch của chúng tôi hoặc nói chuyện với bộ phận bán hàng để tìm ra kế hoạch phù hợp với bạn.