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