2008-08-18 12 views
6

मैं मौजूदा कोडबेस में स्क्रिप्टिंग कार्यक्षमता जोड़ने पर विचार कर रहा हूं और विभिन्न पैकेजों के पेशेवरों/विपक्ष का वजन कर रहा हूं। लुआ शायद सबसे स्पष्ट विकल्प है, लेकिन मैं सोच रहा था कि क्या उनके अनुभव के आधार पर लोगों के पास कोई अन्य सुझाव है।मौजूदा कोडबेस में समर्थन करने के लिए कौन सी स्क्रिप्टिंग भाषा है?

लिपियों को कुछ घटनाओं पर ट्रिगर किया जाएगा और समय के लिए निवासी रह सकते हैं। उदाहरण के लिए स्टार्टअप पर एक स्क्रिप्ट कई विकल्पों को परिभाषित कर सकती है जो प्रोग्राम उपयोगकर्ता को कई बटन के रूप में प्रस्तुत करता है। इन बटनों में से किसी एक को चुनने पर प्रोग्राम स्क्रिप्ट को सूचित करेगा जहां आगे की घटनाएं हो सकती हैं।

ये केवल वास्तविक आवश्यकताएं हैं;

  1. एक पार मंच पुस्तकालय है कि स्रोत से compilable है
  2. स्क्रिप्ट पंजीकृत कोड साइड कार्यों
  3. कोड स्क्रिप्ट साइड कार्यों कॉल करने के लिए सक्षम होना चाहिए कॉल करने के लिए सक्षम होना चाहिए
  4. इस्तेमाल किया जा होना चाहिए एक सी/सी ++ कोडबेस के भीतर।

उत्तर

3

मेरे अपने अनुभव के आधार पर:

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

हम भाग्यशाली हैं कि स्क्रिप्टिंग की स्वर्ण युग में रहना भाग्यशाली है, इसलिए यदि आप किसी भी लोकप्रिय व्यक्ति से चुनते हैं तो खराब विकल्प बनाना कठिन होता है।

1

मैंने Spidermonkey के साथ थोड़ा सा खेला है। ऐसा लगता है कि कम से कम आपकी स्थिति में एक नजर डालने लायक होगा। मैंने लुआ के बारे में भी अच्छी बातें सुनी हैं। जावास्क्रिप्ट स्क्रिप्टिंग भाषा का उपयोग करने के लिए बड़ा तर्क यह है कि बहुत सारे डेवलपर्स इसे पहले ही जानते हैं और शायद जाने से ज्यादा आरामदायक होंगे, जबकि लुआ सबसे अधिक संभावना सीखने की वक्र होगी।

मैं पूरी तरह से सकारात्मक नहीं हूं लेकिन मुझे लगता है कि आपकी 4 आवश्यकताओं को स्पाइडरमॉन्की।

1

मैंने इस उद्देश्य के लिए पायथन का व्यापक रूप से उपयोग किया है और इसे कभी खेद नहीं किया है।

1

लुआ के पास कोड कोड में बाइंडिंग के लिए सबसे सीधी सीधी सीपीआई है जिसका मैंने कभी भी उपयोग किया है। असल में, मैं आमतौर पर हाथ से इसके लिए बाइंडिंग रोल करता हूं। जबकि, आप दूसरों के लिए swig जैसे जेनरेटर के बिना ऐसा करने पर विचार नहीं करेंगे। इसके अलावा, यह विकल्प की तुलना में आमतौर पर तेज़ और अधिक हल्का वजन है, और coroutines एक बहुत उपयोगी सुविधा है जो कुछ अन्य भाषाओं प्रदान करती है।

1

AngelScript

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

पटकथा लेखक पटकथा भाषा C/C++ (मामूली परिवर्तन के साथ) का व्यापक रूप से ज्ञात वाक्य रचना इस प्रकार के लिए, लेकिन संकेत और मेमोरी लीक बारे में चिंता करने की आवश्यकता के बिना।

0

पहले कुछ उत्कृष्ट सुझाव थे, लेकिन मैं बस उल्लेख करना चाहता था कि पर्ल को सी/सी ++ पर भी कॉल किया जा सकता है।

0

आप शायद किसी भी आधुनिक स्क्रिप्टिंग/बाइटकोड भाषा का उपयोग कर सकते हैं।

यदि आप किसी नए उत्पाद की बढ़ती पीड़ा के साथ तैयार होने के इच्छुक हैं, तो आप Parrot VM का उपयोग कर सकते हैं। यदि इस पृष्ठ पर सूचीबद्ध सभी भाषाओं में नहीं, तो कई लोगों के लिए समर्थन है। दुर्भाग्य से यह अभी तक नहीं किया गया है, लेकिन इसने कुछ लोगों को उत्पादन वातावरण में इसका उपयोग करने से नहीं रोका है।

1

मूल प्रश्न टीसीएल को "टी" में वर्णित करता है।

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

टीसीएल "गोंद" भाषा के रूप में उत्कृष्टता प्राप्त करता है, जहां आप आवेदन में कम प्रदर्शन महत्वपूर्ण भागों के लिए एक स्क्रिप्टिंग भाषा के फायदों से लाभान्वित होने पर सी में प्रदर्शन-गहन कार्यों को लिख सकते हैं।

टीसीएल भी प्रथम श्रेणी के जीयूआई टूलकिट (टीके) के साथ आता है जो तर्कसंगत रूप से उपलब्ध सबसे आसान क्रॉस प्लेटफॉर्म जीयूआई टूलकिट में से एक है। यह SQLite और अन्य डेटाबेस के साथ बहुत अच्छी तरह से इंटरफेस करता है, और कुछ समय के लिए यूनिकोड के लिए अंतर्निहित समर्थन मिला है।

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

0

मुझे लगता है कि ज्यादातर लोग शायद स्क्रिप्टिंग भाषा का उल्लेख कर रहे हैं जो वे सबसे परिचित हैं। मेरे परिप्रेक्ष्य से, टीसीएल विशेष रूप से सी के साथ इंटरफेस करने के लिए डिज़ाइन किया गया था, इसलिए आपकी समस्या डोमेन भाषा के लिए तैयार है। हालांकि, मुझे यकीन है कि पाइथन, पर्ल, या लुआ ठीक होंगे। आपको शायद उस भाषा का चयन करना चाहिए जो आपकी वर्तमान टीम से सबसे ज्यादा परिचित है, क्योंकि इससे सीखने का समय कम हो जाएगा।