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