- सॉफ़्टवेयर bloating वह बदलाव है जिसमें पहले एक फ्लॉपी में समा जाने वाले ऐप अब गीगाबाइट स्टोरेज और लंबे इंतज़ार की मांग करते हैं
- 1.44MB फ्लॉपी डिस्क कोई मज़ाकिया सीमा नहीं, बल्कि संयम का मानक है, और यह मान्यता है कि single-purpose टूल भी पर्याप्त रूप से छोटे बनाए जा सकते हैं
- छोटे सॉफ़्टवेयर का लक्ष्य तेज़ download, तुरंत launch, कम memory·CPU usage, लंबा battery time, और पुराने systems का support है
- केवल native का उपयोग करने, dependency bloating से बचने, और इस सिद्धांत पर ज़ोर दिया गया है कि हर code का अपना अस्तित्व-कारण होना चाहिए
- Floppy badge उन ऐप्स को दिया जाता है जिनका कुल download size 1.44MB से कम हो, और इसका मूल भाव nostalgia नहीं बल्कि हर byte को महत्व देने वाली निर्माण-दृष्टि है
छोटे सॉफ़्टवेयर के मानदंड
- सॉफ़्टवेयर bloating के कारण पहले एक single floppy disk में समा जाने वाले ऐप अब गीगाबाइट स्टोरेज, लंबे इंतज़ार और अत्यधिक धैर्य की मांग करने लगे हैं
- 1.44MB फ्लॉपी डिस्क को मज़ाकिया प्रतिबंध नहीं, बल्कि संयम के मानक के रूप में इस्तेमाल किया गया है
- अगर कभी पूरे business चलाने वाला सॉफ़्टवेयर इस क्षमता में समा सकता था, तो आज के focused single-purpose टूल भी पर्याप्त रूप से छोटे बनाए जा सकते हैं
- छोटे सॉफ़्टवेयर का लक्ष्य है कि वे जल्दी download हों, तुरंत चलें, और अनावश्यक loading को कम करें
- कम memory और CPU usage, लंबा battery time, और पुराने systems का support देकर यह उपयोगकर्ता की device का सम्मान करते हैं
- केवल native का उपयोग करना, dependency bloating से बचना, और यह सुनिश्चित करना कि हर code के होने का ठोस कारण हो
- जो सॉफ़्टवेयर एक काम को अच्छी तरह करता है, उसकी functionality अधिक केंद्रित होती है, bugs कम होते हैं, और वह अधिक समय तक टिक सकता है
मापने का तरीका और उद्देश्य
- Floppy badge उन ऐप्स को दिया जाता है जिनका कुल download size standard 3.5-inch floppy disk की capacity 1.44MB से कम हो
- डिस्क पर दिखाया गया आकार developer के distribution platform द्वारा रिपोर्ट किए गए universal binary size पर आधारित होता है
- वास्तविक device पर download होने वाला आकार इससे छोटा हो सकता है, क्योंकि platform thinning के जरिए केवल वही हिस्से भेजे जाते हैं जो उस विशेष hardware के लिए ज़रूरी हों
- मूल बात फ्लॉपी डिस्क के प्रति nostalgia नहीं, बल्कि उस निर्माण-दृष्टि में है जिसमें हर byte मायने रखता है, सीमाएँ रचनात्मकता पैदा करती हैं, और सॉफ़्टवेयर हल्का होना चाहिए
- संबंधित उदाहरण के रूप में 39KB आकार वाले पुरस्कार-विजेता गेम YOYOZO बनाने की कहानी का लिंक दिया गया है
1 टिप्पणियां
Lobste.rs की रायें
इसके उलट, portability के लिए static linking करें या Janet जैसी कम आम runtime वाली भाषा इस्तेमाल करें, तो यह सीमा आसानी से पार हो जाती है
मेरा प्रोजेक्ट Decker बाहरी dependencies कम करने की कोशिश करता है, लेकिन portability के लिए SDL और SDL_image पर निर्भर है और उन्हें साथ ship करता है। मौजूदा Apple Silicon release compressed रूप में 6MB है, जिनमें से लगभग 4.6MB SDL और SDL_image dylib हैं। Web build लगभग 0.5MB से शुरू होता है, इस मान्यता पर कि उपयोगकर्ता के पास पहले से एक पर्याप्त आधुनिक HTML5 browser है, लेकिन browser को भी शामिल करें तो dependency सैकड़ों MB की हो जाती है
उपयोगी applications और libraries की raw deck files अगर runtime पहले से मौजूद हो तो केवल कुछ दर्जन KB की हो सकती हैं। Love2d का भी हाल ऐसा ही है, जो SDL और कई built-in components के ऊपर चलता है, और compressed 10MB, uncompressed 25MB है। Love2d के ऊपर Lua scripts और vector graphics से कुछ दर्जन KB के उपयोगी apps बनाए जा सकते हैं, लेकिन फिर वही बात है: runtime पहले से होना चाहिए
अगर development resources असीमित हों, तो SDL dependency से बचना एक शानदार लक्ष्य है, लेकिन ज़्यादातर SDL-आधारित projects में installer से कुछ MB कम करने के बदले कम लोकप्रिय operating systems का support पूरी तरह छोड़ना पड़ सकता है। इसे bloat माना जाए या नहीं, यह नज़रिए पर निर्भर करेगा
पहले केवल text भी एक उचित विकल्प था, लेकिन आजकल ऐसा कम है। दिए गए motivations की सूची में वास्तविक raw binary size से सीधे जुड़ी केवल पहली बात है; बाकी ज़्यादा से ज़्यादा अलग तरह के अच्छे side benefits हैं
ऊपर से, वह website खुद भी 1,600-byte के manifesto को पहुँचाने के लिए लगभग 200,000 bytes इस्तेमाल करती है
https://cdn.fosstodon.org/media_attachments/files/…
आज के users को पता भी नहीं चलेगा कि download 1.44MB है, 2.88MB है या उससे बड़ा, और executable चलाते समय भी उन्हें कोई फर्क महसूस नहीं होगा
एक-floppy applications थे, लेकिन 80s-90s के ज़्यादातर गंभीर software कई disks में बाँटकर वितरित किए जाते थे। उदाहरण के लिए Microsoft Word v2.0 on 7 disks with 2 supplemental disks, Lotus 1-2-3 on 13 floppy disks, और Doom भी 4 floppy disks में आता था
एक floppy में फिट होना वाली सोच floppy युग में भी आम नहीं थी, और सब जानते थे कि बड़े software को कई disks में बाँटकर दिया जा सकता है