18 पॉइंट द्वारा GN⁺ 2025-02-25 | 2 टिप्पणियां | WhatsApp पर शेयर करें

दर्शन (Philosophy)

  • हम dwm, dmenu, st जैसे उच्च-गुणवत्ता वाले सॉफ़्टवेयर विकसित करने वाला एक समुदाय हैं, और सरलता, स्पष्टता, मितव्ययिता (Simplicity, Clarity, Frugality) को अपने मूल मूल्यों के रूप में मानते हैं
  • हम IT उद्योग में व्यापक रूप से फैले अनावश्यक रूप से जटिल, त्रुटिपूर्ण और धीमे सॉफ़्टवेयर की वास्तविकता का विरोध करते हैं
  • हमारे प्रोजेक्ट्स का लक्ष्य इस प्रवृत्ति के विपरीत जाना, और चीज़ों को सरल, न्यूनतम तथा उपयोग में आसान बनाए रखना है
  • हमारे प्रोजेक्ट्स का लक्ष्य-समूह अनुभवी कंप्यूटर उपयोगकर्ता और विशेषज्ञ हैं
    • हमारा मानना है कि अधिकांश व्यावसायिक सॉफ़्टवेयर और ज़्यादातर open source प्रोजेक्ट्स ग़ैर-विशेषज्ञों और सामान्य उपयोगकर्ताओं के लिए बनाए जाते हैं, इसलिए अनुभवी उपयोगकर्ताओं की उपेक्षा होती है
    • इसके विपरीत, हम मानते हैं कि अनुभवी उपयोगकर्ताओं का बाज़ार लगातार बढ़ रहा है, और उन्नत उपयोगकर्ता अपने काम करने के तरीके के अनुसार सर्वोत्तम समाधान खोज सकते हैं
  • सरल और सुरुचिपूर्ण सॉफ़्टवेयर डिज़ाइन करना कहीं अधिक कठिन है
    • लेकिन विश्वसनीयता और रखरखाव के लिए यह कीमत चुकानी ही पड़ती है
    • minimalism बनाए रखने से तर्कसंगत और हासिल किए जा सकने वाले लक्ष्य निर्धारित किए जा सकते हैं
    • हम minimalism और स्पष्टता बनाए रखने का प्रयास करते हैं

घोषणापत्र (Manifest)

  • कई डेवलपर्स लंबा कोड लिखने को उपलब्धि समझने की भूल करते हैं
    • लेकिन सिर्फ़ कोड की मात्रा अधिक होने से सॉफ़्टवेयर की गुणवत्ता बेहतर हो ही जाए, ऐसा नहीं है
    • आगे बढ़ते जाने पर ऐसा लग सकता है कि कौशल बढ़ रहा है, लेकिन यह केवल भ्रम है
  • कई डेवलपर्स कोड की गुणवत्ता की परवाह नहीं करते और केवल इस बात से संतुष्ट हो जाते हैं कि कुछ चल रहा है और मानो समस्या हल हो गई हो
    • यदि यह तरीका जारी रहे, तो समय के साथ बहुत बड़ी मात्रा में कोड, पूरी तरह टूटी हुई कोड संरचना, और खामियों से भरी सिस्टम डिज़ाइन बचती है
    • इसका कारण विकास प्रक्रिया में वैचारिक स्पष्टता और अखंडता की कमी है
  • कोड की जटिलता अक्षम और असंगत सॉफ़्टवेयर को जन्म देने का मूल कारण है
    • जटिल कोड के कारण performance में गिरावट, resource की बर्बादी और security vulnerabilities पैदा होती हैं
    • इसका एकमात्र समाधान पूरे प्रोजेक्ट को छोड़कर उसे शुरुआत से फिर से लिखना है
  • समस्या यह है कि उच्च-गुणवत्ता वाला code rewrite लगभग कभी नहीं होता
    • कई डेवलपर्स कोड की मात्रा पर गर्व करते हैं, और यह भ्रम पाल लेते हैं कि वे जटिलता को समझ चुके हैं, इसलिए rewrite की ज़रूरत नहीं है
    • वे खुद को प्रतिभाशाली समझते हैं, और जटिल सॉफ़्टवेयर को आदर्श लक्ष्य मान बैठते हैं
  • महान विचार सरलता है। महान सॉफ़्टवेयर भी सरलता है
    • सरलता Unix दर्शन का केंद्र है
    • जितनी अधिक code lines हटाई जाती हैं, उतनी ही बड़ी प्रगति होती है; कोड जितना घटता है, डेवलपर उतना ही अधिक कुशल होता है और सॉफ़्टवेयर उतना ही बेहतर बनता है

2 टिप्पणियां

 
aer0700 2025-02-25

यह तो पूरी तरह जोश से भरा हुआ घोषणापत्र है hahaha शानदार है

 
GN⁺ 2025-02-25
Hacker News राय
  • Suckless के Stali Linux FAQ का मुझ पर बड़ा असर पड़ा था। उन्होंने Linux के लिए पूरी तरह statically linked user space बनाया था

    • इससे पहले मैं Linux के "हर चीज़ के लिए shared libraries" वाले approach को स्वाभाविक मानता था
    • छोटे CLI tools बनाते समय, मैं distribution packages बनाता था या tarball का इस्तेमाल करके libraries सेटअप करता था
    • मुझे एहसास हुआ कि यह तरीका ज़रूरी नहीं है
    • तब से मैं जहाँ तक संभव हो static linking का इस्तेमाल करता हूँ, नहीं तो AppImages का इस्तेमाल करता हूँ
    • dynamic linking की भी ज़रूरत होती है, लेकिन मूल रूप से मुझे नहीं लगता कि software distribution को जटिल होने की ज़रूरत है
  • dwm और dmenu की वजह से मेरा desktop 10 साल से लगभग बदला नहीं है। minimalism से मिलने वाली स्थिरता मुझे बहुत पसंद है

  • यह बात समझ में नहीं आती कि for loop में initial declaration का इस्तेमाल न करने को क्यों कहा जाता है। variadic macros ठीक हैं, लेकिन for(int i = 0...) को बहुत जटिल मानना समझ से बाहर है

  • मैं minimalism को अपना सकता हूँ, लेकिन हर चीज़ के लिए इसकी ज़रूरत नहीं होती

  • Suckless की coding philosophy खूबसूरत है। काश हर software इसी philosophy से लिखा जाता। लेकिन window manager और X-menu इसके सबसे अच्छे उदाहरण नहीं हैं

  • community का drama बेवकूफ़ी है। मैं software philosophy से प्यार करता हूँ इसलिए ये tools इस्तेमाल करता हूँ। लेखक की निजी मान्यताओं या राजनीतिक झुकाव से मुझे फ़र्क नहीं पड़ता

  • कई terminals को परखने के बाद, मैं फिर से st fork पर लौट आया। इसे कई सालों से इस्तेमाल कर रहा हूँ, और यह stable है और bug-free है

  • यह philosophy परफ़ेक्ट नहीं है, लेकिन reliable software बनाने के लिए सबसे नज़दीकी approach है। complexity को काबू में रखना सबसे मुश्किल और सबसे ज़रूरी काम है

  • surf, WebKit2/GTK+ पर आधारित एक simple web browser है। यह websites दिखा सकता है और links follow कर सकता है

  • dwm को source code edit करके customize किया जाता है, इसलिए binary packages बनाना बेमानी है। इसका user base छोटा और elitist है

  • Suckless तो चाहिए, लेकिन asynchronous और सब कुछ कर सकने वाला software भी चाहिए। मैं ऐसे apps ढूंढ रहा हूँ जो कई apps के single-threaded सहयोग वाले तरीके से काम करें

  • इनका मौजूद होना अच्छा है। ये जो करते हैं उसके लिए मैं आभारी हूँ। लेकिन मुझे थोड़ा-बहुत असुविधाजनक software पसंद है। BSPWM का configuration ठीक-ठाक है, लेकिन C code को फिर से compile करना हद से ज़्यादा है