नकारात्मक शब्द "विरासत कोड" की उत्पत्ति क्या है


28

हर कोई सॉफ्टवेयर विकास में विरासत कोड के बारे में बात करता है और मैंने पिछले दस वर्षों में किसी भी कोडबेस को खराब होने के लिए इस्तेमाल किए जाने वाले शब्द को सुना है।

यह शब्द कहां था, जिसमें प्रोग्रामर के समान शक्तिशाली अर्थ समान हैं?

मुझे यकीन है कि सॉफ्टवेयर डेवलपमेंट पर कोई किताब होनी चाहिए जिसने इस शब्द को आगे बढ़ाया। मुझे "विरासत कोड" शब्द की उत्पत्ति का पता लगाना अच्छा लगेगा।


13
मैंने 20 साल पहले विरासत कोड की निम्नलिखित परिभाषा सुनी थी और मैंने इसे तब से याद किया है: विरासत कोड वह कोड है जो आपके पास वर्तमान में उत्पादन में है। इसने कई बार मेरी बात को मदद की है।
माइकल डुरंट

10
"विरासत कोड" एक नकारात्मक शब्द है? कौन कहता है? वैसे भी, "विरासत" शब्द प्रोग्रामिंग के लिए विशिष्ट नहीं है, और न ही यह इस संदर्भ में विशेष रूप से महत्वपूर्ण है।
रॉबर्ट हार्वे

5
माइकल फ़ेयर्स ( amazon.com/Working-Effectively-Legacy-Michael-Feathers/dp/… ) शायद उस शब्द के आविष्कारक नहीं हैं, लेकिन उन्होंने एक दिलचस्प परिभाषा बनाई: उन्होंने विरासत कोड को "परीक्षण के बिना" कहा। और यह वास्तव में एक नकारात्मक विशेषता है।
डॉक ब्राउन

11
कोड का एक गुच्छा लिखें। इसे चेक करें। कुछ दोपहर का भोजन प्राप्त करें। वापस आओ। विरासत कोड से भरी एक पूरी स्क्रीन है! अब आपको वह कोड समझ में आ गया है और सुनिश्चित करें कि भविष्य के सभी परिवर्तन उस कोड के संदर्भ में सही तरीके से काम करते हैं। विरासत कोड मौजूदा कोड के समान है ।
एरिक लिपर्ट

4
यहां "विरासत" का सीधा मतलब है कि मूल डेवलपर्स किसी भी अधिक के आसपास नहीं हैं, और केवल कोड और दस्तावेज आर्टिफैक्ट्स बाकी हैं। यह किसी भी तरह से एक उम्र या गुणवत्ता का उल्लेख नहीं करता है।
लॉजिक

जवाबों:


39

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

इसे Google के ngram दर्शक: विरासत प्रणाली, विरासत कोड के साथ देखा जा सकता है

विरासत प्रणाली और कोड

इस पर आगे बढ़ते हुए, आप 1970 के दशक में 'विरासत प्रणाली' शब्द के प्रलेखित उपयोग पा सकते हैं ।

'लीगेसी सिस्टम' का सबसे पहला उदाहरण जो कि Google ने प्रोसीडिंग्स ऑफ द आर्मी न्यूमेरिकल एनालिसिस एंड कम्प्यूटर्स कॉन्फ्रेंस ऑन 1978 की एक किताब में दिया है :

... एक स्पष्ट रूप से परिभाषित समस्या के लिए अच्छी तरह से तैयार और प्रलेखित समाधान है विरासत प्रणाली के संचालन को समझने और मौजूदा प्रणाली को विश्वास के साथ बदलने की आवश्यकता है।

क्लाउट: वूमेनपावर एंड पॉलिटिक्स ग्रिन 1976 में प्रौद्योगिकी उद्योग के बाहर इस्तेमाल की जा रही 'विरासत प्रणाली' का भी एक उदाहरण है :

... इसके अलावा, वह शक्तिशाली बैंकिंग और मुद्रा समिति की तीसरी रैंकिंग के डेमोक्रेट के रूप में एक सीट रखती है - सत्ता की स्थिति उसने अपने दम पर बनाई है, विरासत प्रणाली के माध्यम से नहीं।

इन उदाहरणों से परे जो इसके उपयोग को दिखाता है, शुद्ध सॉफ्टवेयर की दुनिया से आगे बढ़ गया है, जहां वास्तव में उत्पन्न शब्द की बारीकियों को शायद समय की रेत से खो दिया गया है। सैन्य और राजनीतिक संदर्भों को देखते हुए, यह उनके साथ उत्पन्न हुआ होगा (मुख्य रूप से सैन्य और इसके शब्दजाल प्रवासन ( "ऐसा लगता है कि युद्ध के दौरान कैम्ब्रिज में चलने वाली कई सैन्य इलेक्ट्रॉनिक्स परियोजनाओं के पूर्व छात्रों के माध्यम से 'kluge' MIT में आया था) MIT की मन्नत बिल्डिंग 20, जिस पर TMRC लगा है ... " )


यह एक बेहतरीन जवाब है। मैं यह देखने के लिए शोध जारी रखने जा रहा हूं कि क्या मुझे एक मूल मिल सकता है, लेकिन आप संभवतः सही हैं कि मूल खो गया है या संभवतः दस्तावेज नहीं है।
स्टेवबोट

1
@stevebot मैं कोड के बजाय 'लिगेसी सिस्टम' के पथ का अनुसरण करने का सुझाव दूंगा ... ऐसा लगता है कि यह शब्द पूर्ववर्ती विरासत कोड है और इसका समान अर्थ है।

6
आपकी पुस्तक '1979 से कार्बन-कार्बन बांड गठन पर पुस्तक' परियोजना प्रबंधन में नई प्रथाओं नामक एक पुस्तक से है और 2002 (पहली बार 1998 प्रकाशित) से है। ऐसा लग रहा है कि स्कैनिंग में कुछ गड़बड़ हो गई।
पीट किर्कम

1
ऐसा नहीं लगता कि यह नकारात्मक शब्द का स्रोत है।
जेएफओ

@ जेफ़ो नहीं, जैसा कि माइकलटी ने उल्लेख किया है कि यह निर्णायक नहीं है कि यह कहाँ से आया है। यह एक बहुत अच्छा जवाब है, जो अनुसंधान और प्रयास को दर्शाता है।
स्टेवबोट

5

लिगेसी कोड बेस आमतौर पर एक पीओएस सिस्टम को संदर्भित नहीं करता है, बल्कि एक कोड बेस या सिस्टम में मौजूद किसी भी सिस्टम का उपयोग नए विकास के लिए नहीं किया जाता है। उदाहरण के लिए मेरी टीम वर्तमान में कुछ .net 1.1 और 2.0 अनुप्रयोगों का समर्थन करती है जिन्हें विरासत कोड माना जाता है। यदि कोई समय आता है जहां एक संशोधन की आवश्यकता होती है, तो उन्हें नवीनतम रूपरेखाओं और मानकों का उपयोग करने के लिए या तो फिर से लिखा जाएगा या अद्यतन किया जाएगा। तब तक हम उन्हें विरासत के अनुप्रयोगों के रूप में प्रबंधित करते हैं जिन्हें कार्य जारी रखने की आवश्यकता होती है लेकिन कोई एन्हांसमेंट या कोड फिक्स लागू नहीं होते हैं।

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

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


मैं पूरी तरह से सहमत हूं कि लिगेसी सिस्टम जरूरी पीओएस सिस्टम नहीं हैं। मैं सोच रहा हूं कि वाक्यांश का मूल क्या है।
स्टीववे

3
@stevebot यदि आप शब्द की उत्पत्ति का पता लगाना चाहते हैं, तो आपको एक अनुमान के बिना उस के लिए पूछना चाहिए।
बजे एक CVn

2
@stevebot - जब आप गुजरते हैं तो एक विरासत आप पीछे छोड़ जाते हैं। मुझे लगता है कि विवरणक बस से अपनाया गया था कि वे जिस तरह से यह अनगिनत अन्य क्षेत्रों के लिए अपनाया गया था।
सोयलेंटग्रे 21

1
@ MichaelKjörling आप मुझे बता रहे हैं कि आपने कभी भी एक नकारात्मक अर्थ में इस्तेमाल होने वाली विरासत कोड नहीं सुना है ?? यह मेरी धारणा नहीं है, लेकिन दूसरों से मैंने मुलाकात और किताबों और नौकरियों में फिर से समय सुना है। जैसा कि मैंने कहा, मैं पूरी तरह से सहमत हूं कि विरासत एक नकारात्मक शब्द नहीं होनी चाहिए
स्टीवेबोट

@stevebot - विरासत कोड केवल 'नकारात्मक' लगता है, क्योंकि इसका उपयोग केवल पुराने सिस्टम (और उसके बाद की कठिनाइयों) को बदलने या बाधित करने के संदर्भ में किया जाता है। एक कार्यक्रम जो एक दशक पहले बनाया गया था, लेकिन अभी भी उपयोगी / प्रासंगिक है और कुछ बग अभी भी 'विरासत सॉफ्टवेयर' है, लेकिन हर कोई इसे सिर्फ 'सॉफ्टवेयर' कहता है। वही कोडबेस के लिए जाता है।
रोबोटिक

3

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


6
हालांकि यह सच हो सकता है, यह बेहतर होगा कि आप इस उत्तर में किए गए दावों का समर्थन करते हुए विशिष्ट संदर्भों का हवाला देते हुए उत्तर को संपादित करें । क्या ऐसे कोई संदर्भ हैं जो आप उद्धृत कर सकते हैं?
बजे एक CVn

2

शब्द विरासत कोड कम से कम 1989 के लिए उपयोग किया जाता है जैसा कि ग्लेन एवरहार्ट द्वारा comp.sys.amiga में किया जाता है :

((वैसे, हां, मैं कभी-कभी C में भी कार्यक्रम करता हूं ... लेकिन मुझे विरासत कोड w / o को अपनी भाषा में बदलना आसान लगता है ...)

मुझे Google पुस्‍तकों में पहले कुछ भी नहीं मिला।


जैसा कि एरिक लिपर्ट ने बताया, आपके द्वारा कोड का एक टुकड़ा लिखे जाने के एक मिनट बाद आपको विरासत कोड मिला। माइकलटी द्वारा दिखाए गए घटता और आपकी खोज सिर्फ समय सीमा की कल्पना करती है, जहां आईटी की मुख्यधारा में वृद्धि ने कोड की भारी मात्रा में उत्पादन करना शुरू कर दिया, जिसमें दुनिया भर के बहुत सारे लोग शामिल थे। थोड़ा बाद में नए द्वारा "पुराने" सिस्टम को बदलने की आवश्यकता भी उठाई - और यही कारण है कि जब यह एक व्यापक शब्द बन गया।
JensG

1
यदि कोई अच्छा कारण था, तो पुराने कोड को लगातार प्रतिस्थापित किया जा रहा था। मैं 1970 में (पीएल / 1 में) मेनफ्रेम बिलिंग सिस्टम पर काम करता था। इसने मेनफ्रेम असेंबली लैंग्वेज (जो अपने आप में मौजूदा मैनुअल सिस्टम का ऑटोमेशन था) में लिखे सिस्टम को बदल दिया। पीएल / 1 प्रणाली को लगभग 35 वर्षों के उपयोग के बाद अंत में बदल दिया गया था (उस से पहले इसे बदलने के असफल प्रयासों के कुछ जोड़े)। संभवतः अब आधुनिक तकनीकों को पहले ही खत्म कर दिया गया है (और इस बात की उपेक्षा के साथ कि विरासत प्रणाली के पुनर्लेखन की कितनी संभावना है)।
किकस्टार्ट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.