मुझे लगता है कि आप मूल रूप से सही हैं। भाषा रनटाइम पहले से ही पूरी तरह से लचीली डेटा-संचालित प्रणाली है। यह डेटा (प्रोग्राम) का एक टुकड़ा लेता है और यह निर्धारित करने के लिए इसका उपयोग करता है कि इसे अन्य डेटा पर कैसे कार्य करना चाहिए। यहां तक कि अन्य कार्यक्रमों द्वारा पुन: उपयोग के लिए कोड को स्टोर करने के लिए एक बहु-उपयोगकर्ता योजना भी हो सकती है (एक शामिल पथ से उचित प्रबंधन तक)।
एक "स्क्रिप्टिंग भाषा", मोटे तौर पर बोलना, एक भाषा रनटाइम है जहां यह कोड इनपुट मानव-पठनीय है। कंपाइलर उपयोगकर्ता और रनटाइम के बीच एक अतिरिक्त कदम रखता है। Malbolge और APL जैसी "जोक" भाषाओं को किसी भी रूप में मानव-पठनीय नहीं होना चाहिए। लेकिन यह सभी एक ही स्तर पर एक ही बात है, और वैसे भी मानव-पठनीय का मतलब यह नहीं है कि सभी संभावित उपयोगकर्ताओं के पास इसे पढ़ने या लिखने का कौशल है, या उन्हें विकसित करने की उम्मीद की जा सकती है।
ऐसे अच्छे कारण हैं कि आप सामान्य रूप से सीधे उपयोगकर्ताओं के लिए भाषा रनटाइम को उजागर नहीं करते हैं। मुख्य है कि लचीलापन हटाने से सुविधा बढ़ जाती है।
यदि मैं एक एसओ पद लिखना चाहता हूं, तो मैं इसे टाइप करना चाहता हूं। मैं इसे आउटपुट करने के लिए C ++ प्रोग्राम लिखने के बजाय पूरी तरह से सक्षम हूं, लेकिन मैं एक वेब ब्राउज़र का उपयोग नहीं करूंगा जिसने एक नियमित टेक्स्ट बॉक्स के बजाय C ++ प्रोग्राम एडिटर को उजागर किया। जो लोग C ++ नहीं जानते हैं वे न केवल ब्राउज़र का उपयोग करेंगे, वे नहीं कर सकते।
अगर मैं कुछ व्यावसायिक मापदंडों को कॉन्फ़िगर करना चाहता हूं, तो मैं जरूरी नहीं कि ट्यूरिंग-पूर्ण विनिर्देश भाषा का उपयोग करना चाहता हूं, और अगर मैंने ऐसा किया है, तो संभवतः "हार्ड-कोडिंग" से अलग-अलग व्यावसायिक प्रोग्रामिंग में उन समान मापदंडों को अलग नहीं किया जा सकता है भाषा: हिन्दी। आपको अभी भी यह विचार करने की आवश्यकता है कि क्या आप जो लिख रहे हैं उसका मतलब है कि आप इसका क्या मतलब चाहते हैं। आपको अभी भी परीक्षण करना होगा कि परिवर्तन सही हैं। है, तब भी आप किसी भी कार्य है कि गैर तुच्छ और कोई है जो द्वारा प्रत्याशित नहीं हैं के लिए कौशल प्रोग्रामिंग की जरूरत है जो कॉन्फ़िगर ( "उपयोग") करने के लिए आप के लिए एक विशेष उप-प्रणाली ( "आवेदन") तैयार प्रोग्रामिंग कौशल है।
इसलिए यदि आप 100% डेटा-चालित प्रणाली को अपनाने वाले हैं, तो सही डेटा को देखते हुए कुछ भी कर सकते हैं, आपके पास खुद से पूछने के लिए दो प्रश्न हैं:
- क्या हम प्रोग्रामिंग भाषाओं का आविष्कार करने के व्यवसाय में हैं, या हमें होना चाहिए?
- क्या हमारी नई प्रोग्रामिंग भाषा पहले से मौजूद लोगों की तुलना में हमारे उद्देश्यों के लिए बेहतर (हमारे उद्देश्यों के लिए) होगी और क्या हम इसका समर्थन और विकास करेंगे जैसा कि इसकी आवश्यकता है?
कभी-कभी उत्तर हां होते हैं, और आप किसी प्रकार की डोमेन-विशिष्ट भाषा लिखते हैं। या यहां तक कि एक वास्तविक सामान्य-प्रयोजन प्रोग्रामिंग भाषा यदि आप सूर्य / माइक्रोसॉफ्ट / स्ट्रॉस्ट्रुप / वैन रोसुम / कई अन्य हैं। कभी-कभी उत्तर नहीं होते हैं और आपके पास "आंतरिक मंच" प्रभाव होता है - बहुत प्रयास और परीक्षण और त्रुटि के बाद आप कुछ के साथ समाप्त होते हैं। यदि आप भाग्यशाली हैं तो यह केवल उस प्रोग्रामिंग भाषा से थोड़ा कम हीन है, जिसे आपने इसे लिखा था, और उपयोग करने में आसान नहीं है।
कुछ भाषाएं दूसरों की तुलना में कठिन या आसान हैं, विशेष रूप से यदि वे आर जैसे उद्देश्य के लिए विशिष्ट हैं तो कुछ उपयोगकर्ता उन्हें बहुत आसान पाएंगे। जो आप शायद नहीं करेंगे, वह सामान्य रूप से प्रोग्रामिंग को सामान्य रूप से आसान बनाता है। किसी भी समय दुनिया में संभवतः कई लोग / संगठन हैं जो ऐसा करने की क्षमता रखते हैं, लेकिन आपके बॉस / कंपनी को ईमानदारी से विचार करना होगा कि उसमें वह शामिल है या नहीं।
गेम के लिए अक्सर एक ट्रिक का उपयोग किया जाता है, जो खेल इंजन के लिए लुआ बाइंडिंग को उजागर करना है। यह डिजाइनरों को अपेक्षाकृत आसान भाषा में कार्यक्रम करने की अनुमति देता है, लेकिन फिर भी एक "वास्तविक" प्रोग्रामर को संलग्न करता है, जहां प्रदर्शन या इंजन या प्लेटफॉर्म की विशेष कार्यक्षमता तक पहुंचने के लिए आवश्यक है। जहाँ तक इंजन का सवाल है, परिणामी लुआ लिपि "डेटा" है। वे सभी को शामिल करने की ज़रूरत नहीं है, जिसे आप "लॉजिक" कहते हैं, जो कि डेटा को कॉन्फ़िगर करने के विपरीत है, और अक्सर वे बहुत सारे प्लॉट और पर्यावरण को परिभाषित करते हैं, लेकिन पूरे गेमप्ले को नहीं। यह 100% डेटा-चालित नहीं है और यह निश्चित रूप से 100% त्रुटि-मुक्त नहीं है, लेकिन यह एक दिलचस्प व्यावहारिक समझौता है।