जैसा कि PostgreSQL हाथी जारी है
एक और रिलीज की ओर बढ़ रहा है, मैं काफी सोच रहा हूं
सॉफ्टवेयर के उपयोगकर्ताओं की भूमिका के बारे में इसका यूजर इंटरफेस
डिजाइन। आज मैंने कुछ ऐसा प्रस्तावित किया जो डेटाबेस पैरामीटर बनाता है
लोगों को इसके बारे में चिंता करना पड़ता था, और यह बिल्कुल स्पष्ट नहीं था
कैसे सेट किया जाए, और इसके मूल्य को काफी हद तक स्वचालित बनाता है। यह एक सुंदर
आगे का स्पष्ट बदलाव है; उपयोगकर्ता नाराज थे, अच्छा डिफ़ॉल्ट व्यवहार
स्थापित किया गया था, और उस डिफ़ॉल्ट व्यवहार को पैच के रूप में सुझाया गया था। अगर इसे लागू किया जाता है, तो मैं किसी ऐसे व्यक्ति को पाकर चौंक जाऊंगा जो इसे एक बुरा
निर्णय
इसी तरह की चर्चा हुई है
डेटाबेस चौकियों के आसपास यूजर इंटरफेस को फिर से कैसे बनाया जाए। ठीक
अब, जिस गति से चेकपॉइंट द्वारा डिस्क पर डेटा लिखा जाता है
उपयोगकर्ता द्वारा निर्दिष्ट तीन मानों से प्रभावित होता है। इनके बीच बातचीत
काफी अच्छी तरह से प्रलेखित है, हालांकि इस तरह से
जटिलता को दर्शाता है, और कुछ उपयोगकर्ताओं को यह व्यवहार मिलता है जो यह देता है
अच्छा प्रदर्शन करता है। यह बहुत संभव है कि सामान्य उपयोगकर्ता के लिए चीजों को
बेहतर बनाने के लिए, वर्तमान कोड के सापेक्ष कुछ मामलों में प्रदर्शन
प्रतिगमन होने वाला है।
अलग-अलग कार्यान्वयन का उपयोग करने से
पैरामीटर के प्रभावी पैमाने में परिवर्तन होता है, जिसके परिणामस्वरूप सूक्ष्म समय परिवर्तन होंगे, और वे
आवश्यक रूप से सभी सकारात्मक नहीं होंगे। इस स्थिति में, सबसे अच्छा हम यह कर सकते हैं
एक विकास समुदाय के रूप में कॉल करने के लिए पर्याप्त बेंचमार्क डेटा एकत्र किया जाता है
। हो सकता है कि सबसे खराब स्थिति में सुधार
पहले के कार्यान्वयन की तुलना में चीजों को थोड़ा कम कर देता है। अगर
शुद्ध परिणाम को समायोजित करना आसान हो जाता है—कई
जटिल सेटिंग्स को एक के साथ बदलना, जैसा कि मैंने सुझाव दिया है
यहां सही दिशा हो सकती है-औसतन जो बेहतर होना चाहिए। कभी-कभी
एक बेहतर तरीका प्राप्त करने के लिए
पुराने तरीके को छोड़ना आवश्यक होता है।
लेकिन हम इस बात को लेकर चिंतित हैं
भ्रष्टाचार के बारे में जो उपयोगकर्ता भरोसा करते हैं।
पिछड़े संगतता पर एक बड़ा ध्यान केंद्रित है और केवल चीजों को इस तरह से जोड़ना है जो PostgreSQL विकास में पुराने दृष्टिकोण को नहीं हटाता है। कभी-कभी
कोई विकल्प नहीं होता है:आपको एक नए दृष्टिकोण की ओर बढ़ना होगा। ऐसे मामलों में
जहां पुराना और नया दोनों व्यवहार पूरी तरह से वैध हैं, कभी भी
एक स्पष्ट बहुमत की राय तक पहुंचना कठिन होता है। उपयोगकर्ता इंटरफ़ेस डिज़ाइन में अक्सर ऐसा
मामला होता है। हालांकि आप इसे
सही टूल और प्रोफ़ेशनल के साथ बेंचमार्क कर सकते हैं, लेकिन यह
ओपन-सोर्स समुदाय में शायद ही कभी किया जाता है। उस मिश्रण से समुदाय की आम सहमति प्राप्त करना
बहुत ही व्यक्तिगत राय कठिन है।
मुझे फिर से याद दिलाया गया था कि कैसे नहीं
एक डेवलपर के रूप में उपयोगकर्ता प्रतिक्रिया को आज ही कुछ अपडेट प्राप्त करके संभालना है
कैसे gnome में एक लंबे समय से कष्टप्रद प्रतिगमन के बारे में- टर्मिनल, मेरा नाममात्र
पसंदीदा कमांड लाइन टर्मिनल, कीबोर्ड इनपुट को संभालता है। समस्या
पहली बार एक बग रिपोर्ट में लगभग दो साल पहले, एक
उबंटू ट्रैकर पर, केवल अंतर्निहित
प्रतिगमन के स्रोत पर माइग्रेट करने के लिए:गनोम में से एक द्वारा जानबूझकर परिवर्तन
डेवलपर्स द्वारा अनुचित पाए गए व्यवहार को समाप्त करने के लिए। एक टिकट को ठीक करने का अनुरोध करते हुए खोला गया था, लेकिन इसमें शामिल सभी लोगों का अपमान करने से ज्यादा कुछ नहीं था।
मैं बाद के समय में काफी सक्रिय रहा हूं
टिकट के इतिहास में कि मुझे यहां अपना तर्क दोहराने की जरूरत नहीं है।
अनिवार्य रूप से, मैं बस यही चाहता था
पुराने व्यवहार पर वापस लौटने को संभव बनाने के लिए एक चेक-बॉक्स कॉन्फ़िगरेशन विकल्प। मैंने काम करना भी शुरू कर दिया
बस ऐसा करने पर, समाधान सुझाने के लिए कोड में खुदाई करना,
केवल यह महसूस करने के लिए कि ऐसा कोई तरीका नहीं था जिससे यह कभी भी विलय हो जाए। मेरे
सुझाव एक सामान्य आधार खोजने की कोशिश पर केंद्रित थे जो
सभी को खुश कर सके। यह बहुत स्पष्ट है कि डेवलपर्स इसके बारे में परवाह नहीं करते हैं
हालांकि। वे अपनी पसंद के अनुसार काम कर रहे हैं और
बाकी सभी को कोई फर्क नहीं पड़ता। मुझे बताया गया था कि इससे पहले "एक
कुछ सौ" शिकायतों को महत्वपूर्ण माना जाएगा
मेरे दिमाग में उलझन है, यह देखते हुए कि टर्मिनल में नियंत्रण कुंजी का उपयोग है
बिल्कुल सबसे लोकप्रिय चीज नहीं है . दसियों रिपोर्टें थीं,
प्राप्त प्रत्येक शिकायत पसंदीदा
समाधान में एकीकृत थी, और असहमत होने वाला एकमात्र व्यक्ति उनके
डेवलपर्स में से एक था।
हमें लोगों से कुछ शिकायतें मिलती हैं कि
पोस्टग्रेएसक्यूएल समुदाय ऐसे डेवलपर्स से भरा हुआ है जो उपयोगकर्ताओं को केवल वही देना चाहते हैं जो वे चाहते हैं।
तकनीकी रूप से शुद्ध समाधान पसंद करते हैं।
यह कुछ हद तक सही है, जैसे कि
शो टेबल जोड़ने के लिए निरंतर प्रतिरोध अपने डेटाबेस में
डेटाबेस खोजने के वैकल्पिक तरीके के रूप में। लेकिन वह सारी चर्चा
विषयों पर हुई है जहां चर्चा बहुत मिश्रित राय देती है; बहुत से लोग
दोनों पक्षों में मजबूत राय रखते हैं। यदि प्रत्येक उपयोगकर्ता एक
डिज़ाइन के बारे में सहमत होता है, जो कि इस गनोम-टर्मिनल मुद्दे के मामले में है, तो अस्वीकार करना
उन विचारों को अभी भी सही नहीं होना डेवलपर की ऊंचाई है
अहंकार।
इस तरह की चीज़ों के अधिक दिलचस्प उदाहरणों में से एक
पिजिन आईएम सॉफ़्टवेयर के डेवलपर्स शामिल हैं
चैट विंडो टेक्स्ट आकार बदलने के तरीके को बदलना कार्यक्रम।
उपयोगकर्ताओं ने विद्रोह कर दिया। कुछ के साथ पुराने और नए व्यवहार का एक अच्छा उदाहरण है
CodingHorror पर विश्लेषण।
जिस तरह से डेवलपर्स ने उनकी प्रतिक्रिया को नजरअंदाज किया था, उससे हर कोई प्रभावित था
। उनकी धारणा थी
कि समुदाय प्रतिक्रिया डेवलपर्स के लिए अप्रासंगिक थी, क्योंकि
उन्हें लगा कि उनका डिज़ाइन पुराने वाले से बेहतर था
इस पर ध्यान दिए बिना
उपयोगकर्ता क्या सोचते हैं। किसी ने पुराने
व्यवहार को पुनर्स्थापित करने के लिए प्लग-इन लिखा था। और फिर एक आधिकारिक विभाजन हुआ। परिणामी फोर्क का मिशन
बयान
, जिसे मूल रूप से "फन पिजिन" कहा जाता था और अब
जिसे "कैरियर इंस्टेंट मैसेंजर" कहा जाता है, एक दिलचस्प रीड है कि कैसे
वे उपयोगकर्ता-केंद्रित महसूस करते हैं विकास काम करना चाहिए।
जेफ एटवुड की कोडिंगहॉरर चर्चा
इसमें से ऐसे चार तरीकों का सुझाव दिया गया है जो इस तरह के कांटे निकल सकते हैं। उन्होंने
एक बहुत ही महत्वपूर्ण बात छोड़ दी:संभावना है कि
सामुदायिक प्रयासों को विभाजित करने से, दोनों कांटे मर जाएंगे, और न ही विकल्पों के खिलाफ प्रतिस्पर्धा करने के लिए पर्याप्त
संसाधन होंगे। जबकि पिजिन अभी तक मरा नहीं है
अभी तक-यह "पर्दे के नीचे भागो और शामिल हो गया
ब्लीडिन 'कोइर अदृश्य" से कुछ दूरी पर है-वे पहले की तुलना में कम महत्वपूर्ण हैं
, और इस पूरी पराजय ने उनके कारण में मदद नहीं की।
उबंटू 9.10 से, कैननिकल ने पिजिन को प्राथमिक आईएम क्लाइंट के रूप में बदल दिया
उस बहुत लोकप्रिय लिनक्स वितरण के साथ शिपिंग। इसके बजाय उन्होंने इसके स्थान पर
GNOME Empathy को रखा। क्या यह तब भी होता अगर
पिजिन समुदाय खंडित नहीं होता और ऐसे बुरे
PR से जुड़ जाता? संभवतः, लेकिन इससे निश्चित रूप से उनके मामले में मदद नहीं मिली।
उसी तरह के उपयोगकर्ता-अज्ञानी
निर्णय एक लोकप्रिय GNOME प्रोजेक्ट के संबंध में किए जा रहे हैं जैसे
ग्नोम-टर्मिनल मनोरंजक है (मैं हंसता हूं बल्कि रोने के बजाय)
एक समान स्थिति की ओर बढ़ रहा है। दो महीने पहले यह घोषणा की गई थी कि उबंटू
अपनी अगली रिलीज में पूर्ण गनोम सॉफ्टवेयर स्टैक का उपयोग करने से काफी दूर जा रहा है। ध्यान से नोट करें कि वहां क्या हुआ था।
मार्क शटलवर्थ कह रहे हैं कि उन्होंने पेशेवर UI डिज़ाइनरों को काम पर रखा है, उन्हें काम पर रखा
यह पता लगाने के लिए कि डेस्कटॉप उपयोगकर्ता के लिए बेहतर काम करेगा
अनुभव, फिर परिणामों को प्रस्तुत किया गनोम समुदाय।
इस अत्यंत मूल्यवान कार्य को स्वीकार करने और कैनोनिकल को धन्यवाद देने के बजाय
उस शोध को करने के लिए, उन्होंने पर्याप्त मौलिक विचारों को खारिज कर दिया कि
कोई बीच का रास्ता संभव नहीं था। उबंटू अब एकता परियोजना की ओर एक बड़ा
आगे बढ़ रहा है, क्योंकि "जो हमारे
उपयोगकर्ता चाहते हैं" करने के लिए एकमात्र रास्ता बचा है। जब से मैं इस एक झुंझलाहट का सामना कर रहा हूं, उन वर्षों के दौरान GNOME
डेवलपर्स के साथ मेरी अपनी बातचीत के आधार पर, मार्क को मिली प्रतिक्रिया ने मुझे थोड़ा आश्चर्यचकित नहीं किया।
हम अभी भी उस बिंदु पर हैं जहां यह नहीं है
यह स्पष्ट है कि यह एकता विभाजन कैसे समाप्त होगा। मैं जो उम्मीद करता हूं वह है
कि यह पूरी चीज एक तरह की दोहरी विफलता की ओर ले जाने वाली है
स्थिति भी। दोहराए गए विकास का एक समूह होगा जो
पहले तो अपने आप कुछ भी उपयोगी नहीं बनाता है। शुरुआती
रिलीज़ का गुणवत्ता नियंत्रण भयानक होगा-इस सामग्री को ठीक होने में
हमेशा के लिए समय लगता है। और डेवलपर आधार को विभाजित करके, यह संभव है
काफी संभव है कि किसी भी समूह के पास पर्याप्त लोग नहीं होंगे
एक अच्छा काम करने के लिए, हम सभी को कई खराब लिनक्स डेस्कटॉप के साथ छोड़ दें
विकल्प (फिर से) एक एकीकृत के बजाय हर कोई
सुधार करने के लिए तैयार है। मैं अब तक उम्मीद कर रहा था कि जिस तरह से नोकिया में सुधार हो रहा है
क्यूटी के लिए लाइसेंस अंततः इस पर विचार कर सकता है कि क्यूटी+गनोम दोनों को कैसे खत्म किया जाए
। इसके बजाय लिनक्स अभी तक विकास प्राप्त कर रहा है
मिश्रण के शीर्ष पर परियोजना, और इसे सभी चीजों की एकता का नाम देना, एक भयानक मजाक है।
लेकिन मैं डेटाबेस के बारे में बात कर रहा था ... एक
PostgreSQL के बारे में दिलचस्प बात यह है कि इसमें कितने कांटे हैं
उत्पन्न। उदार बीएसडी लाइसेंस ने कई
क्लोज्ड-सोर्स वाणिज्यिक कांटे; मैं एक कंपनी में काम करता था जो
एक बनाती थी। Netezza इनमें से पहली थी जिसने अंततः एक गंभीर
व्यावसायिक उत्पादन किया। और ग्रीनप्लम डेटाबेस हाल ही में
ईएमसी द्वारा खरीदा गया था, यह एक बहुत ही सफल उत्पाद है। क्या नहीं हुआ
कोई भी ओपन-सोर्स फोर्क मुख्य वितरण के लिए व्यवहार्य प्रतिस्थापन बन रहा है
। जब तक आपके पास इतने बड़े संसाधन न हों
एक प्रमुख कंपनी इंजीनियरिंग को सहन कर सकती है, तब तक
समुदाय को आपके विचारों को स्वीकार करने के लिए प्रयास करना आसान है
और एक स्वतंत्र कार्यान्वयन करना उनमें से। सीधा समुदाय
PostgreSQL बस सही विकल्प बना रहता है।
PostgreSQL समुदाय बहुत बहस करता है,
और बहुत सी चीजों के प्रति शत्रुतापूर्ण है जो लोग मांगते हैं; हमारे पास एक
सूची भी है जिसे हम नहीं करना चाहते हैं।
ज्यादातर ऐसी चीजें हैं जो तकनीकी रूप से ठीक नहीं हैं
बिना कमियों के निर्माण करना संभव है जो अनुरोध करने वालों के लिए हमेशा स्पष्ट नहीं होती हैं
। यदि कोई उपयोगकर्ता इस बात के लिए मामला बनाता है कि कोई परिवर्तन डेटाबेस में किसी चीज़ के लिए एक बेहतर उपयोगकर्ता इंटरफ़ेस के लिए क्यों होगा
और
इससे कोई तकनीकी आपत्ति नहीं है कि यह समस्या क्यों पैदा करेगा,
उस परिवर्तन पर विचार किया जाता है। जो मैंने समुदाय में कभी नहीं देखा है वह है
कोई भी डेवलपर जो एक सर्वसम्मत, स्पष्ट उपयोगकर्ता
वरीयता के विरुद्ध खड़ा है-जहां वह विकल्प बिना किसी
डाउनसाइड के उपलब्ध कराया जा सकता है-सिर्फ इसलिए कि वे इसे इस तरह पसंद नहीं है। अगर आप
एक ओपन सोर्स प्रोजेक्ट के डेवलपर हैं, जहां भटक रहे हैं
विनम्रता को बुरी तरह से कुचल दिया है, तो आश्चर्यचकित न हों अगर आपके उपयोगकर्ता
फोर्क करने के लिए पर्याप्त क्रोध करेंगे। और इन दिनों में से एक, आपको पता चल सकता है कि
कांटे या पुन:कार्यान्वयन जो इस बात पर ध्यान देते हैं कि लोग क्या चाहते हैं
वास्तव में आपको विस्थापित कर देंगे।