Saya pikir Anda pada dasarnya benar. Runtime bahasa sudah merupakan sistem yang didorong data yang sepenuhnya fleksibel. Dibutuhkan satu data (program) dan menggunakannya untuk menentukan bagaimana seharusnya bertindak pada data lain. Bahkan mungkin memiliki skema multi-pengguna untuk menyimpan kode untuk digunakan kembali oleh program lain (mulai dari jalur sertakan hingga manajemen pemasangan yang tepat).
"Bahasa scripting", secara kasar, adalah runtime bahasa tempat input kode ini dapat dibaca manusia. Kompiler menempatkan langkah ekstra antara pengguna dan runtime. Bahasa "Lelucon" seperti Malbolge dan APL tidak perlu dibaca manusia dalam bentuk apa pun. Tetapi semuanya adalah hal yang sama pada satu tingkat, dan lagi pula yang dapat dibaca manusia tidak berarti bahwa semua pengguna potensial memiliki keterampilan untuk membaca atau menulisnya, atau dapat diharapkan untuk mengembangkannya.
Ada alasan bagus mengapa Anda biasanya tidak mengekspos runtime bahasa secara langsung ke pengguna akhir. Yang utama adalah bahwa menghilangkan fleksibilitas meningkatkan kenyamanan.
Jika saya ingin mengetik posting SO, saya hanya ingin mengetiknya. Saya sangat mampu daripada menulis program C ++ untuk menghasilkannya, tapi saya tidak akan menggunakan browser web yang mengekspos editor program C ++ alih-alih kotak teks biasa. Orang yang tidak tahu C ++ tidak hanya tidak akan menggunakan browser, mereka juga tidak bisa.
Jika saya ingin mengkonfigurasi parameter bisnis tertentu maka saya tidak perlu ingin melakukan itu menggunakan bahasa spesifikasi Turing-complete, dan bahkan jika saya melakukan ini mungkin tidak dapat dibedakan dari "hard-coding" parameter-parameter bisnis yang sama dalam pemrograman lain bahasa. Anda masih perlu mempertimbangkan apakah apa yang Anda tulis berarti apa yang Anda inginkan. Anda masih perlu menguji apakah perubahan itu benar. Artinya, Anda masih memerlukan keterampilan pemrograman untuk tugas apa pun yang tidak sepele dan tidak diantisipasi oleh seseorang yang memang memiliki keterampilan pemrograman yang menyiapkan sub-sistem khusus ("aplikasi") untuk Anda konfigurasikan ("gunakan").
Jadi jika Anda akan memulai sistem berbasis data 100%, yang dapat melakukan apa saja dengan data yang benar, Anda memiliki dua pertanyaan untuk diri sendiri:
- Apakah kita dalam bisnis menciptakan bahasa pemrograman, atau seharusnya?
- Akankah bahasa pemrograman baru kita lebih baik (untuk tujuan kita) daripada yang sudah kita miliki dan akankah kita mendukung dan mengembangkannya sesuai kebutuhan?
Terkadang jawabannya adalah ya, dan Anda menulis sejenis bahasa khusus domain. Atau bahkan bahasa pemrograman serba guna nyata jika Anda Sun / Microsoft / Stroustrup / van Rossum / banyak lainnya. Kadang-kadang jawabannya tidak dan Anda memiliki efek "platform dalam" - setelah banyak usaha dan coba-coba Anda berakhir dengan sesuatu. Jika Anda beruntung, itu hanya sedikit lebih rendah daripada bahasa pemrograman tempat Anda menulisnya, dan tidak mudah digunakan.
Beberapa bahasa lebih sulit atau lebih mudah digunakan daripada yang lain, khususnya jika mereka dikhususkan untuk tujuan seperti R maka beberapa pengguna akan merasa lebih mudah. Apa yang Anda mungkin tidak akan lakukan, adalah membuat pemrograman aplikasi umum secara fundamental lebih mudah. Pada suatu waktu mungkin ada beberapa orang / organisasi di dunia dengan potensi untuk melakukan itu, tetapi bos / perusahaan Anda harus dengan jujur mempertimbangkan apakah itu termasuk dirinya atau tidak.
Ada trik yang sering digunakan untuk gim, yaitu untuk mengekspos binding Lua ke mesin gim. Hal ini memungkinkan desainer untuk memprogram dalam bahasa yang relatif mudah, tetapi masih melibatkan programmer "nyata" di mana diperlukan untuk kinerja atau untuk mengakses fungsionalitas khusus dari mesin atau platform. Skrip Lua yang dihasilkan adalah "data" sejauh menyangkut mesin. Mereka tidak semua perlu memasukkan banyak dari apa yang Anda sebut "logika" sebagai lawan dari data konfigurasi, dan seringkali mereka cukup banyak mendefinisikan semua plot dan lingkungan, tetapi tidak seluruh gameplay. Ini bukan 100% berbasis data dan tentunya bukan 100% bebas kesalahan, tapi ini kompromi praktis yang menarik.