2010-07-02 10 views
6

सिमुलेशन उपकरण मैं पिछले कुछ वर्षों से अधिक विकसित किया है के लिए एक सामने के अंत/दुभाषिया चुनने, C++ लिखा है और वर्तमान में एक tcl सामने के अंत में व्याख्या की गई है। यह लिखा गया था कि इसे या तो एक इंटरैक्टिव खोल में चलाया जा सकता है, या एक इनपुट फ़ाइल पास कर सकते हैं। किसी भी तरह से, इनपुट फ़ाइल tcl में लिखा गया है (कई अतिरिक्त सिमुलेशन-विशिष्ट आदेश जो मैंने जोड़े हैं)। यह काफी शक्तिशाली इनपुट फ़ाइलों के लिए अनुमति देता है (उदा .- मोंटे-कार्लो सिम्स चलाते समय, यादृच्छिक वितरण सीधे इनपुट फ़ाइल में टीसीएल प्रक्रियाओं के रूप में प्रोग्राम किया जा सकता है)।एक वैज्ञानिक कोड

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

tcl साथ शेष:
सकारात्मक:
- मौजूदा कोड को बदलने के लिए कोई ज़रूरत नहीं।
- मौजूदा इनपुट फाइलें वही रहती हैं।
(हालांकि मैं शायद एक विकल्प के रूप tcl सामने के छोर रखना चाहते हैं) - समुदाय के समर्थन की बहुत सारी के साथ परिपक्व भाषा।
विपक्ष:
- भाषा वाक्य रचना के द्वारा ही सीमित लग रहा है।
- टीसीएल सीखने की कठिनाई के रूप में उपयोगकर्ताओं से शिकायतें प्राप्त करना।

पायथन:
सकारात्मक:
- आधुनिक दुभाषिया, काफी कुशल हो जाता।
- बड़े, सक्रिय समुदाय।
- अच्छी तरह से ज्ञात वैज्ञानिक और गणितीय मॉड्यूल, जैसे scipy।
- आमतौर पर शैक्षिक वैज्ञानिक/इंजीनियरिंग समुदाय (मेरे कोड के विशिष्ट उपयोगकर्ताओं)
विपक्ष में इस्तेमाल किया: - मैं इसे का उपयोग किया है कभी नहीं है और इस तरह समय लेने के लिए भाषा सीखने की हैं (यह भी एक समर्थक है, मैं के रूप में
've पिछले कुछ समय से अजगर जानने के लिए)
अर्थ दिया - इनपुट फ़ाइलें (खरोज, आदि के सख्त स्वरूपण ..)

मैटलैब:
सकारात्मक:
- बहुत शक्ति और व्यापक रूप से इस्तेमाल गणितीय उपकरण
- शक्तिशाली अंतर्निहित Visua lization/अंकन।
- समुदाय द्वारा सबमिट कोड के साथ-साथ वाणिज्यिक टूलबॉक्स के माध्यम से एक्स्टेंसिबल।
- विज्ञान/इंजीनियरिंग अकादमिक में कई लोग मैटलैब से परिचित और आरामदायक हैं।
विपक्ष:
- निष्पादन योग्य के रूप में वितरित नहीं किया जा सकता है- एक एड-ऑन/टूलबॉक्स होना आवश्यक है।
- की आवश्यकता होती है सकते हैं matlab संकलक (जो pricy है) (?)।
- मैटलैब की आवश्यकता है, जो कि भी सस्ता है।

ये पेशेवर और विपक्ष जो मैं आने में सक्षम हूं, हालांकि मुझे सामान्य रूप से व्याख्या की गई भाषाओं के साथ बहुत कम अनुभव है।मुझे यहां प्रस्तावित दोनों दुभाषियों पर किसी भी विचार को सुनना अच्छा लगेगा, अगर सूचीबद्ध इन पेशेवरों/विपक्ष वैध हैं, और कोई अन्य दुभाषिया मैंने नहीं सोचा है (उदाहरण के लिए- php इस तरह कुछ के लिए उपयुक्त होगा? Lua ?)। आपके कोड में एक दुभाषिया एम्बेड करने के साथ पहला हाथ अनुभव निश्चित रूप से एक प्लस है!

+0

CoreMaster2? एक कोड की तरह लगता है मेरी कंपनी में एक और विभाग विकसित करता है। – Dave

+0

नहीं, यह छिद्रपूर्ण मीडिया सिम्युलेटर के माध्यम से एक अकादमिक प्रवाह है जिसका उपयोग ज्यादातर अनुसंधान समूह में स्नातकोत्तर और पोस्ट-डॉक्स द्वारा किया जाता है, जिसका मैं हिस्सा हूं। – MarkD

+0

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

उत्तर

5

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

पिछले कुछ महीनों में पायथन को अपनाया जाने के बाद, मुझे यह पता चल रहा है कि टीसीएल ने वादा किया था और एक बहुत कुछ और। चूंकि कई पाइथन अनुभवी आपको बता सकते हैं, स्रोत इंडेंटेशन सबसे पहले घंटे के लिए परेशान है और फिर यह बाधा नहीं है लेकिन सकारात्मक रूप से सहायक है। संयोग से टीसीएल के लेखक, जॉन ओस्टरहाउट को वैकल्पिक रूप से प्रशंसा और एक ऐसी भाषा लिखने के लिए तैयार किया गया था जिसने टीसीएल कोडर्स पर One True Brace Style को मजबूर किया था (मैं 1 टीबीएस था इसलिए यह मेरे द्वारा ठीक था)।

केवल Tcl निर्माणों कि नहीं अजगर द्वारा अच्छी तरह से नियंत्रित किया जाता है मनमाना eval "${prefix}${command} arg" निर्माणों कि Tcl में वैसे भी नहीं किया जाना चाहिए रहे हैं, लेकिन कर रहे हैं और uplevel प्रकार बयान (जो एक अच्छा विचार थे, लेकिन कुछ बालों कोड के लिए किए गए)। वास्तव में, पाइथन गतिशील eval के लिए थोड़ा विरोधी महसूस करता है लेकिन मुझे लगता है कि यह एक अच्छी बात है। दुर्भाग्य से, मुझे अभी तक ऐसी भाषा के साथ आने के लिए नहीं आया है जिसने अपनी जीयूआई और टीसीएल/टीके को गले लगा लिया है; टिंकर पाइथन में नौकरी करता है लेकिन यह दर्द होता है।

मैं बिल्कुल मैटलैब से बात नहीं कर सकता।

मेरे बेल्ट के नीचे पाइथन के कुछ महीनों के साथ, मैं निश्चित रूप से किसी भी टीसीएल प्रोग्राम को बंद कर दूंगा जो सैद्धांतिक उद्देश्यों के लिए पाइथन के लिए चल रहे विकास में है।

+0

"मेरे बेल्ट के नीचे पाइथन के कुछ महीनों के साथ, मैं निश्चित रूप से किसी भी टीसीएल प्रोग्राम को बंद कर दूंगा जो कि पाइथन के लिए चल रहे विकास में है ..." क्या यह एक प्रस्ताव है? ;) सभी गंभीरता में, ऐसा लगता है कि पाइथन की पेशकश करने के लिए काफी कुछ है, और चूंकि हमारे पास एक नया पोस्ट-डॉक शामिल है जो इसके साथ काफी परिचित है, यह काफी आकर्षक लग रहा है। अपने परिप्रेक्ष्य को साझा करने के लिए धन्यवाद- यह निश्चित रूप से सहायक है! – MarkD

+1

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

+1

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

3

क्या आपने ऑक्टेव का उपयोग करने पर विचार किया है? जो मैं इकट्ठा करता हूं, उससे मैटलैब के लिए लगभग एक ड्रॉप-इन प्रतिस्थापन होता है। यह आपको उन लोगों के लिए मैटलैब का समर्थन करने की अनुमति दे सकता है, और जो नहीं हैं उनके लिए एक निःशुल्क विकल्प। चूंकि आपके प्रोग्राम का "मांस" किसी अन्य भाषा में लिखा जाता है, इसलिए प्रदर्शन विचारों को पर्यावरण प्रदान करने के रूप में उतना महत्वपूर्ण नहीं लगता है: प्लॉटिंग और विज़ुअलाइज़ेशन क्षमताओं, क्रॉस-प्लेटफ़ॉर्म है, इसमें एक बड़ा उपयोगकर्ता आधार है, और एक ऐसी भाषा जो लगभग सभी अकादमिक और/या मॉडलिंग तरल प्रवाह के साथ शामिल है, शायद पहले से ही जानता है। Matlab/Octave संभावित रूप से उन सभी को हो सकता है।

+0

मुझे ऑक्टेट (वर्षों और साल पहले) के साथ इतना भयानक अनुभव था कि मैंने इसके बारे में भी सोचा नहीं था। इस तरह से रखो, यह निश्चित रूप से एक विकल्प के रूप में समझ में आता है। मुझे आश्चर्य है कि ऑक्टेट को बढ़ाने के लिए एपीआई कितनी समान है मैटलैब की है? – MarkD

+0

HI मार्क, मैंने इसे कई वर्षों में उपयोग नहीं किया है, और मूल रूप से इसका उपयोग करते समय प्रभावित नहीं हुआ था। मैं पिछले हफ्ते एक ईई प्रोफेसर के साथ काम कर रहा था: उसके पास ऑक्टेव में पूरी तरह से लिखा गया एक पूर्ण इलेक्ट्रो-चुंबकीय टोमोग्राफी कोड था और यह बहुत तेज़ दौड़ गया, और वास्तव में मुझे इसे देखने के बारे में सोचने लगा। मुझे नहीं पता कि ऑक्टेव मैक्सब के साथ मैटलैब के तरीके के साथ अन्य भाषाओं को शामिल करने के मामले में कहां खड़ा है, लेकिन कुछ googling उस क्षेत्र में थोड़ा सा वादा दिखाता है। – reso

+1

यह सुनकर अच्छा लगा कि यह पिछले कुछ वर्षों में एक लंबा सफर तय कर चुका है .. मुझे निश्चित रूप से इसे फिर से प्रयास करना होगा। – MarkD

0

ठीक है, जब तक कि कोई अन्य सुझाव न हो, अंतिम जवाब मैं पाइथन के साथ जाना चाहता हूं।

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

संबंधित मुद्दे