नेमस्पेस

कम्प्यूटिंग में, नेमस्पेस संकेतों (नामों) का समूह है जो विभिन्न प्रकार की वस्तुओं को पहचानने और संदर्भित करने के लिए उपयोग किया जाता है। नेमस्पेस यह सुनिश्चित करता है कि दिए गए ऑब्जेक्ट्स के सभी समूह के अद्वितीय नाम हों जिससे उन्हें आसानी से पहचाना जा सकें।

अलग-अलग संदर्भों में नामों के पुन: उपयोग की अनुमति देने के लिए नेमस्पेसों को सामान्यतः पदानुक्रम के रूप में संरचित किया जाता है। सादृश्य के रूप में, लोगों के नामकरण की नृविज्ञान की प्रणाली पर विचार करें जहां प्रत्येक व्यक्ति का एक दिया गया नाम है, साथ ही परिवार का नाम उनके रिश्तेदारों के साथ साझा किया जाता है। यदि परिवार के सदस्यों के पहले नाम केवल प्रत्येक परिवार के अन्दर अद्वितीय हैं, तो प्रत्येक व्यक्ति को पहले नाम और परिवार के नाम के संयोजन से विशिष्ट रूप से पहचाना जा सकता है; केवल जेन डो है, चूंकि कई जेन हो सकते हैं। डो परिवार के नाम स्थान के अन्दर, सिर्फ जेन इस व्यक्ति को स्पष्ट रूप से नामित करने के लिए पर्याप्त है, चूंकि सभी लोगों के वैश्विक नाम स्थान के अन्दर, पूरा नाम उपयोग किया जाना चाहिए।

नेमस्पेसों के प्रमुख उदाहरणों में फाइल प्रणाली सम्मिलित हैं, जो फाइलों को नाम प्रदान करते हैं। कुछ प्रोग्रामिंग भाषा अपने वेरिएबल (कंप्यूटर साइंस) और सबरूटीन को नेमस्पेस में व्यवस्थित करती हैं।  कंप्यूटर नेटवर्क और वितरित प्रणाली संसाधनों को नाम देते हैं, जैसे कंप्यूटर, प्रिंटर, वेबसाइट और रिमोट फाइल्स। वर्चुअलाइजेशन ओएस-स्तरीय वर्चुअलाइजेशन का समर्थन करने के लिए ऑपरेटिंग प्रणाली पृथक नेमस्पेसों द्वारा कर्नेल संसाधनों को विभाजित कर सकते हैं।

इसी प्रकार, पदानुक्रमित (कंप्यूटिंग) फाइल प्रणाली फाइलों को निर्देशिकाओं में व्यवस्थित करते हैं। प्रत्येक निर्देशिका अलग नेमस्पेस है, जिससे निर्देशिका पत्र और चालान दोनों में जेन की फ़ाइल हो सकती है।

कंप्यूटर प्रोग्रामिंग में, नेमस्पेस सामान्यतः विशेष कार्यक्षमता के आसपास प्रतीकों और पहचानकर्ताओं को समूहीकृत करने के उद्देश्य से और ही नाम साझा करने वाले कई पहचानकर्ताओं के बीच नाम टकराव से बचने के लिए नियोजित होते हैं।

नेटवर्किंग में, डोमेन की नामांकन प्रणाली वेबसाइटों (और अन्य संसाधनों) को श्रेणीबद्ध नेमस्पेसों में व्यवस्थित करता है।

नाम विरोध
तत्व के नाम डेवलपर द्वारा परिभाषित किए गए हैं। विभिन्न एक्सएमएल अनुप्रयोगों से एक्सएमएल दस्तावेज़ों को मिलाने का प्रयास करते समय यह अधिकांश विरोध का कारण बनता है।

इस एक्सएमएल में एचटीएमएल तालिका की जानकारी होती है:

इस एक्सएमएल में तालिका (फर्नीचर) (अर्थात् फर्नीचर का टुकड़ा) के बारे में जानकारी है: यदि इन एक्सएमएल अंशों को साथ जोड़ा गया था, तो नाम विरोध होगा। दोनों में  तत्व होता हैं, किन्तु तत्वों की सामग्री और अर्थ भिन्न होते हैं।

एक्सएमएल पार्सर को यह नहीं पता होगा कि इन अंतरों को कैसे नियंत्रित किया जाए।

उपसर्ग के माध्यम से समाधान
एक्सएमएल में नाम के विरोध को नाम उपसर्ग के प्रयोग से आसानी से टाला जा सकता है।

निम्नलिखित एक्सएमएल तत्वों की प्रारंभ में एच और एफ उपसर्ग करके एचटीएमएल तालिका और फर्नीचर के बारे में जानकारी के बीच अंतर करता है।

नामकरण प्रणाली
नाम स्थान में नाम में नाम स्थान का नाम और स्थानीय नाम होता है। नेमस्पेस नाम सामान्यतः स्थानीय नाम के लिए उपसर्ग (कंप्यूटर विज्ञान) के रूप में प्रायुक्त किया जाता है।

संवर्धित बैकस-नौर रूप में: name = separator

जब स्थानीय नामों का स्वयं उपयोग किया जाता है, तो नाम संकल्प (प्रोग्रामिंग भाषा) का उपयोग यह तय करने के लिए किया जाता है कि कौन सा (यदि कोई है) विशेष नाम किसी विशेष स्थानीय नाम से संकेतित है।

प्रतिनिधिमंडल
वर्ल्ड वाइड वेब की संरचना जैसे वास्तविक संसार के अनुप्रयोगों में पार्टियों के बीच जिम्मेदारियों का प्रत्यायोजन महत्वपूर्ण है। नेमस्पेस वैश्विक विशिष्टता को बनाए रखते हुए कई नाम जारी करने वाले संगठनों को पहचानकर्ता असाइनमेंट सौंपने की अनुमति देते हैं। केंद्रीय पंजीकरण प्राधिकरण राष्ट्रीय इंटरनेट रजिस्ट्री को पंजीकृत करता है। प्रत्येक नेमस्पेस नाम एक संगठन को आवंटित किया जाता है जो बाद में उनके आवंटित नेमस्पेस में नामों के असाइनमेंट के लिए जिम्मेदार होता है। यह संगठन एक नाम जारी करने वाला संगठन हो सकता है जो स्वयं मेटाडेटा रजिस्ट्री करता है,या किसी अन्य पंजीकरण प्राधिकरण को नाम निर्दिष्ट करता है जो आगे उनके नेमस्पेस के कुछ हिस्सों को विभिन्न संगठनों को सौंपता है।

पदानुक्रम
नामकरण योजना जो तृतीय पक्षों को नेमस्पेसों के उप-प्रत्यायोजन की अनुमति देती है, श्रेणीबद्ध नेमस्पेस है।

पदानुक्रम पुनरावर्ती है यदि नेमस्पेस नामों के लिए सिंटैक्स प्रत्येक उप-प्रतिनिधि के लिए समान है। पुनरावर्ती पदानुक्रम का उदाहरण डोमेन नाम है।

गैर-पुनरावर्ती पदानुक्रम का उदाहरण समान संसाधन का नाम है जो इंटरनेट असाइन किए गए नंबर अथॉरिटी (आईएएनए) नंबर का प्रतिनिधित्व करता है।

नेमस्पेस बनाम स्कोप
नाम स्थान का नाम नाम के लिए संदर्भ (कंप्यूटर विज्ञान में स्कोप (कंप्यूटर विज्ञान)) प्रदान कर सकता है, और कभी-कभी शब्दों को दूसरे के स्थान पर उपयोग किया जाता है। चूँकि, किसी नाम का संदर्भ अन्य कारकों द्वारा भी प्रदान किया जा सकता है, जैसे कि वह स्थान जहाँ वह होता है या नाम का वाक्य-विन्यास।

प्रोग्रामिंग भाषाओं में
कई प्रोग्रामिंग भाषाओं के लिए, नेमस्पेस उनके पहचानकर्ता (कंप्यूटर भाषाओं) के लिए संदर्भ है। ऑपरेटिंग प्रणाली में, नेमस्पेस का उदाहरण पदानुक्रमित है। निर्देशिका में प्रत्येक नाम विशिष्ट रूप से फ़ाइल या उपनिर्देशिका की पहचान करता है।

नियम के रूप में, नेमस्पेस में नामों के से अधिक अर्थ नहीं हो सकते; अर्थात्, अलग-अलग अर्थ ही नाम को ही नेमस्पेस में साझा नहीं कर सकते हैं। नेमस्पेस को संदर्भ (कंप्यूटिंग) भी कहा जाता है, क्योंकि अलग-अलग नेमस्पेसों में ही नाम के अलग-अलग अर्थ हो सकते हैं, प्रत्येक अपने नेमस्पेस के लिए उपयुक्त है।

नेमस्पेस की अन्य विशेषताएँ निम्नलिखित हैं:
 * नेमस्पेस में नाम वस्तुओं के साथ-साथ अवधारणाओं का प्रतिनिधित्व कर सकते हैं, नेमस्पेस प्राकृतिक भाषा, निर्मित भाषा, प्रस्तुते की तकनीकी शब्दावली, बोली, सामाजिक, या कृत्रिम भाषा (जैसे, प्रोग्रामिंग भाषा) हो सकती है।
 * जावा (प्रोग्रामिंग भाषा) में, नेमस्पेस में दिखाई देने वाले पहचानकर्ताओं का छोटा (स्थानीय) नाम होता है और नेमस्पेस के बाहर उपयोग के लिए अद्वितीय लंबा योग्य नाम होता है।
 * कुछ कंपाइलर्स (सी ++ जैसी भाषाओं के लिए) नाम मंगलिंग नामक प्रक्रिया में कंपाइलर में आंतरिक उपयोग के लिए नेमस्पेस और नामों को जोड़ते हैं।

साथ ही इसके सार भाषा तकनीकी उपयोग जैसा कि ऊपर वर्णित है, कुछ भाषाओं में अन्य उपयोगों के साथ स्पष्ट नाम स्थान नियंत्रण के लिए विशिष्ट कीवर्ड का उपयोग किया जाता है। नीचे C++ में नाम स्थान का उदाहरण दिया गया है:

कंप्यूटर-विज्ञान के विचार
कंप्यूटर विज्ञान में नाम स्थान (कभी-कभी नाम का सीमा भी कहा जाता है) अमूर्त कंटेनर या पर्यावरण है जो विशिष्ट पहचानकर्ताओं या प्रतीकों (अर्थात नाम) के तार्किक समूह को धारण करने के लिए बनाया गया है। नेमस्पेस में परिभाषित पहचानकर्ता केवल उस नेमस्पेस से जुड़ा होता है। ही पहचानकर्ता को कई नेमस्पेसों में स्वतंत्र रूप से परिभाषित किया जा सकता है। अर्थात्, नेमस्पेस में परिभाषित पहचानकर्ता का वही अर्थ हो सकता है या नहीं हो सकता है जो दूसरे नेमस्पेस में परिभाषित समान पहचानकर्ता के रूप में है। नेमस्पेसों का समर्थन करने वाली भाषाएं उन नियमों को निर्दिष्ट करती हैं जो निर्धारित करते हैं कि कौन सा नेमस्पेस पहचानकर्ता (इसकी परिभाषा नहीं) से संबंधित है।

इस अवधारणा को सादृश्य द्वारा चित्रित किया जा सकता है। कल्पना कीजिए कि दो कंपनियां, एक्स और वाई, प्रत्येक अपने कर्मचारियों को आईडी नंबर प्रदान करती हैं। X के पास ही आईडी नंबर वाले दो कर्मचारी नहीं होने चाहिए, और इसी प्रकार Y के लिए; किन्तु दोनों कंपनियों में ही आईडी नंबर का उपयोग करना कोई समस्या नहीं है। उदाहरण के लिए, यदि बिल कंपनी X के लिए काम करता है और जेन कंपनी Y के लिए काम करता है, तो उनमें से प्रत्येक के लिए कर्मचारी #123 होना कोई समस्या नहीं है। इस समानता में, आईडी नंबर पहचानकर्ता है, और कंपनी नेमस्पेस के रूप में कार्य करती है। यह ही पहचानकर्ता के लिए प्रत्येक नेमस्पेस में अलग व्यक्ति की पहचान करने में समस्या उत्पन्न नहीं करता है।

बड़े कंप्यूटर प्रोग्राम या दस्तावेजों में सैकड़ों या हजारों पहचानकर्ताओं का होना आम बात है। नेमस्पेस (या इसी प्रकार की तकनीक, #अनुसरण नेमस्पेस देखें) स्थानीय पहचानकर्ताओं को छिपाने के लिए तंत्र प्रदान करते हैं। वे तार्किक रूप से संबंधित पहचानकर्ताओं को संबंधित नेमस्पेसों में समूहीकृत करने का साधन प्रदान करते हैं, जिससे प्रणाली अधिक प्रतिरूपकता (प्रोग्रामिंग) बन जाता है।

डेटा भण्डारण उपकरण और कई आधुनिक प्रोग्रामिंग भाषाएं नेमस्पेसों का समर्थन करती हैं। भण्डारण उपकरण निर्देशिकाओं (या फ़ोल्डर्स) को नेमस्पेस के रूप में उपयोग करते हैं। यह दो फ़ाइलों को ही नाम के साथ उपकरण पर संग्रहीत करने की अनुमति देता है जब तक कि वे अलग-अलग निर्देशिकाओं में संग्रहीत हों। पायथन (प्रोग्रामिंग भाषा) (जैसे C++, Python (प्रोग्रामिंग भाषा)) में, नेमस्पेस का नामकरण करने वाले पहचानकर्ता स्वयं संलग्न नेमस्पेस से जुड़े होते हैं। इस प्रकार, इन भाषाओं में नेमस्पेस नेमस्पेस ट्री (डेटा स्ट्रक्चर) बनाते हुए नेस्ट कर सकते हैं। इस वृक्ष के मूल में अस्पष्ट वैश्विक नेमस्पेस है।

सी
C99 के बाद से C (प्रोग्रामिंग भाषा) में नेमस्पेस के रूप में अस्पष्ट संरचनाएं का उपयोग करना संभव है।

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

पहचानकर्ता जिन्हें स्पष्ट रूप से किसी नेमस्पेस में घोषित नहीं किया जाता है, उन्हें वैश्विक नेमस्पेस में माना जाता है। इन पहचानकर्ताओं का उपयोग ठीक उसी प्रकार किया जा सकता है जैसे वे घोषित किए गए हैं, या, चूंकि वैश्विक नाम स्थान का नाम नहीं है, नेमस्पेस विनिर्देशक  उपसर्ग किया जा सकता है। उदाहरण के लिए,   को   भी लिखा जा सकता है।

सी ++ में नेमस्पेस रिज़ॉल्यूशन पदानुक्रमित है। इसका अर्थ है कि काल्पनिक नाम स्थान के अन्दर, पहचानकर्ता   का अर्थ है  को संदर्भित करता है। यदि   उपस्थित नहीं है, तो यह   को संदर्भित करता है यदि न तो   और न    उपस्थित है, तो    को संदर्भित करता है, जो वैश्विक नाम स्थान में एक पहचानकर्ता है।

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

जावा
जावा (प्रोग्रामिंग भाषा) में, नेमस्पेस का विचार जावा पैकेज में सन्निहित है। सभी कोड पैकेज के अंतर्गत आते हैं, चूँकि उस पैकेज को स्पष्ट रूप से नाम देने की आवश्यकता नहीं है। उदाहरण के लिए उपयुक्त पहचानकर्ता से पहले पैकेज नाम को उपसर्ग करके अन्य पैकेजों से कोड का उपयोग किया जाता है, उदाहरण के लिए  में   को   (इसे पूरी तरह योग्य नाम के रूप में जाना जाता है) के रूप में संदर्भित किया जा सकता है। सी ++ की तरह, जावा संरचना प्रदान करता है जो पैकेज नाम  टाइप करने के लिए अनावश्यक बनाता है। चूँकि, कुछ विशेषताओं (जैसे प्रतिबिंब (कंप्यूटर विज्ञान)) के लिए प्रोग्रामर को पूरी तरह से योग्य नाम का उपयोग करने की आवश्यकता होती है।

सी ++ के विपरीत, जावा में नेमस्पेस श्रेणीबद्ध नहीं हैं जहां तक ​​​​भाषा के वाक्य-विन्यास का संबंध है। चूँकि, संकुल को पदानुक्रमित विधि से नामित किया गया है। उदाहरण के लिए, से प्रारंभ होने वाले सभी पैकेज  जावा मंच का हिस्सा हैं—पैकेज  भाषा के लिए कक्षाएं कोर सम्मिलित हैं, और  विशेष रूप से प्रतिबिंब से संबंधित मुख्य वर्ग सम्मिलित हैं।

जावा (और एडा (प्रोग्रामिंग भाषा) में, नेमस्पेस/पैकेज कोड की सिमेंटिक श्रेणियों को व्यक्त करते हैं। उदाहरण के लिए, सी # में,  प्रणाली (.NET फ्रेमवर्क) द्वारा प्रदान किया गया कोड सम्मिलित है। ये श्रेणियां कितनी विशिष्ट हैं और भाषा से भाषा में पदानुक्रम कितने गहरे हैं।

फ़ंक्शन (प्रोग्रामिंग) और क्लास (कंप्यूटर साइंस) स्कोप्स (प्रोग्रामिंग) को अंतर्निहित नेमस्पेस के रूप में देखा जा सकता है जो कि दृश्यता, पहुंच और वस्तु जीवनकाल के साथ अटूट रूप से जुड़ा हुआ है।

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

पायथन
पायथन (प्रोग्रामिंग भाषा) में, नेमस्पेस को अलग-अलग मॉड्यूल द्वारा परिभाषित किया जाता है, और चूंकि मॉड्यूल को पदानुक्रमित पैकेजों में समाहित किया जा सकता है, तो नेमस्पेस भी पदानुक्रमित होते हैं। सामान्य तौर पर जब मॉड्यूल आयात किया जाता है तो मॉड्यूल में परिभाषित नाम उस मॉड्यूल के नेमस्पेस के माध्यम से परिभाषित किए जाते हैं, और पूरी तरह से योग्य नाम का उपयोग कर कॉलिंग मॉड्यूल से अभिगम किए जाते हैं।  स्टेटमेंट का उपयोग प्रासंगिक नामों को सीधे कॉलिंग मॉड्यूल के नेमस्पेस में सम्मिलित करने के लिए किया जा सकता है, और उन नामों को कॉलिंग मॉड्यूल से योग्य नाम के बिना अभिगम किया जा सकता है: चूंकि यह सीधे नामों का आयात करता है (योग्यता के बिना) यह वर्तमान में नामों को बिना किसी चेतावनी के अधिलेखित कर सकता है।

कथन का विशेष रूप  है, जो नामित पैकेज में परिभाषित सभी नामों को सीधे कॉलिंग मॉड्यूल के नेमस्पेस में आयात करता है। आयात के इस रूप का उपयोग, चूंकि भाषा के अन्दर समर्थित है, सामान्यतः हतोत्साहित किया जाता है क्योंकि यह कॉलिंग मॉड्यूल के नाम स्थान को प्रदूषित करता है और नाम की अव्यवस्था की स्थिति में पहले से परिभाषित नामों को अधिलेखित कर देगा।

पायथन भी समर्थन करता है  कॉलिंग मॉड्यूल द्वारा उपयोग के लिए उपनाम या वैकल्पिक नाम प्रदान करने के विधियों के रूप में:

एक्सएमएल नेमस्पेस
एक्सएमएल में, एक्सएमएल नेमस्पेस विनिर्देश प्रोग्रामिंग भाषाओं में नेमस्पेस की भूमिका के समान, एक्सएमएल दस्तावेज़ में तत्वों और विशेषताओं के नामों को अद्वितीय बनाने में सक्षम बनाता है। एक्सएमएल नेमस्पेस का उपयोग करते हुए, एक्सएमएल दस्तावेज़ों में से अधिक एक्सएमएल शब्दावली से तत्व या विशेषता नाम सम्मिलित हो सकते हैं।

पीएचपी
नेमस्पेस को संस्करण 5.3 के बाद से पीएचपी में प्रस्तुत किया गया था। कक्षाओं, कार्यों और चरों के नामकरण टकराव से बचा जा सकता है। पीएचपी में, नेमस्पेस को नेमस्पेस खंड के साथ परिभाषित किया गया है। हम निम्नलिखित विभिन्न विधियों से पीएचपी नेमस्पेस का संदर्भ दे सकते हैं:

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

इस तकनीक में कई कमियां हैं:
 * यह नेस्टेड नेमस्पेस के लिए अच्छी तरह से स्केल नहीं करता है; पहचानकर्ता अत्यधिक लंबे हो जाते हैं क्योंकि पहचानकर्ताओं के सभी उपयोग पूरी तरह से नेमस्पेस-योग्य होने चाहिए।
 * व्यक्ति या संगठन असंगत नामकरण परंपराओं का उपयोग कर सकते हैं, संभावित रूप से अवांछित अस्पष्टता का परिचय दे सकते हैं।
 * पहचानकर्ताओं के समूहों पर कंपाउंड या क्वेरी-आधारित संचालन, नेमस्पेसों के आधार पर, जिसमें वे घोषित किए गए हैं, बोझिल या अक्षम्य हैं।
 * प्रतिबंधित पहचानकर्ता लंबाई वाली भाषाओं में, उपसर्गों का उपयोग उन वर्णों की संख्या को सीमित करता है जिनका उपयोग यह पहचानने के लिए किया जा सकता है कि फ़ंक्शन क्या करता है। मूल रूप से फोरट्रान में लिखे गए पैकेजों के लिए यह विशेष समस्या है, जो प्रति पहचानकर्ता केवल 6 वर्णों की प्रस्तुति करता है। उदाहरण के लिए, ब्लास फ़ंक्शन का नाम  फ़ंक्शन दर्शाता है कि यह डबल-परिशुद्धता संख्या (डी) और सामान्य मैट्रिक्स (जीई) पर संचालित होता है, और केवल अंतिम दो अक्षर दिखाते हैं कि यह वास्तव में क्या करता है: मैट्रिक्स-मैट्रिक्स गुणन (एमएम)।

कई फायदे हैं:
 * स्रोत-कोड फ़ाइलों में नामों का पता लगाने के लिए किसी विशेष सॉफ़्टवेयर टूल की आवश्यकता नहीं होती है। ग्रेप की तरह साधारण कार्यक्रम पर्याप्त है।
 * कोई नेमस्पेस नाम विरोध नहीं है।
 * नाम-परेशान करने की कोई आवश्यकता नहीं है, और इस प्रकार संभावित असंगति की कोई समस्या नहीं है।

यह भी देखें

 * 11 अंकों का वितरण बिंदु ज़िप कोड
 * द्विपद नामकरण (जीव विज्ञान में जीनस-प्रजातियां)
 * रासायनिक नामकरण
 * डेवी दशमलव वर्गीकरण
 * डिजिटल ऑब्जेक्ट पहचानकर्ता
 * डोमेन की नामांकन प्रणाली
 * पहचान (ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग)
 * लाइब्रेरी ऑफ कांग्रेस क्लासिफिकेशन
 * स्टार कैटलॉग और खगोलीय नामकरण परंपराएं
 * एक्सएमएल नेमस्पेस
 * तर्क-निर्भर नाम लुकअप