न्यूनतमवाद (कंप्यूटिंग)

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

इतिहास
1970 के दशक के अंत और 1980 के दशक की शुरुआत में, प्रोग्रामर सामान्य प्लेटफार्मों के अपेक्षाकृत महंगे और सीमित संसाधन (कंप्यूटर विज्ञान) के दायरे में काम करते थे। आठ या सोलह किलोबाइट रैंडम एक्सेस मेमोरी  आम थी; 64 किलोबाइट को एक विशाल राशि माना जाता था और  निजी कंप्यूटर  की शुरुआती पीढ़ियों के दौरान 8 बिट सीपीयू के लिए यह संपूर्ण पता स्थान पहुंच योग्य था। सबसे आम भंडारण माध्यम 5.25 इंच फ्लॉपी डिस्क थी जो 88 से 170 किलोबाइट तक रखती थी। पाँच से दस मेगाबाइट क्षमता वाली हार्ड ड्राइव की कीमत हजारों डॉलर होती है।

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

एक प्रोग्राम का एक उदाहरण जिसकी सिस्टम आवश्यकताओं ने एक बार इसे भारी प्रतिष्ठा दी थी, वह जीएनयू एमएसीएस टेक्स्ट एडिटर है, जिसने उस युग में आठ मेगाबाइट और लगातार स्वैपिंग का संक्षिप्त नाम प्राप्त किया था जब 8 मेगाबाइट बहुत अधिक रैम थी। आज, Emacs का मुख्य रूप से पाठ्य डेटा बफ़र-आधारित प्रतिमान डेस्कटॉप रूपक GUI एकीकृत विकास वातावरण की तुलना में बहुत कम संसाधनों का उपयोग करता है, जिसमें Eclipse (सॉफ़्टवेयर) या Netbeans जैसी तुलनीय सुविधाएँ होती हैं। 2002 के अंतर्राष्ट्रीय लिस्प सम्मेलन में एक भाषण में, रिचर्ड स्टॉलमैन ने संकेत दिया कि लिस्प (प्रोग्रामिंग भाषा) के साथ उनके अनुभवों और उस समय के लो-एंड मिनी कंप्यूटरों के सिस्टम विनिर्देशों के आधार पर, जीएनयू और एमएसीएस के उनके विकास में अतिसूक्ष्मवाद एक चिंता का विषय था। 1980 और 1990 के दशक में जैसे-जैसे आम डेस्कटॉप सॉफ्टवेयर और ऑपरेटिंग सिस्टम की क्षमताएं और सिस्टम आवश्यकताएं बढ़ती गईं, और जैसे-जैसे सॉफ्टवेयर विकास पर परस्पर विरोधी, सनकी सॉफ्टवेयर विकास पद्धतियों का समर्थन करने वाली टीमों का वर्चस्व होता गया, कुछ डेवलपर्स ने एक दर्शन के रूप में अतिसूक्ष्मवाद को अपनाया और अपने कार्यक्रमों को सीमित करने का फैसला किया। एक पूर्व निर्धारित आकार या दायरा। सॉफ़्टवेयर अनुकूलन पर ध्यान केंद्रित करने से न्यूनतम सॉफ़्टवेयर प्राप्त हो सकता है, क्योंकि प्रोग्रामर गति निष्पादन के लिए अपने प्रोग्राम द्वारा किए जाने वाले संचालन की संख्या कम कर देते हैं। 21वीं सदी की शुरुआत में, कंप्यूटिंग में नए विकास ने अतिसूक्ष्मवाद को सबसे आगे ला दिया है। जिसे पीसी के बाद का युग कहा गया है, उसमें केवल सामान्य कंप्यूटिंग कार्यों को करने के लिए हाई-एंड पर्सनल कंप्यूटर खरीदना आवश्यक नहीं रह गया है। मोबाइल कंप्यूटिंग डिवाइस, जैसे स्मार्टफोन्स, टेबलेट कंप्यूटर, अपने कंप्यूटर और  कंप्यूटर प्लग करें  में अक्सर छोटी मेमोरी क्षमता, कम-सक्षम ग्राफिक्स सबसिस्टम और धीमे प्रोसेसर होते हैं, जब पर्सनल कंप्यूटर की तुलना में उन्हें बदलने की उम्मीद की जाती है। इसके अलावा,  अल्फा सम्मिश्रण  जैसे ग्राफिक्स प्रभावों का भारी उपयोग एक फ्लैट यूआई की तुलना में बैटरी को तेजी से खत्म करता है। इन उपकरणों की बढ़ती लोकप्रियता ने अतिसूक्ष्मवाद को एक महत्वपूर्ण डिज़ाइन चिंता बना दिया है।

Google के Google Chrome और ChromeOS को अक्सर न्यूनतम डिज़ाइन के उदाहरण के रूप में उद्धृत किया जाता है। विंडोज 8 में, माइक्रोसॉफ्ट ने सरल, चौकोर मेट्रो (डिज़ाइन भाषा) उपस्थिति के पक्ष में ग्राफिक्स-सघन विंडोज़ एयरो यूजर इंटरफेस को छोड़ने का फैसला किया, जिसके लिए कम सिस्टम संसाधनों की आवश्यकता थी। यह परिवर्तन आंशिक रूप से छोटे, बैटरी चालित उपकरणों के उदय और बिजली बचाने की आवश्यकता के कारण किया गया था।   Apple Inc. के iOS संस्करण 7 में उपयोगकर्ता अनुभव कारणों से इसी तरह के बदलाव किए गए हैं।

उपयोग
डेवलपर्स संभावित रूप से उपयोगकर्ता को भ्रमित करने वाले बटन (कंप्यूटिंग) और संवाद बॉक्स को हटाकर उपयोगकर्ता इंटरफ़ेस को यथासंभव सरल बना सकते हैं। Minimalism का उपयोग कभी-कभी Minimalism में किया जाता है, विशेष रूप से हार्डवेयर डिवाइस या थीम (कंप्यूटिंग) के औद्योगिक डिजाइन में।

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

कोड गोल्फ के प्रोग्रामिंग शौक का परिणाम न्यूनतम सॉफ्टवेयर है, लेकिन ये आम तौर पर अभ्यास या कोड कविता हैं, प्रयोग करने योग्य एप्लिकेशन सॉफ़्टवेयर नहीं।

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

यह भी देखें

 * कोड ब्लोट
 * कोड रीफैक्टरिंग
 * संक्षिप्तता: संक्षिप्त, सारगर्भित।
 * अपने आप को मत दोहराओ
 * अनवरत वृद्धि
 * चुंबन सिद्धांत
 * हल्के वजन वाला लिनक्स वितरण
 * मंटजिंग
 * पेरेटो सिद्धांत 80:20 नियम
 * कम से कम शक्ति का नियम
 * सॉफ़्टवेयर ब्लोट
 * यूनिक्स दर्शन
 * विर्थ का नियम
 * बुरा ही अच्छा है


 * ज़विंस्की का सॉफ्टवेयर आवरण का नियम
 * ग्रीनब्राउज़र