क्या सामान्य कोडिंग मानकों की अनदेखी करने के लिए वैज्ञानिक कोड एक अलग पर्याप्त क्षेत्र है?
नहीं यह नहीं।
अनुसंधान कोड अक्सर "फेंक दिया जाता है" और ऐसे लोगों द्वारा लिखा जाता है जो पृष्ठभूमि से डेवलपर्स नहीं हैं, हालांकि उनकी शैक्षणिक साख को मजबूत करते हैं। मेरे द्वारा लिखे गए कुछ शोध कोड मुझे वर्तमान में रुला देते हैं । लेकिन यह काम किया!
एक बात पर विचार करने के लिए द्वारपाल परियोजनाओं को ड्राइव करते हैं जो शामिल हो जाता है। यदि एक बड़ी परियोजना एक शैक्षणिक / अनुसंधान कोड परियोजना के रूप में शुरू हुई , काम करना समाप्त हो गया, और अब एक गड़बड़ है, तो किसी को इसे फिर से शुरू करने के लिए पहल करनी होगी।
मौजूदा कोड को रिफलेक्टर करने में बहुत काम होता है जो समस्या पैदा नहीं कर रहा है। खासकर यदि यह सभी डोमेन विशिष्ट पर है या परीक्षण नहीं है। आप देखेंगे कि ओपनसीवी में एक स्टाइल गाइड है जो बहुत व्यापक है, भले ही वह सही न हो। सभी मौजूदा कोड को इस पर लागू करना? वह है .. दिल के बेहोश के लिए नहीं।
यह और भी मुश्किल है अगर वह सभी कोड काम करता है। क्योंकि यह टूटा नहीं है। इसे ठीक क्यों करें?
फिर भी ये परियोजनाएं समृद्ध हैं, कायम हैं और व्यापक रूप से उपयोग की जाती हैं!
यह एक अर्थ में, उत्तर है। कार्य कोड अभी भी उपयोगी है और इसलिए इसे बनाए रखने की अधिक संभावना है।
यह एक गड़बड़ हो सकता है, खासकर शुरुआत में। इनमें से कुछ परियोजनाएं शायद 1-बंद परियोजना के रूप में शुरू हुईं, जिसे "कभी भी पुन: उपयोग करने की आवश्यकता नहीं होगी और इसे फेंक दिया जा सकता है।"
यह भी विचार करें कि यदि आप एक जटिल एल्गोरिथ्म को कार्यान्वित कर रहे हैं, तो इससे बड़े तरीकों के होने का अधिक अर्थ हो सकता है क्योंकि आप (और वैज्ञानिक पक्ष से परिचित अन्य) एल्गोरिदम को बेहतर तरीके से समझ सकते हैं। मेरा थीसिस कार्य अनुकूलन से संबंधित था। एक विधि के रूप में मुख्य एल्गोरिथ्म तर्क होने के कारण समझने में काफी आसान था, क्योंकि वह इसे तोड़ने की कोशिश कर रहा था। यह निश्चित रूप से "7 लाइनों प्रति विधि" नियम का उल्लंघन करता था, लेकिन इसका मतलब यह भी था कि एक अन्य शोधकर्ता मेरे कोड को देख सकता है और एल्गोरिथ्म में मेरे संशोधनों को अधिक तेज़ी से समझ सकता है।
यदि इस कार्यान्वयन को दूर कर दिया गया और इसे अच्छी तरह से डिज़ाइन किया गया, तो यह पारदर्शिता गैर प्रोग्रामर के लिए खो जाएगी ।
साथी उत्तरदाताओं के लिए: यह प्रश्न एक या अधिक वैज्ञानिक डोमेन में कम्प्यूटेशनल रूप से गहन कार्यों के लिए ओपन-सोर्स लाइब्रेरीज़ के कोड बेस को संदर्भित करता है। यह सवाल फेक कोड के बारे में नहीं है। कृपया उत्तर लिखने से पहले यह सुनिश्चित कर लें कि आप हर हाइलाइट किए गए पहलू को समझ लें।
मुझे लगता है कि लोगों को अक्सर यह विचार होता है कि सभी खुले स्रोत परियोजनाएं शुरू होती हैं, "हे मेरे पास एक पुस्तकालय के लिए एक महान विचार है जो बेतहाशा लोकप्रिय होगा और हजारों / लाखों लोगों द्वारा उपयोग किया जाएगा" और फिर हर परियोजना उसी तरह होती है।
वास्तविकता यह है कि कई परियोजनाएं शुरू होती हैं और मर जाती हैं। ओपनसीवी या वीटीके आदि के स्तर पर "इसे" बनाते हुए हास्यास्पद रूप से छोटे प्रतिशत
OpenCV इंटेल से एक अनुसंधान परियोजना के रूप में शुरू हुआ। विकिपीडिया इसे "परियोजनाओं की श्रृंखला" का हिस्सा बताता है। इसकी पहली गैर-बीटा रिलीज़ 2006 थी, या पहली बार शुरू होने के सात साल बाद। मुझे संदेह है कि लक्ष्य शुरू में सार्थक बीटा रिलीज था, न कि सही कोड।
इसके अतिरिक्त, OpenCV के "स्वामित्व" में काफी बदलाव आया है। यह मानकों में बदलाव करता है, जब तक कि सभी जिम्मेदार पक्ष सटीक समान मानकों को नहीं अपनाते हैं और परियोजना की अवधि के लिए उन्हें बनाए रखते हैं।
मुझे यह भी इंगित करना चाहिए कि ओपनसीवी एजाइल मेनिफेस्टो से पहले कई वर्षों के लिए आसपास था कि क्लीन कोड से प्रेरणा मिलती थी (और वीटीके लगभग 10)। VTK को क्लीन कोड के प्रकाशन से 17 साल पहले शुरू किया गया था (OpenCV "केवल" 9 साल पहले) था।