मैं आर्टिफिशियल इंटेलिजेंस और कंप्यूटर विजन का अध्ययन किया है, इस प्रकार मैं बहुत अच्छी तरह जानते हैं कि इस क्षेत्र में उपयोग किया जाता है उपकरणों की तरह।
असल में: आप जो भी चाहें उसका उपयोग कर सकते हैं जब तक आप जानते हैं कि यह दृश्य के पीछे कैसे काम करता है।
अब आप क्या हासिल करना, आप या तो उपयोग कर सकते हैं चाहते हैं पर निर्भर करता है:
- सी भाषा है, लेकिन आप जब अपने एल्गोरिदम को लागू करने कीड़े जाँच और स्मृति प्रबंधन में बहुत समय खो देंगे। तो सैद्धांतिक रूप से, यह उस तरह की नौकरी करने की सबसे तेज़ भाषा है, लेकिन यदि आपके एल्गोरिदम गणनात्मक रूप से कुशल नहीं हैं (जटिलता के मामले में) या यदि आप बग की जांच में बहुत अधिक समय खो देते हैं, तो यह स्पष्ट रूप से इसके लायक नहीं है। तो मैं सलाह देता हूं कि पहले अपने आवेदन को किसी अन्य भाषा में लागू करें, और उसके बाद आप हमेशा अपने कोड के छोटे हिस्सों को सी बाइंडिंग के साथ अनुकूलित कर सकते हैं।
- ऑक्टवे/मैटलैब: बहुत ही कुशल भाषा, लगभग जितना सी, और आप बहुत ही सुरुचिपूर्ण और संक्षिप्त एल्गोरिदम बना सकते हैं। यदि आप वेक्टरेशन, मैट्रिक्स और रैखिक संचालन में हैं, तो आपको इसके साथ जाना चाहिए। हालांकि, आप इस भाषा के साथ एक संपूर्ण अनुप्रयोग विकसित करने में सक्षम नहीं होंगे, यह एल्गोरिदम पर अधिक केंद्रित है, लेकिन फिर आप बाद में किसी अन्य भाषा का उपयोग कर इंटरफ़ेस विकसित कर सकते हैं।
- पायथन: सभी में एक सुरुचिपूर्ण और सुलभ भाषा, जो Google और Facebook जैसे बड़े पैमाने पर बड़े पैमाने पर अनुप्रयोगों में उपयोग की जाती है। आप पाइथन, किसी भी प्रकार के आवेदन के साथ जो कुछ भी चाहते हैं, वह कर सकते हैं। यदि आप एक पूर्ण आवेदन (क्लाइंट इंटरैक्शन और सभी के साथ, न केवल एल्गोरिदम के साथ) बनाना चाहते हैं, या यदि आप मौजूदा पुस्तकालयों का उपयोग करके प्रोटोटाइप को जल्दी से ड्राफ्ट करना चाहते हैं, तो इसे पूरी तरह से अनुकूलित किया जाएगा क्योंकि पाइथन के पास उच्च गुणवत्ता वाले पुस्तकालयों का एक बहुत बड़ा सेट है, जैसे OpenCV। हालांकि अगर आप केवल एल्गोरिदम बनाना चाहते हैं, तो आपको ऑक्टेव/मैटलैब का बेहतर उपयोग करना चाहिए।
एक समाधान के रूप में चुना गया उत्तर बहुत ही बाध्य है, और आपको इस तरह की पुरातन टिप्पणी के बारे में सावधान रहना चाहिए।
आजकल, हार्डवेयर गीलेवेयर (इंसान) से सस्ता है, और इस प्रकार, आपको उन भाषाओं का उपयोग करना चाहिए जहां आप परिणाम उत्पन्न करने में सक्षम होंगे, भले ही यह कुछ CPU चक्र या मेमोरी स्पेस की कीमत पर हो।
इसके अलावा, बहुत से लोग सोचते हैं कि जब तक आप सी/सी ++ में अपने सॉफ़्टवेयर को लागू करते हैं, तो आप गति की संत Graal बना रहे हैं: यह सच नहीं है।सबसे पहले, क्योंकि एल्गोरिदम जटिलता आपके द्वारा उपयोग की जा रही भाषा से बहुत अधिक मायने रखती है (एक खराब एल्गोरिदम कभी भी बेहतर एल्गोरिदम को हरा नहीं देगा, भले ही ब्रह्मांड में सबसे धीमी भाषा में लागू किया गया हो), और दूसरी बात यह है कि उच्च स्तरीय भाषाएं आजकल बहुत कुछ कर रही हैं आपके लिए कैशिंग और गति अनुकूलन का, और यह आपके प्रोग्राम को सी/सी ++ की तुलना में तेज़ी से चला सकता है।
बेशक, आप उपर्युक्त सभी चीजें सी/सी ++ में हमेशा कर सकते हैं, लेकिन पहिया को फिर से शुरू करने के लिए आप कितना समय बर्बाद कर सकते हैं?