लिंगो (प्रोग्रामिंग लैंग्वेज)

लिंगो एक वर्बोज़ ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग |ऑब्जेक्ट-ओरिएंटेड (ओओ) स्क्रिप्टिंग भाषा है जिसे जॉन थॉम्पसन (आविष्कारक)|जॉन एच. थॉम्पसन द्वारा एडोब निदेशक  (पूर्व में मैक्रोमीडिया डायरेक्टर) में उपयोग के लिए विकसित किया गया है। लिंगो का उपयोग डेस्कटॉप अनुप्रयोग प्रक्रिया सामग्री, इंटरैक्टिव कियोस्क,  सीडी रॉम  और एडोब शॉकवेव सामग्री विकसित करने के लिए किया जाता है। लिंगो एडोब शॉकवेव प्लेटफॉर्म पर प्राथमिक प्रोग्रामिंग भाषा है, जो 1990 के दशक के दौरान इंटरैक्टिव मल्टीमीडिया उत्पाद बाजार पर हावी थी। 1990 के दशक के दौरान लिंगो के साथ विभिन्न ग्राफिक साहसिक खेल विकसित किए गए, जिनमें द जर्नीमैन प्रोजेक्ट, पूर्ण विकृति, मियाज़ लैंग्वेज एडवेंचर: द किडनैप कैपर|मियाज़ लैंग्वेज एडवेंचर, मियाज़ साइंस एडवेंचर: रोमाईन्स न्यू हैट|मियाज़ साइंस एडवेंचर, और दीदी एंड डिट्टो श्रृंखला शामिल हैं। लिंगो का उपयोग करके सैकड़ों मुफ्त ऑनलाइन वीडियो गेम विकसित किए गए, और अंतरिक्ष और Shockwave.com जैसी वेबसाइटों पर प्रकाशित किए गए।

लिंगो का उपयोग यूजर इंटरफेस बनाने, रेखापुंज ग्राफिक्स, वेक्टर ग्राफिक्स और 3डी कंप्यूटर ग्राफिक्स और अन्य डेटा प्रोसेसिंग कार्यों में हेरफेर करने के लिए किया जा सकता है। लिंगो छवि प्रसंस्करण और 3डी ऑब्जेक्ट हेरफेर के लिए विशेष वाक्यविन्यास का समर्थन करता है। लिंगो का उपयोग करके तुरंत 3डी जाल भी बनाए जा सकते हैं।

इतिहास
लिंगो का आविष्कार जॉन थॉम्पसन (आविष्कारक)|जॉन एच. थॉम्पसन ने 1989 में मैक्रोमाइंड में किया था, और इसे पहली बार निर्देशक 2.2 के साथ रिलीज़ किया गया था। जेफ टान्नर ने डायरेक्टर 2.2 और 3.0 के लिए लिंगो को विकसित और परीक्षण किया, विभिन्न मीडिया डिवाइस उत्पादकों के लिए कस्टम एक्सऑब्जेक्ट बनाए, एक्सफैक्टरी अप्लिकेशन प्रोग्रामिंग अंतरफलक (एपीआई) सहित एक्सफैक्टरी का उपयोग करके भाषा विस्तार उदाहरण बनाए, और लिंगो का उपयोग करने के तरीके पर प्रारंभिक ट्यूटोरियल लिखे। डेव शील्ड्स ने निदेशक 3.13 और 4.0 के लिए ऑब्जेक्ट-आधारित लिंगो का परीक्षण और दस्तावेजीकरण किया। उन्होंने परीक्षण के लिए साप्ताहिक रिलीज़ बनाने के लिए बिल्ड स्क्रिप्ट चलाई, मैक्रोमीडिया नॉलेजबेस की शुरुआत की, C++ में लिंगो एक्स्ट्रा प्लग-इन (कंप्यूटिंग)|प्लग-इन लिखने के उदाहरण बनाए, और मैक्रोमीडिया डायरेक्टर के गोल्डन मास्टर डिस्क को इकट्ठा किया जिन्हें डुप्लिकेटर में भेज दिया गया था।

1990 के दशक के दौरान तेजी से बढ़ते मल्टीमीडिया समुदाय द्वारा लिंगो को अपनाया गया और यह पहले से ही लोकप्रिय निदेशक उत्पाद था। प्रारंभ में, लगभग 90% उपयोगकर्ताओं ने लिंगो की केवल 10% सुविधाओं का उपयोग किया; प्रमुख रूप से  ट्यूटोरियल और प्रस्तुतियों के मल्टीमीडिया लेखकों द्वारा। हालाँकि, 10% उपयोगकर्ता गेम डेवलपर थे  जिन्होंने अपनी स्वयं की XFactories/XObjects बनाकर अपने स्वयं के फ़ंक्शन एक्सटेंशन सहित इसकी अन्य 90% क्षमताओं में व्यापक रुचि ली। जर्नीमैन प्रोजेक्ट इसका एक प्रमुख उदाहरण है।

सुविधाएँ
लिंगो को एडोब डायरेक्टर में एम्बेड किया गया है, और इसे ऑब्जेक्ट या टाइमलाइन पर स्क्रिप्ट के रूप में जोड़ा जा सकता है। लिंगो एक ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग (ओओपी) भाषा है, और स्मॉलटॉक-जैसे वर्बोज़ सिंटैक्स, ओओ डॉट सिंटैक्स और इनहेरिटेंस का समर्थन करता है।

वर्बोज़ सिंटैक्स
जब लिंगो बनाया गया था, तो मौखिक भाषा की नकल करने के लिए एक वर्बोज़ सिंटैक्स डिज़ाइन किया गया था, ताकि नए उपयोगकर्ताओं के लिए यह आसान हो। उपयोगकर्ता हाइपरटॉक जैसे वाक्य लिख सकते हैं जैसे: गो टू स्टेटमेंट्स में, टू वैकल्पिक है, और अन्य प्रोग्रामिंग भाषाओं के विपरीत, गो स्टेटमेंट्स निदेशक के स्कोर में संदर्भ फ्रेम होते हैं, विशिष्ट कोड लाइनें नहीं।

लिंगो भी शुरू में एक अवधारणा के माध्यम से वस्तु निर्माण प्रदान करके बहुत मजबूत था, जिसके कारण बाहरी फ़ैक्टरियों (XFactories) या XObjects के माध्यम से भाषा का विस्तार हुआ। निदेशक 3.13 और बाद के संस्करणों के लिए, माइक्रोसॉफ्ट कंपोनेंट ऑब्जेक्ट मॉडल (COM) के आधार पर एक्सटीआरए नामक एक अलग प्रकार के प्लग-इन के माध्यम से एक्स्टेंसिबिलिटी उत्पन्न हुई।

डॉट सिंटैक्स
हालाँकि वर्बोज़ सिंटैक्स का उपयोग करना अभी भी संभव है, भाषा का वर्तमान संस्करण पूरी तरह से OO डॉट सिंटैक्स का समर्थन करता है, ताकि कोड अधिक मानक प्रोग्रामिंग भाषाओं जैसे जावास्क्रिप्ट या C++ जैसा दिखे।

नई स्क्रिप्टिंग शैली में समतुल्य होगा: यह प्रारूप डायरेक्टर एमएक्स 2004 में पेश किए गए डायरेक्टर ऑब्जेक्ट मॉडल के तत्वों का उपयोग करता है। पिछले संस्करणों में सिंटैक्स इस प्रकार होगा:

स्क्रिप्टिंग
डायरेक्टर में 4 प्रकार की लिंगो स्क्रिप्ट हैं, प्रत्येक का एक विशिष्ट उद्देश्य है। प्रत्येक प्रकार की स्क्रिप्ट को कुछ विशेष प्रकार की संगत वस्तुओं में जोड़ा जा सकता है।


 * कास्ट स्क्रिप्ट केवल उनके सदस्य के साथ काम करती हैं, सभी घटनाओं का उपयोग उनके साथ नहीं किया जा सकता है।
 * व्यवहार स्क्रिप्ट एक स्प्राइट से जुड़ी होती हैं या एक फ्रेम में डाली जाती हैं। स्प्राइट व्यवहार का उपयोग अक्सर स्प्राइट के गुणों और गति पर नियंत्रण देने के लिए किया जाता है। फ़्रेम व्यवहार का उपयोग स्कोर में एक निश्चित फ़्रेम के भीतर विराम या विलंब बनाने के लिए किया जा सकता है। व्यवहार ऑब्जेक्ट-ओरिएंटेड तरीके से प्रोग्राम करना आसान बनाते हैं, क्योंकि आप प्रोग्रामिंग और जिस आइटम से वे जुड़े हुए हैं, उसके बीच संबंध को सीधे देख सकते हैं। वे अन्य स्प्राइटों को नियंत्रित या उनके साथ बातचीत भी कर सकते हैं, जिससे वे एक वास्तविक वस्तु बन सकते हैं।
 * मूवी स्क्रिप्ट स्प्राइट से जुड़ी नहीं होती हैं और न ही उन्हें ऑब्जेक्ट के रूप में इंस्टेंट किया जा सकता है। वे पूरे प्रोग्राम (मूवी) में उपलब्ध हैं और विशेष रूप से वैश्विक हैंडलर रखने और फिल्म के आरंभ या अंत में वैश्विक चर प्रारंभ करने के लिए उपयोगी हैं।
 * नए कमांड का उपयोग करके किसी ऑब्जेक्ट को वेरिएबल में जन्म देने (उदाहरण बनाने) के लिए मूल स्क्रिप्ट का उपयोग किया जाता है। ये ऑब्जेक्ट किसी एक स्प्राइट से जुड़े बिना, स्प्राइट और अन्य मीडिया को दूर से नियंत्रित कर सकते हैं, डेटा या अन्य गैर-प्रदर्शित वस्तुओं को नियंत्रित करने के लिए उपयोग किया जा सकता है, और पाथफाइंडिंग जैसे रिकर्सन रूटीन के लिए उपयोगी हैं। किसी ऑब्जेक्ट को किसी भी समय बनाने या नष्ट करने के लिए पेरेंट स्क्रिप्ट का उपयोग किया जा सकता है, जिससे उन्हें उस स्कोर की सीमा से मुक्त किया जा सकता है जिस तक व्यवहार सीमित है।

व्यवहार और मूल स्क्रिप्ट अच्छे ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग को प्रोत्साहित करते हैं। मूवी स्क्रिप्ट OOP-उन्मुख नहीं हैं। हालाँकि, उनका उपयोग अभी भी ब्लैक-बॉक्स हैंडलर बनाने के लिए किया जा सकता है, जहां अन्य ऑब्जेक्ट बॉक्स की आंतरिक कार्यप्रणाली को जाने बिना, कच्चे डेटा को इनपुट कर सकते हैं और उत्तर प्राप्त कर सकते हैं। ओओपी के फायदों के साथ निदेशक की प्रोग्रामिंग पद्धति की शक्तियों और उपयोग में आसानी का उपयोग एक शक्तिशाली और तेज़ प्रोग्रामिंग वातावरण बनाता है।

विरासत
लिंगो थोड़े विशिष्ट सिस्टम द्वारा ऑब्जेक्ट वंशानुक्रम (वस्तु-उन्मुख प्रोग्रामिंग)  का समर्थन करता है: एक स्क्रिप्ट में एक हो सकता है   संपत्ति जो किसी अन्य वस्तु को संदर्भित करती है (आमतौर पर एक स्क्रिप्ट भी, हालांकि अन्य वस्तुएं जैसे कास्ट सदस्य भी पूर्वज हो सकते हैं)। पूर्वज के गुण और तरीके माता-पिता को विरासत में मिलते हैं। व्यवहार स्क्रिप्ट भी स्प्राइट के एक प्रकार के पूर्वज हैं जिनसे वे जुड़े हुए हैं, क्योंकि व्यवहार के गुणों और तरीकों को स्प्राइट के संदर्भ में ही एक्सेस किया जा सकता है। इस मामले में, यह एक प्रकार की एकाधिक विरासत है, क्योंकि एक स्प्राइट में कई व्यवहार हो सकते हैं।

एक्सऑब्जेक्ट्स
लिंगो 3.0 को एक्सटर्नल फैक्ट्रीज़ (XFactories) या XObjects (बाद में Adobe Shockwave#Xtras द्वारा प्रतिस्थापित) के माध्यम से भी एक्स्टेंसिबल किया गया था, जो निदेशक को प्रोग्रामेटिक एक्सटेंशन प्रदान करता था। उदाहरण के लिए, मैकिंटोश सीरियलपोर्ट के माध्यम से सीडी-रोम और वीडियो टेप प्लेयर जैसे बाहरी मीडिया उपकरणों को नियंत्रित करना। XObject API डेवलपर्स और मीडिया डिवाइस निर्माताओं के लिए खुले तौर पर उपलब्ध था, जिससे लिंगो की लोकप्रियता और बहुमुखी प्रतिभा में इजाफा हुआ। लिंगो के माध्यम से सहयोग करने के लिए बाहरी मीडिया उपकरणों के लिए XObject API को मानक के रूप में स्थापित करने में मैक्रोमाइंड बहुत सक्रिय था; और एक मानक के रूप में इसकी रुचि ने मल्टीमीडिया एसोसिएशन नामक एक तदर्थ समूह के माध्यम से प्रमुख और उभरती मीडिया उत्पाद कंपनियों की बहुत अधिक भागीदारी हासिल की।

एक्स्ट्रा
डायरेक्टर संस्करण 4.0 से शुरू होकर, लिंगो को एक्स्ट्राज़ नामक बाहरी प्लगइन के एक नए बेहतर वर्ग के माध्यम से विस्तार योग्य बनाया गया था। एक्स्ट्रा को माइक्रोसॉफ्ट घटक वस्तु मॉडल  (COM) का उपयोग करके C++ में विकसित किया गया था। COM के साथ मानकीकरण ने डेवलपर्स को ऐसे प्लग-इन के लिए बाजार बनाने के लिए आकर्षित करने में मदद की।

इमेजिंग लिंगो
इमेजिंग लिंगो को डायरेक्टर 8.0 के साथ पेश किया गया था, और डेवलपर्स को एक सरल सिंटैक्स का उपयोग करके उच्च-प्रदर्शन छवि हेरफेर कमांड लिखने की अनुमति दी गई थी। छवि अनुप्रयोगों (जैसे फोटोशॉप) के कार्यों में कुछ समानताएं हैं, जो गतिशील, कोड-आधारित दृश्य प्रभाव बनाना आसान बनाती हैं। बिटमैपडेटा वर्ग के साथ ActionScript  3.0 में छवि हेरफेर भी जोड़ा गया था। चूंकि इसमें अधिक परिष्कृत कमांड शामिल थे, निदेशक को बिटमैपडेटा ऑब्जेक्ट और इसकी अपनी छवि ऑब्जेक्ट के बीच रूपांतरण की अनुमति देने के लिए भी अपडेट किया गया था।

3डी
निदेशक 8.5 ने एक डायरेक्टएक्स 3डी इंजन पेश किया जिसे लिंगो के साथ स्क्रिप्ट किया जा सकता था। नई 3डी वस्तुओं का समर्थन करने के लिए लिंगो को काफी हद तक अद्यतन किया गया था और अब इसमें 3डी कमांड का पूर्ण विशेषताओं वाला सेट शामिल है। डायरेक्टर 11 में हॉक (सॉफ्टवेयर) 3डी फिजिक्स इंजन और बाद में एजीईआईए फिजएक्स इंजन के उपयोग को सक्षम करने के लिए एक एक्स्ट्रा भी बनाया गया था।

अन्य भाषाएँ
ये अन्य भाषाएँ शायद मैक्रोमीडिया भाषा जितनी प्रसिद्ध नहीं हैं। हालाँकि, यूके में एक कानूनी विसंगति बनी हुई है कि 'लिंगो' शब्द का ट्रेडमार्क लिन स्मार्ट कंप्यूटिंग के पास है।


 * विंडोज़ के अंतर्गत सॉफ्टवेयर विकास के लिए लिंगो नामक भाषा जारी की गई। इस संस्करण को एक संकलित उच्च स्तरीय प्रोग्रामिंग भाषा के रूप में डिज़ाइन किया गया था।
 * स्कॉटलैंड, यूके में लिन स्मार्ट कंप्यूटिंग द्वारा विकसित रिकर्सिवली प्रोसेसर के लिए स्मॉलटॉक पर आधारित एक प्रोग्रामिंग भाषा विकसित की गई थी। इस भाषा का नाम लिंगो रखा गया और यह महत्वपूर्ण है क्योंकि इसके निर्माताओं ने यूके में सफलतापूर्वक ट्रेडमार्क प्राप्त कर लिया है।
 * लिंगो रैखिक, अरेखीय और पूर्णांक अनुकूलन समस्याओं को हल करने के लिए एक प्रोग्रामिंग भाषा भी है, जिसे पहली बार 1988 में लिंडो सिस्टम्स इंक द्वारा विकसित किया गया था। यह भाषा अभी भी उत्पादन में है।

बाहरी संबंध

 * , at Adobe.com, Director Support Center