8 पॉइंट द्वारा GN⁺ 2023-12-19 | 1 टिप्पणियां | WhatsApp पर शेयर करें

प्रोग्रामर की खुशी का पीछा करना

  • Ruby एक ऐसी भाषा है जो प्रोग्रामर की खुशी को प्राथमिकता देती है, और इसी कारण इसे अक्सर दूसरी communities द्वारा मज़ाक का विषय भी बनाया जाता है.
  • Ruby का उपयोग करना आनंद देता है, और यह इसकी language, gems ecosystem, और पूरी community में गहराई से समाया हुआ मूल्य है.
  • Ruby code लिखते समय, इसके खराब हिस्सों में भी, आनंद महसूस होता है.

अभिव्यक्तिशीलता को बढ़ावा देना

  • Ruby शायद धरती पर सबसे अधिक अभिव्यक्तिशील programming language है.
  • इसके metaprogramming features और सांस्कृतिक मुहावरों के जरिए प्रोग्रामर ऐसा code लिख सकते हैं जो उनके इरादे को स्पष्ट रूप से व्यक्त करे.
  • उदाहरण के लिए, RSpec का DSL उस चीज़ को लगभग वैसे पढ़ने योग्य बनाता है जैसे कोई इंसान बोल रहा हो, जिसे test किया जाना है.

एक ऐसी भाषा जो मानो सिर्फ मेरे लिए बनी हो

  • कई Ruby developers को लगता है कि Ruby और Rails उनकी सोच के साथ बिल्कुल फिट बैठते हैं.
  • Method names और signatures का सहज रूप से अनुमान लगाया जा सकता है, और अगर गलत हो जाए तो arguments का क्रम बदलकर देखा जा सकता है.
  • Documentation पढ़ने से पहले ही intuition के आधार पर कुछ आज़माना वे जल्दी सीख लेते हैं.

Community और values

  • Ruby community इस बात को आकार देने में महत्वपूर्ण भूमिका निभाती है कि यह भाषा क्या है और इसे उपयोग करने का अनुभव कैसा लगता है.
  • Kent Beck ने कहा था, "software design मानव संबंधों का अभ्यास है", और यह बात community और values पर भी लागू होती है.
  • Ruby community स्वागत करने वाली, दयालु, और एक-दूसरे का समर्थन करने वाली अद्भुत समूह है.
  • Ruby की प्रमुख विशेषताओं में खुशी और community शामिल हैं, और यही इसकी असाधारण ताकत है.

GN⁺ की राय

  • Ruby भाषा की सबसे महत्वपूर्ण विशेषता यह है कि यह प्रोग्रामर की खुशी और expressive code लिखने की क्षमता को संभव बनाती है.
  • Ruby community की मजबूत एकजुटता और पारस्परिक सहयोग की संस्कृति इस भाषा का उपयोग करने वाले developers को गहरा गर्व और संतोष देती है.
  • यह लेख Ruby से प्यार करने वाले एक developer के नज़रिए से Ruby के आकर्षण को सामने लाता है, और यह दिखाकर रोचक और आकर्षक बनता है कि एक programming language केवल एक tool से बढ़कर community और culture भी बना सकती है.

1 टिप्पणियां

 
GN⁺ 2023-12-19
Hacker News की राय
  • Ruby भाषा की अभिव्यक्तिपूर्णता पर राय बंटी हुई है

    Ruby तब शानदार है जब आप उसके ecosystem के भीतर, या ecosystem जिन कामों की अपेक्षा करता है, वे कर रहे हों। लेकिन जैसे ही आप कुछ non-standard करने की कोशिश करते हैं, यह बहुत पेचीदा हो जाती है। हो सकता है कोई helper method कहीं 5 स्तर गहरी abstraction में परिभाषित हो, और कभी-कभी वह किसी library के metaprogramming का हिस्सा भी हो, इसलिए LSP भी उसे point नहीं कर पाता। Ruby ऐसा ecosystem है जो implicit चीज़ों का जश्न मनाता है, और यह कभी-कभी पागल कर देने वाला लगता है। तैयार हुआ code सुंदर और पढ़ने में अच्छा हो सकता है, लेकिन इससे सारी समस्याएँ हल नहीं हो जातीं.

  • developer experience के महत्व को मानते हुए भी यह राय कि Ruby सबसे बेहतर नहीं है

    मैं सहमत हूँ कि developer experience को कई programming languages और frameworks में कम आँका जाता है, लेकिन मुझे नहीं लगता कि इस मामले में Ruby सबसे आगे है। शुरुआत में syntax अच्छा लग सकता है, लेकिन type information की कमी और metaprogramming, Ruby को इस्तेमाल करना कठिन बना देते हैं। इसके अलावा programming language चुनते समय और भी चीज़ें देखनी होती हैं, जैसे runtime performance। शायद static typing की अनुपस्थिति और इन वजहों से Ruby का चलन कम हुआ है। व्यक्तिगत रूप से मुझे लगता है कि Kotlin programming languages में आदर्श संतुलन पर है। Kotlin संक्षिप्त और पढ़ने में आसान है, और world-class tooling support, static typing, JVM का बेहतरीन performance, और Java ecosystem की सारी सुविधाएँ देता है.

  • Ruby के प्रति लगाव जताते हुए भी Python को पसंद करने के कारण बताने वाली राय

    मुझे Ruby पसंद है, और मैं Python से भी ज़्यादा Ruby को पसंद करता हूँ। खासकर functional operations की chaining बहुत साफ़-सुथरी और अभिव्यक्तिपूर्ण लगती है। मुझे Java streams जैसी इसकी बातें पसंद हैं। library ecosystem भी शानदार है, और Python की तरह इसकी libraries बहुत व्यावहारिक हैं। लेकिन maintenance वाले काम के लिए मैं Python चुनता हूँ, और जहाँ performance की थोड़ी भी चिंता हो, वहाँ Java चुनता हूँ। Ruby और Python के बीच मैं gradual typing के अलग approach की वजह से लगातार Python चुनता हूँ। Python 3 में types को program का हिस्सा बनाया जा सकता है, लेकिन Ruby में types को अलग files में रखने की प्रवृत्ति है। यह ज़्यादातर libraries के लिए लगता है, और वैसा ही है जैसे JavaScript libraries साथ में TypeScript type files देती हैं। लेकिन व्यक्तिगत रूप से मैं types को सीधे इस्तेमाल करना चाहता हूँ। बेशक Sorbet नाम का tool है, लेकिन मुझे यह पसंद नहीं कि वह एक gem है और syntax का हिस्सा नहीं, बल्कि language के भीतर अलग तरह से काम करता है। मैंने इसे Stripe में अच्छी तरह काम करते देखा है, लेकिन व्यक्तिगत रूप से मुझे यह पसंद नहीं, और मुझे लगता है कि built-in type hinting वाला Python 3, Ruby की तुलना में types को लागू करना आसान बनाता है। मुझे Ruby बहुत पसंद है, लेकिन मैं चाहता हूँ कि type hinting वाला हिस्सा बेहतर हो.

  • अलग-अलग भाषाओं का अनुभव साझा करते हुए Ruby के प्रति कम पसंद जताने वाली राय

    मैंने कई भाषाएँ आज़माई हैं, और एक समय Rails का मुख्य रूप से इस्तेमाल करते हुए Ruby में गहराई से डूबा हुआ था। लेकिन Ruby शायद मेरी सबसे कम पसंदीदा भाषा है। Ruby को अनोखा बनाने वाली ज़्यादातर चीज़ें मुझे या तो functional आनंद के लिए F# की ओर ले जाती हैं, या रोमांच चाहिए तो C++ की ओर, या dynamic language चाहिए तो Scheme/Racket की ओर। मुझे जिज्ञासा है कि programming language की expressiveness के लिए कोई आम तौर पर स्वीकार की गई मात्रात्मक परिभाषा है या नहीं। यहाँ लेखक शायद expressiveness को natural language के करीब होने के बराबर मान रहा है। मेरे अनुभव में Ruby code लिखना आसान है, लेकिन अगर आप codebase और उसके idioms से परिचित नहीं हैं, तो उसे follow करना कठिन होता है। समझने के लिए ज़रूरी बहुत-सी जानकारी implicit context के ज़रिए दी जाती है.

  • Ruby के प्रति तीखी नापसंदगी जताते हुए भी यह बताने वाली राय कि वही अभी मुख्य भाषा है

    मैं पूरे जुनून से Ruby से नफरत करता हूँ, लेकिन फिलहाल यही मेरी मुख्य भाषा है। समस्या Ruby अपने आप में कम, और उसके ecosystem में आम पैटर्न ज़्यादा हैं। code sharing के लिए inheritance का इस्तेमाल, global mutable state का फैलाव, और metaprogramming का ज़रूरत से ज़्यादा इस्तेमाल—यही समस्याएँ हैं। ये सब language द्वारा मजबूर की गई बातें नहीं, बल्कि community में शायद ही कभी सवाल किए जाने वाले रिवाज़ हैं.

  • Ruby maintenance की कठिनाई पर अफसोस जताते हुए दूसरी भाषाओं की ओर जाने की कोशिश बताने वाली राय

    मुझे Ruby maintenance किसी दुःस्वप्न जैसा लगता है, और मैं उस नरक से बाहर निकलने की कोशिश कर रहा हूँ। निजी projects के लिए मुझे Ruby पसंद है, लेकिन जैसे ही दूसरे लोगों के साथ काम करना होता है, चीज़ें जल्दी बिखर जाती हैं, और तब Ruby का यह फायदा कि वह "आपके रास्ते में नहीं आती" खत्म हो जाता है। समस्या यह है कि code में local reasoning की क्षमता नष्ट हो जाती है.

  • Ruby से Rust में जाने का अनुभव साझा करते हुए Ruby के प्रति लगाव जताने वाली राय

    10 साल Ruby इस्तेमाल करने के बाद मैं 4 साल पहले Rust पर चला गया, और अब पीछे मुड़कर देखने का इरादा नहीं है। फिर भी Ruby के लिए मन में लगाव है। मुझे लगता है कि अच्छे type system के बिना अब काम नहीं कर सकता, और शायद Rust की आदत पड़ चुकी है। लेकिन Ruby की ताकतवर reflection सुविधाएँ याद आती हैं.

  • इस विडंबना की ओर इशारा करने वाली राय कि मज़ेदार programming languages में अक्सर job market छोटा होता है

    programming की विडंबनाओं में से एक यह है कि सबसे मज़ेदार programming languages का job market अक्सर सबसे छोटा होता है। अगर मैं पूरे दिन Elixir में programming कर पाता, तो programmer के रूप में मेरी नौकरी कहीं बेहतर होती, लेकिन TypeScript, Python और Java की तुलना में Elixir की jobs लगभग नहीं के बराबर हैं। Ruby इसमें एक अपवाद थी, लेकिन अब Rails आधारित लोगों की संख्या बहुत कम है, जबकि React और NextJS आधारित लोग ज़्यादा हो गए हैं। यह बात पूरे full-stack application market के बारे में है; systems के लिए Rust इस्तेमाल करने वालों या data/AI के लिए Python इस्तेमाल करने वालों के लिए तस्वीर अलग हो सकती है.

  • Ruby ecosystem और संस्कृति का programming पर असर रेखांकित करने वाली राय

    भाषा के बारे में बहुत चर्चा होती है, लेकिन Ruby ecosystem और उससे बनी संस्कृति ही वजह है कि लोग Ruby के साथ बने रहते हैं। लेख में भी यही बात कही गई है। Ruby के आसपास की programming community जितनी उत्साह बढ़ाने वाली और दयालु है, वैसी community मैंने अभी तक नहीं देखी.

  • Ruby का आनंद लेने वाले लेखक के प्रति सकारात्मक प्रतिक्रिया और निजी अनुभव साझा करने वाली राय

    यह देखकर खुशी होती है कि लेखक Ruby का आनंद ले रहा है, और Ruby का सीमित अनुभव रखने वाले व्यक्ति के रूप में ये उद्धरण खास तौर पर ध्यान खींचते हैं। यह महत्वपूर्ण है कि language इस्तेमाल करने में आनंददायक हो, कि अच्छी तरह लिखा गया Ruby code natural language की तरह पढ़ा जा सके, और जिस language में आप programming कर रहे हैं उसमें मान्यता महसूस होना कितना शक्तिशाली हो सकता है। मैं Kent Beck की इस बात से भी सहमत हूँ कि software design, human relationships का अभ्यास है। compiler, documentation, standard library, third-party libraries, package manager, framework, formatter, profiler आदि—language को support करने वाले ये सभी घटक खास तौर पर महत्वपूर्ण हैं.