सामग्री पर जाएँ
GK पुस्तकालयजिज्ञासु मनों का घर
हिन्दी

हार्डवेयर के तेज़ होने से भी तेज़ी से धीमा होता सॉफ़्टवेयर: विर्थ का नियम (Wirth's Law)

नया खरीदा हुआ लैपटॉप शुरुआती कुछ महीनों तक बहुत तेज़ चलता है। लेकिन ऑपरेटिंग सिस्टम और प्रोग्राम को कुछ बार अपडेट करने के बाद वह कब पुराने कंप्यूटर की तरह अटकने लगता है, पता ही नहीं चलता। चिप हर साल तेज़ होती जाती हैं, फिर भी इस्तेमाल के दौरान महसूस होने वाली गति मुश्किल से सुधरती है। इस अजीब स्थिति पर एक वाक्य में सटीक टिप्पणी करने वाला कथन है—‘विर्थ का नियम (Wirth's Law)’।

सरल शब्दों में, विर्थ का नियम एक अनुभवजन्य नियम है, जिसके अनुसार ‘सॉफ़्टवेयर के धीमे होने की दर हार्डवेयर के तेज़ होने की दर से अधिक होती है।’ इसका मतलब है कि हार्डवेयर कितना भी बेहतर हो जाए, सॉफ़्टवेयर उस बढ़ी हुई क्षमता को पहले ही खपा देता है। इसलिए उपयोगकर्ता को महसूस होने वाली गति वहीं की वहीं रहती है या उलटे घट जाती है।

इस सामग्री में हम क्रम से जानेंगे कि विर्थ का नियम कहाँ से आया, सॉफ़्टवेयर भारी क्यों होता जाता है, आज हमारे आसपास इसके कौन-से उदाहरण दिखाई देते हैं और हल्का सॉफ़्टवेयर बनाने के क्या तरीके हैं।

विर्थ के नियम को समझाने वाला आरेख। एक काल्पनिक उदाहरण में कार्यभार 4 और प्रसंस्करण गति 1 होने पर 4 सेकंड लगते हैं, जबकि कार्यभार 12 और प्रसंस्करण गति 2 होने पर 6 सेकंड लगते हैं। इस तरह, हार्डवेयर की गति की तुलना में कार्यभार अधिक बढ़े तो प्रतीक्षा का समय लंबा हो सकता है। आवश्यक सुविधाओं पर ध्यान देने, अनावश्यक कोड घटाने तथा गति और मेमोरी को मापने का सुझाव दिया गया है।
यह विर्थ के नियम को समझने के लिए एक सरलीकृत काल्पनिक उदाहरण है, वास्तविक बेंचमार्क नहीं। स्रोत: Niklaus Wirth, “A Plea for Lean Software”, Computer 28(2), 64–68 (1995)। मूल शोधपत्र

तेज़ होती चिप की बढ़त को खपा देता भारी सॉफ़्टवेयर

विर्थ का नियम कहाँ से आया?

1990 के दशक में स्विट्ज़रलैंड के एक विश्वविद्यालय की कंप्यूटर प्रयोगशाला का दृश्य। लकड़ी की मेज़ पर बेज रंग का पुराना वर्कस्टेशन, धुँधली स्क्रीन वाला सीआरटी मॉनिटर, कीबोर्ड और माउस, सादे आवरण वाली अकादमिक पत्रिकाओं का ढेर तथा कॉफ़ी का प्याला रखा है। खिड़की के बाहर पहाड़ धुँधले दिखाई दे रहे हैं।

इस नियम का नाम स्विस कंप्यूटर वैज्ञानिक निक्लाउस विर्थ (Niklaus Wirth) के नाम पर पड़ा। विर्थ ने 1970 में प्रोग्रामिंग भाषा पास्कल (Pascal) प्रस्तुत की थी और 1984 में उन्हें ट्यूरिंग पुरस्कार मिला, जिसे कंप्यूटर विज्ञान का नोबेल पुरस्कार कहा जाता है।

(1) ‘हल्के सॉफ़्टवेयर के लिए एक अपील’
विर्थ ने 1995 में ‘कंप्यूटर (Computer)’ पत्रिका में ‘हल्के सॉफ़्टवेयर के लिए एक अपील (A Plea for Lean Software)’ शीर्षक से एक लेख प्रकाशित किया। उसमें उन्होंने अपने सहकर्मी मार्टिन राइज़र (Martin Reiser) का यह कथन उद्धृत किया कि “सॉफ़्टवेयर, हार्डवेयर के तेज़ होने से भी अधिक तेज़ी से धीमा हो रहा है।” आगे चलकर यही वाक्य विर्थ के नियम के नाम से जाना गया।

(2) आँकड़ों में सॉफ़्टवेयर का बढ़ता आकार
विर्थ ने लिखा कि लगभग 25 वर्ष पहले तक एक इंटरैक्टिव दस्तावेज़ संपादक 8,000 बाइट में बनाया जा सकता था और कंपाइलर को 32 किलोबाइट के भीतर समाना पड़ता था। लेकिन उन्होंने आलोचना करते हुए कहा कि उनके बाद के संस्करण मेगाबाइट में मेमोरी माँगते हैं और यदि हार्डवेयर लगभग हज़ार गुना तेज़ न हुआ होता, तो उनका इस्तेमाल करना भी संभव नहीं होता।

(3) मूर के नियम का पूरक अवलोकन
मूर का नियम (Moore's Law) यह पूर्वानुमान लगाता है कि अर्धचालकों में ट्रांज़िस्टरों की संख्या लगातार दोगुनी होती जाएगी। वहीं विर्थ का नियम दूसरे पक्ष का यह अवलोकन है कि इस तरह हासिल हुई क्षमता का पूरा लाभ उपयोगकर्ता तक नहीं पहुँचता। विर्थ ने लिखा कि 1978 से 1993 तक इंटेल के 80x86 परिवार के प्रोसेसरों का प्रदर्शन 335 गुना बेहतर हुआ। फिर भी उन्होंने जोड़ा कि सॉफ़्टवेयर की अंतहीन भूख कम होने के कोई संकेत नहीं दिखते।


सॉफ़्टवेयर लगातार भारी क्यों होता जाता है?

शांत समुद्र पर एक छोटी और हल्की कागज़ की नाव, ज़रूरत से कहीं अधिक रंग-बिरंगे कंटेनर लादे एक विशाल मालवाहक जहाज़ के पास तैर रही है। यह दृश्य हल्के और फूले हुए सॉफ़्टवेयर की तुलना को रूपक के ज़रिए दिखाता है।

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

(1) सुविधाएँ जोड़ते जाना (Feature Creep)
हर नया संस्करण जारी करते समय एक-दो सुविधाएँ जोड़ते रहने से ऐसी सुविधाएँ भी जमा हो जाती हैं, जिन्हें अधिकतर लोग शायद ही इस्तेमाल करते हों, और प्रोग्राम भारी हो जाता है। विर्थ ने इस बात पर कटाक्ष किया कि लोग जटिलता को परिष्कार समझ बैठते हैं।

(2) अमूर्तन की कई परतें (Layers of Abstraction)
विकास को आसान बनाने वाले औज़ारों और लाइब्रेरी की कई परतें जोड़ने से सॉफ़्टवेयर बनाना तेज़ हो जाता है, लेकिन उसे चलाते समय जिन चरणों से गुज़रना पड़ता है, उनकी संख्या भी उतनी ही बढ़ जाती है।

(3) तेज़ हार्डवेयर पर भरोसा
जब यह सोच फैल जाती है कि ‘कंप्यूटर तो वैसे भी तेज़ हो जाएँगे, इसलिए अनुकूलन बाद में किया जा सकता है’, तो दक्षता सुधारने का काम पीछे छूट जाता है। विर्थ द्वारा उद्धृत एक अन्य कथन के अनुसार, सॉफ़्टवेयर तब तक फैलता रहता है, जब तक वह उपलब्ध मेमोरी को पूरी तरह भर न दे।


आज हमारे आसपास विर्थ का नियम

एक रोशन मेज़ के सामने बैठा युवा कर्मचारी नए लैपटॉप की स्क्रीन पर केवल धुँधला लोडिंग संकेत देखकर थोड़ा परेशान दिखाई दे रहा है। पास में बंद स्क्रीन वाला स्मार्टफ़ोन, गमला और कॉफ़ी का प्याला रखा है।

विर्थ का नियम अलग-अलग दौर में अलग-अलग नामों से दोहराया जाता रहा है। 1990 के दशक में यह मज़ाक प्रचलित था कि “इंटेल जो देता है, माइक्रोसॉफ़्ट उसे ले लेता है।” वहीं 2009 में गूगल के एक डेवलपर कार्यक्रम में सर्गेई ब्रिन ने इसी घटना को सह-संस्थापक लैरी पेज के नाम पर ‘पेज का नियम’ भी कहा था।

  • मैसेंजर ऐप (Messenger Apps): लिखित संदेशों का आदान-प्रदान पहले भी होता था और आज भी होता है, लेकिन अब एक ही ऐप का सैकड़ों मेगाबाइट मेमोरी घेरना आम हो गया है।
  • वेब पेज (Web Pages): किसी लेख के कुछ अनुच्छेद पढ़ने के लिए विज्ञापन, ट्रैकिंग कोड और वीडियो प्लेयर तक साथ में डाउनलोड करने पड़ते हैं, जिससे पेज देर से दिखाई देता है।
  • दस्तावेज़ संपादक (Word Processors): टेक्स्ट जोड़ने, मिटाने और उसकी जगह बदलने का मूल काम वही है, लेकिन हर संस्करण के साथ इंस्टॉलेशन के लिए आवश्यक जगह और शुरू होने का समय बढ़ता गया है। विर्थ का कहना था कि विंडो और आइकन जुड़ जाने से संपादक का मूल काम नहीं बदल जाता।
  • मोबाइल फ़ोन अपडेट (OS Updates): जब नया ऑपरेटिंग सिस्टम नवीनतम उपकरणों को ध्यान में रखकर बनाया जाता है, तो कुछ साल पुराने उपकरण वही काम करते हुए भी स्पष्ट रूप से धीमे हो जाते हैं।

हल्का सॉफ़्टवेयर बनाने के तरीके

एक साफ़ सफ़ेद मेज़ पर डेवलपर के दोनों हाथ करीने से लगे लकड़ी के ब्लॉकों की मीनार से कुछ छोटे ब्लॉक सावधानी से निकाल रहे हैं। पास में बंद स्क्रीन वाला पतला लैपटॉप और बारीक काम के लिए पेचकसों का सेट रखा है।

विर्थ आलोचना तक सीमित नहीं रहे, बल्कि उन्होंने खुद एक उदाहरण तैयार किया। उन्होंने अपने सहकर्मी युर्ग गुटक्नेख़्ट (Jürg Gutknecht) के साथ मिलकर 1986 से 1989 तक ओबेरॉन (Oberon) नामक ऑपरेटिंग सिस्टम बनाया। यह काम केवल दो लोगों ने किया और साथ ही इसी नाम की प्रोग्रामिंग भाषा भी डिज़ाइन की। संपादक और कंपाइलर सहित ओबेरॉन का मुख्य भाग 200 किलोबाइट से भी कम था।

(1) मूल आवश्यकताओं पर ध्यान देना
पहले आवश्यक सुविधाएँ तय करें और बाकी सुविधाओं को अलग रखें, ताकि जिन लोगों को उनकी ज़रूरत हो, वे ही उन्हें जोड़कर इस्तेमाल कर सकें।

(2) प्रदर्शन को नियमित रूप से मापना
हर नई सुविधा जोड़ते समय चलने की गति और मेमोरी के इस्तेमाल को मापें, ताकि धीरे-धीरे भारी होते जाने की प्रवृत्ति का जल्दी पता चल सके।

(3) हटाने का साहस
विर्थ ने कहा था कि प्रोग्रामिंग में सबसे बड़ा संतोष तब मिलता है, जब आप कुछ हटाने में सफल होते हैं। इस्तेमाल न होने वाले कोड को मिटाना भी सुविधाएँ जोड़ने जितना ही महत्वपूर्ण है।


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

कुछ जोड़ने से पहले यह सोचना कि क्या हटाया जा सकता है—यही तेज़ और लंबे समय तक उपयोगी रहने वाला सॉफ़्टवेयर विकसित करने का पहला कदम है।

PDF के रूप में सहेजें

आप अभी जो लेख पढ़ रहे हैं, उसका चुनी हुई भाषा का संस्करण खरीद रहे हैं।

US$1.00
चुनी हुई भाषा: हिन्दी

US$1.00 · 1 लेख · 1 भाषा

एक बार खरीदने के बाद, आप उसी खाते से लॉग इन करके खरीदा हुआ संस्करण फिर से प्राप्त कर सकते हैं।

PDF का नमूना देखें ↗लेख का पूरा पाठ निःशुल्क पढ़ा जा सकता है। नमूना फ़ाइल के फ़ॉन्ट और संरचना को दिखाता है।