Bence temelde haklısın. Bir dil çalışma zamanı zaten tamamen esnek bir veri odaklı sistemdir. Bir veri parçasını (program) alır ve diğer veriler üzerinde nasıl davranması gerektiğini belirlemek için kullanır. Diğer programlar tarafından yeniden kullanım için kodu depolamak için çok kullanıcılı bir program bile içerebilir (dahil etme yolundan uygun kurulum yönetimine kadar).
Kabaca konuşulan bir "betik dili", bu kod girişinin insan tarafından okunabildiği bir dil çalışma zamanıdır. Bir derleyici, kullanıcı ve çalışma zamanı arasında fazladan bir adım atıyor. Malbolge ve APL gibi "şaka" dillerinin hiçbir şekilde insan tarafından okunmasına gerek yoktur. Ancak, her şey aynı seviyede ve insan tarafından okunabilir olan her şey, tüm potansiyel kullanıcıların okuma veya yazma becerisine sahip olduğu veya onları geliştirmesi beklenebileceği anlamına gelmiyor.
Normalde bir dil çalışma zamanını doğrudan son kullanıcılara maruz bırakmamanın iyi nedenleri vardır . Asıl esnekliğin kaldırılmasının rahatlığı arttırmasıdır.
Bir SO gönderisi yazmak istersem, sadece yazmak istiyorum. Bunun yerine çıktı almak için bir C ++ programı yazma becerisine sahibim, ancak normal bir metin kutusu yerine C ++ program düzenleyicisini gösteren bir web tarayıcısı kullanmıyorum. C ++ bilmeyen insanlar sadece tarayıcıyı kullanmakla kalmazlar, kullanmazlardı.
Bazı işletme parametrelerini yapılandırmak istersem, bunu Turing-complete bir özellik dili kullanarak yapmak istemiyorum, ve bunu yapsam bile , muhtemelen diğer işletme programlarında bu aynı işletme parametrelerini "sabit kodlama" dan ayırt edilemez değildir dil. Hala yazdığın şeyin ne anlama geldiğini anlamadığını düşünmen gerekiyor. Hala değişikliklerin doğru olduğunu test etmeniz gerekiyor. Olduğunu, yine de önemsiz olmayan ve birileri tarafından beklenen olmayan herhangi görevler için programlama beceri gereken mu yapılandırmak ( "kullanım") sizin için özel bir alt sistemi ( "Uygulama") hazırlanan programlama becerisine sahip.
Dolayısıyla,% 100 veriye dayalı bir sisteme girmek üzereyseniz, bu doğru verileri verilen her şeyi yapabilir, kendinize sormanız gereken iki sorum vardır:
- Programlama dillerini icat etme işinde miyiz, yoksa öyle mi olmalıyız?
- Yeni programlama dilimiz zaten sahip olduklarımızdan daha iyi (amaçlarımız için) olacak mı ve ihtiyaç duydukça destekleyip geliştirecek miyiz?
Bazen cevaplar evet ve bir çeşit alana özgü dil yazıyorsunuz. Ya da eğer Sun / Microsoft / Stroustrup / van Rossum / diğerleri ise gerçek bir genel amaçlı programlama dili. Bazen cevaplar hayırdır ve "iç platform" etkisine sahip olursunuz - çok çaba ve deneme yanılmasından sonra bir şeyle sonuçlanırsınız. Şanslıysanız, yazdığınız programlama dilinden sadece biraz daha düşüktür ve kullanımı kolaydır.
Bazı diller diğerlerinden daha zor veya daha kolaydır, özellikle de R gibi bir amaç için uzmanlaşmışlarsa, bazı kullanıcılar onları daha kolay bulacaklardır. Muhtemelen yapmayacağınız şey, genel uygulamaları programlamayı temel olarak kolaylaştırmaktır. Herhangi bir zamanda muhtemelen dünyada bunu yapma potansiyeli olan birkaç kişi / kuruluş vardır, ancak patronunuz / şirketiniz bunun sizi de içerip içermediğini dürüstçe düşünmelidir.
Lua bağlamalarını oyun motoruna maruz bırakmak için, oyunlarda sıklıkla kullanılan bir numara var. Bu, tasarımcıların nispeten kolay bir dilde programlamalarına olanak sağlar, ancak performans için veya motorun veya platformun belirli işlevlerine erişmek için gerekli olduğunda "gerçek" bir programlayıcıyı çalıştırmaya devam eder. Elde edilen Lua scriptleri, motor söz konusu olduğunda "veri" dir. Bunların hepsinin konfigürasyon verilerinin aksine "mantık" olarak adlandırdığınız şeyin pek çoğunu içermesine gerek yoktur ve çoğu zaman tüm komploları ve çevreyi hemen hemen tanımlarlar, ama tüm oyunu değil. Bu% 100 veri odaklı değildir ve kesinlikle% 100 hatasız değildir, ancak ilginç bir pratik uzlaşmadır.