Pertama, bahasa scripting BIASANYA tidak dikompilasi . Itu adalah sebagian besar dari apa yang umumnya mendefinisikan mereka sebagai bahasa scripting. Sebaliknya, mereka sering "ditafsirkan." Apa dasarnya ini berarti bahwa ada bahasa lain (yang adalah disusun, lebih sering daripada tidak) yang membaca dalam teks, secara real time, dan melakukan operasi, baris demi baris.
Perbedaan antara ini dan bahasa lain adalah bahasa scripting cenderung lebih sederhana (biasanya disebut "level lebih tinggi"). Namun, mereka juga cenderung sedikit lebih lambat, karena kompiler cenderung mengoptimalkan banyak masalah yang datang dengan "elemen manusia" pengkodean, dan biner yang dihasilkan cenderung lebih kecil dan lebih cepat dibaca, untuk mesin. Selain itu, ada sedikit overhead dari program lain yang perlu dijalankan untuk membaca kode yang sedang dijalankan, dengan program yang dikompilasi.
Sekarang, Anda mungkin berpikir, "Yah, saya rasa itu sedikit lebih mudah, tetapi mengapa seseorang mau menyerahkan semua kinerja itu untuk sedikit lebih mudah digunakan?"
Anda tidak akan sendirian dalam asumsi ini, namun tingkat kemudahan yang Anda cenderung dapatkan dengan bahasa scripting, tergantung pada apa yang Anda lakukan dengan mereka, dapat sebanding dengan pengorbanan dalam kinerja.
Pada dasarnya: Untuk contoh di mana kecepatan pengembangan lebih penting daripada kecepatan program yang dijalankan - gunakan bahasa scripting. Ada banyak situasi seperti ini dalam pengembangan game. Terutama ketika berhadapan dengan hal-hal sepele seperti penanganan acara tingkat tinggi.
Sunting: Alasan lua cenderung agak populer dalam pengembangan game adalah karena ini bisa dibilang salah satu yang tercepat (jika bukan yang tercepat) yang tersedia untuk bahasa scripting di muka bumi. Namun, dengan kecepatan ekstra ini, ia telah mengorbankan beberapa kemudahannya. Yang sedang berkata, itu masih bisa dibilang lebih nyaman daripada bekerja dengan C atau C ++ lurus.
Sunting Penting: Setelah penelitian lebih lanjut, saya telah menemukan bahwa ada lebih banyak kontroversi mengenai definisi bahasa scripting (lihat dikotomi Ousterhout ). Kritik utama mendefinisikan bahasa sebagai "bahasa scripting" adalah bahwa itu tidak signifikan terhadap sintaks atau semantik bahasa yang ditafsirkan atau dikompilasi.
Sementara bahasa yang biasanya dianggap "bahasa scripting" biasanya ditafsirkan secara tradisional, bukan dikompilasi, panjang dan pendek dari definisi mereka sebagai "bahasa scripting" benar-benar sampai pada kombinasi bagaimana orang melihatnya, dan bagaimana pencipta mereka mendefinisikannya.
Secara umum, suatu bahasa dapat dengan mudah dianggap sebagai bahasa scripting (dengan asumsi Anda setuju dengan dikotomi Ousterhout) jika memenuhi kriteria berikut (menurut artikel yang ditautkan, di atas):
- Mereka diketik secara dinamis
- Mereka memiliki sedikit atau tidak ada ketentuan untuk struktur data yang kompleks
- Program di dalamnya (skrip) ditafsirkan
Selain itu, sering diterima bahwa bahasa adalah bahasa scripting jika dirancang untuk berinteraksi dan berfungsi bersama bahasa pemrograman lain (biasanya bahasa yang tidak dianggap sebagai bahasa scripting).