परिचय
नमस्ते सबको। मुझे आशा है कि आप सब अच्छे हैं। सितंबर में हमारा महीना काफी व्यस्त रहा। हमने साइट पर बहुत सारे नए सुधार और फीचर जारी किए हैं, जिनमें ज़्यादातर मेंटरिंग और उससे जुड़े फ्लो को बेहतर बनाने से जुड़े हैं। इसका नतीजा यह है कि अब हमें 4 हफ्ते पहले की तुलना में दोगुने मेंटर रिक्वेस्ट मिल रहे हैं, जो बहुत अच्छी बात है। अगर आपने अभी तक किसी मेंटर से अपना कोड रिव्यू नहीं करवाया है, तो ज़रूर करवाइए। सीखने का यह बहुत शानदार तरीका है। और अगर आप दूसरों की मदद करना चाहते हैं, तो कतारों में बहुत सारी रिक्वेस्ट हैं जिनमें आपकी मदद की ज़रूरत है। आप Contribute मेन्यू में Mentoring लिंक के ज़रिए मेंटर बनने के लिए साइन अप कर सकते हैं! हमने MySQL 5.6 से MySQL 8 पर एक बड़ा डेटाबेस अपडेट भी किया, जिसे मैंने रिकॉर्ड किया है और वह Insiders सेक्शन में उपलब्ध है। इसलिए अगर आप Insider हैं और अभी तक वह देखा नहीं है, तो ज़रूर देखिए!
तो चलिए, अब #12in23 की ओर बढ़ते हैं। सितंबर एक दिलचस्प महीना रहा, जिसमें हमने संक्षिप्त और कम शब्दों वाली भाषाओं को खंगाला। इस महीने हम उलटी दिशा में जा रहे हैं और कुछ बहुत बड़ी भाषाओं को देख रहे हैं। हम ऑब्जेक्ट ओरिएंटेड भाषाओं पर ध्यान दे रहे हैं, खास तौर पर C#, Crystal, Java, Pharo, Ruby और PowerShell पर। हम Pharo और Java दोनों पर पहले ही चर्चा कर चुके हैं, क्रमशः मई और अगस्त में। इसलिए इस वीडियो में हम उन्हें दोबारा नहीं समझाएँगे, लेकिन अगर आप उन भाषाओं के परिचय में रुचि रखते हैं, तो पिछले महीनों के वीडियो ज़रूर देखिए। लेकिन इस वीडियो में हम C#, Crystal, Ruby और PowerShell को समझेंगे, और हमेशा की तरह Erik हमें बताएँगे कि इन भाषाओं को दिलचस्प और खास क्या बनाता है।
बैज
हमेशा की तरह, आप इन भाषाओं में कोई भी 5 अभ्यास पूरे करके ऑब्जेक्ट ओरिएंटेड अक्टूबर बैज कमा सकते हैं। हमारे पास साल भर वाला बैज भी है, और मुझे पता है कि आपमें से कई लोग उसकी ओर काम कर रहे हैं। उसके लिए हमारे पास 5 फीचर्ड अभ्यास हैं जिन्हें आपको पूरा करना है। ये सभी ऐसे हैं जिन्हें OOP तरीके से हल करना अच्छी तरह फिट बैठता है। ये हैं:
- बाइनरी सर्च ट्री: बाइनरी ट्री में संख्याएँ डालिए और उन्हें खोजिए
- सर्कुलर बफर: एक ऐसी डेटा स्ट्रक्चर बनाइए जिसमें सब कुछ आपस में जुड़ा हो
- घड़ी: एक ऐसी घड़ी बनाइए जो तारीख के बिना समय संभालती है
- मैट्रिक्स: स्ट्रिंग के रूप में दिए गए मैट्रिक्स की पंक्तियाँ और स्तंभ लौटाइए
- सिंपल साइफर: एक सब्स्टिट्यूशन साइफर बनाइए
अवलोकन
C#
- Microsoft में Anders Hejlsberg ने 2000 में इसे विकसित किया
- भाषा और वर्चुअल मशीन के आधिकारिक स्पेसिफिकेशन मौजूद हैं। 2002 में यह आधिकारिक ECMA मानक बनी और 2003 में ISO मानक
- कंपाइलर, .NET Framework (स्टैंडर्ड लाइब्रेरी) और Visual Studio (एडिटर) शुरू में बंद सोर्स थे, लेकिन 2014 में कंपाइलर और .NET Framework ओपन सोर्स कर दिए गए
- Java (जो इससे कुछ साल पहले आई थी) के साथ C# का बहुत सारा सिंटैक्स समान है, फिर भी C# उसकी हूबहू नकल नहीं थी। जैसे इसमें प्रॉपर्टी और वैल्यू टाइप का सपोर्ट था और चेक्ड एक्सेप्शन नहीं थे
- यह बाइटकोड में कंपाइल होती है, और .NET 7 से मशीन कोड में कंपाइलेशन का सपोर्ट भी है (जिसे अब भी बेहतर बनाया जा रहा है)
- इसका इस्तेमाल बहुत बड़े पैमाने पर सॉफ्टवेयर में होता है, वेबसाइटों से लेकर एम्बेडेड सिस्टम तक, और ऐप्स (Xamarin) से लेकर गेम्स (Unity) तक
Crystal
- Crystal को Ary Borenszweig (जिनका Exercism पर अकाउंट है), Juan Wajnerman और Brian Cardiff ने विकसित किया (शुरू में इसका नाम Joy था, लेकिन 3 दिन बाद इसे Crystal कर दिया गया :))
- इसे इस तरह डिज़ाइन किया गया कि इसमें Ruby की सुंदरता और उत्पादकता हो, साथ ही एक आधुनिक कंपाइल्ड भाषा की गति, दक्षता और टाइप सेफ्टी भी
- यह Manas संस्था द्वारा विकसित एक ओपन सोर्स भाषा है
- इसका वर्शन 1.0 साल 2021 में जारी हुआ
- यह LLVM का उपयोग करके मशीन कोड में कंपाइल होती है (Rust की तरह)
- इसका कंपाइलर शुरू में Ruby में लिखा गया था, लेकिन बाद में इसे सेल्फ-होस्टेड वर्शन में बदल दिया गया
- इसका इस्तेमाल ट्रक बनाने वाली कंपनी Nikola, Manas और कई और जगह होता है, ज़्यादातर वेबसाइटों के लिए, लेकिन क्लाउड सर्विसेज़, कमांड-लाइन ऐप्लिकेशन और स्क्रिप्ट के लिए भी
PowerShell
- Microsoft में Jeffrey Snover के नेतृत्व वाली एक टीम ने इसे बनाया और यह पहली बार 2006 में जारी हुआ
- इसका विकास Intel की वजह से शुरू हुआ। Intel अपनी KornShell स्क्रिप्ट्स को Sun RISC से किसी दूसरे प्लेटफॉर्म पर ले जाना चाहती थी, ताकि उनके CPU के विकास में मदद मिले। अंततः Intel ने कोई और प्लेटफॉर्म चुन लिया, लेकिन Microsoft अपने नए शेल PowerShell पर काम करता रहा, क्योंकि इससे Windows सिस्टम एडमिनिस्ट्रेशन को बेहतर बनाने का मौका मिलता था (जो उस समय खास अच्छा नहीं था और अक्सर GUI की ज़रूरत पड़ती थी)
- इसका सिंटैक्स KornShell से प्रेरित था, लेकिन PHP, Perl और कई और से भी
- पहला वर्शन सिर्फ .NET Framework पर चलता था, यानी सिर्फ Windows पर। लेकिन PowerShell 6.0 (जो 2018 में जारी हुआ) .NET Core पर चलता था, जो क्रॉस-प्लेटफॉर्म और ओपन सोर्स है
- इसका इस्तेमाल मुख्य रूप से सिस्टम एडमिनिस्ट्रेशन के लिए होता है, लेकिन CLI यूटिलिटी या दूसरे टूल के रैपर बनाने के लिए भी। हमने Exercism रेपो के साथ बड़े पैमाने पर काम करने के लिए इसका खूब इस्तेमाल किया है
Ruby
- इसे Yukihiro Matsumoto (यानी Matz) ने विकसित किया और यह पहली बार 1995 में जारी हुई
- Matz एक सही ऑब्जेक्ट ओरिएंटेड स्क्रिप्टिंग भाषा के साथ काम करना चाहते थे, लेकिन उन्हें मौजूदा विकल्प (जैसे Perl और Python) पसंद नहीं आए। इसलिए उन्होंने एक नई भाषा बनाई: Ruby
- Matz Ruby को मूल रूप से एक सरल Lisp भाषा बताते हैं, जिसमें Smalltalk जैसा ऑब्जेक्ट सिस्टम, हायर-ऑर्डर फंक्शन से प्रेरित ब्लॉक, और Perl जैसी व्यावहारिक उपयोगिता है
- यह आम तौर पर इंटरप्रेट की जाती है, लेकिन जस्ट-इन-टाइम तरीके से मशीन कोड में कंपाइल भी की जा सकती है
- आधिकारिक इंटरप्रेटर के अलावा और भी इम्प्लीमेंटेशन हैं, जैसे JRuby (जो JVM पर चलता है), Rubinius (जो LLVM का उपयोग करता है) और YJIT, एक जस्ट-इन-टाइम कंपाइलर जो आधिकारिक इंस्टॉलेशन पैकेज का हिस्सा है
- इसका इस्तेमाल ज़्यादातर वेबसाइटों में होता है (Ruby on Rails के ज़रिए), जैसे GitHub, Stripe, Shopify और कई और (Exercism और Exercism फोरम भी इनमें शामिल हैं!)। Ruby का इस्तेमाल ऑटोमेशन के लिए भी होता है
और प्रोग्रामिंग के दृष्टिकोण से ये कैसे अलग हैं?
ये सभी ऑब्जेक्ट ओरिएंटेड भाषाएँ हैं, हालाँकि सभी इसे एक ही तरीके से लागू नहीं करतीं। जैसे Crystal और Ruby मेथड कॉल करने के लिए Smalltalk के मैसेज-भेजने वाले मॉडल का उपयोग करती हैं।
C#
- स्ट्रॉन्ग और स्टैटिकली टाइप्ड
- यह इम्परेटिव और डिक्लेरेटिव पैराडाइम का भी सपोर्ट करती है और धीरे-धीरे और ज़्यादा फंक्शनल होती जा रही है
Crystal
- स्ट्रॉन्ग और स्टैटिकली टाइप्ड (Ruby के उलट)
- यह फंक्शनल और इम्परेटिव प्रोग्रामिंग का भी सपोर्ट करती है
PowerShell
- स्ट्रॉन्गली टाइप्ड
- यह इम्परेटिव, फंक्शनल और पाइपलाइन-आधारित प्रोग्रामिंग का भी सपोर्ट करती है
Ruby
- डायनामिकली टाइप्ड
- यह फंक्शनल और इम्परेटिव प्रोग्रामिंग का भी सपोर्ट करती है
इतना कहने के बाद, ये सभी भाषाएँ सबसे पहले ऑब्जेक्ट ओरिएंटेड भाषाएँ हैं।
इन भाषाओं को खास क्या बनाता है?
C#
- यह (लगभग) हर जगह चलती है, Xamarin के ज़रिए ऐप्स पर भी। शुरू में यह सिर्फ Windows पर चलती थी, जिससे Mono का जन्म हुआ। Mono, C# कंपाइलर और रनटाइम का एक मुफ्त और ओपन सोर्स इम्प्लीमेंटेशन था जो क्रॉस-प्लेटफॉर्म था। 2015 में .NET Core आया, जो पूरी तरह क्रॉस-प्लेटफॉर्म और ओपन सोर्स था।
- जनरल परपस: इसका इस्तेमाल लगभग किसी भी तरह के काम के लिए हो सकता है, ऐप्स, वेबसाइटों और गेम्स सहित
- एक्सप्रेसिव: C# के थोड़े से कोड से आप बहुत कुछ कर सकते हैं। खास तौर पर LINQ उत्पादकता बढ़ाने का शानदार ज़रिया है और इसके साथ काम करना बहुत मज़ेदार है
- बेहतरीन टूलिंग, दोनों IDE और बिल्ड सिस्टम जैसे दूसरे टूल के लिए। Visual Studio सिर्फ Windows पर चलता है, जबकि JetBrains Rider और VS Code क्रॉस-प्लेटफॉर्म हैं
- .NET Compiler Platform (जिसे अक्सर Roslyn कहा जाता है) C# कोड को पार्स करने, बदलने और जनरेट करने का शानदार तरीका है (हम इसका इस्तेमाल C# टेस्ट रनर, एनालाइज़र और रिप्रेज़ेंटर में खूब करते हैं)
- इसका डॉक्युमेंटेशन बहुत बड़ा, विस्तृत और अच्छी तरह लिखा हुआ है
- बड़ी कम्युनिटी: ब्लॉग, फोरम और बहुत कुछ सहित ढेरों संसाधन उपलब्ध हैं
Crystal
- सुंदर और पढ़ने में आसान सिंटैक्स, जिससे Crystal का कोड लिखना और पढ़ना आसान हो जाता है
- एक्सप्रेसिव। Ruby की तरह Crystal भी बहुत एक्सप्रेसिव है, जिसमें आप थोड़े से कोड से बहुत कुछ कर सकते हैं। यह कुछ हद तक इसकी शानदार और विशाल स्टैंडर्ड लाइब्रेरी की वजह से है
- तेज़। स्टैटिक टाइपिंग की वजह से इसे LLVM का उपयोग करके कुशल मशीन कोड में कंपाइल किया जा सकता है, और गार्बेज कलेक्टर के ज़रिए मेमोरी मैनेजमेंट आसान रहता है
- शानदार ऑब्जेक्ट ओरिएंटेड इम्प्लीमेंटेशन। यहाँ सब कुछ ऑब्जेक्ट है, क्लासें और संख्याओं व बूलियन जैसे प्रिमिटिव टाइप भी
- सब कुछ पहले से शामिल: बड़ी स्टैंडर्ड लाइब्रेरी, बिल्ट-इन फॉर्मेटर, टेम्पलेट इंजन, टेस्टिंग फ्रेमवर्क और बहुत कुछ
- इंटरऑप। C लाइब्रेरी के साथ आसान इंटरऑप
- क्रॉस-प्लेटफॉर्म: यह लिनक्स, macOS और Windows पर चलती है, हालाँकि Windows को अभी पूरा दर्जा नहीं मिला है
PowerShell
- शक्तिशाली: PowerShell एडमिनिस्ट्रेटर के लिए एक शक्तिशाली टूल है। यह कई दूसरे सिस्टम के साथ अच्छी तरह जुड़ता है, जैसे Windows OS (कंपोनेंट, सर्विस और सेटिंग्स), और Exchange, SharePoint, Azure जैसे दूसरे Microsoft प्रोडक्ट। यह REST API, डेटाबेस, वेब सर्विस जैसी कई और तकनीकों के साथ भी काम कर सकता है।
- उपलब्धता: PowerShell हर आधुनिक Windows OS पर पहले से इंस्टॉल आता है और इसे किसी भी ऐसे सिस्टम पर इंस्टॉल किया जा सकता है जो .NET चलाता है (जिसमें macOS, Linux और कई Unix सिस्टम शामिल हैं)
- सुरक्षा: PowerShell में स्क्रिप्ट को सुरक्षित रखने और हस्ताक्षरित स्क्रिप्ट तथा एक्ज़ीक्यूशन पॉलिसी के आधार पर उन्हें चलने से रोकने की सुविधाएँ हैं। आपकी ऑटोमेशन प्रक्रियाओं की सुरक्षा के लिए यह बहुत ज़रूरी है।
- GUI: आप इसे Windows Forms या Windows Presentation Foundation जैसे दूसरे फ्रेमवर्क के साथ जोड़कर अपनी PowerShell स्क्रिप्ट के लिए ग्राफिकल इंटरफ़ेस डिज़ाइन और बना सकते हैं, ताकि यह इस्तेमाल में ज़्यादा आसान बने।
- पाइपलाइन: Unix सिस्टम पर Bash की तरह, PowerShell आपको कई cmdlet को एक साथ जोड़कर जटिल काम करने देता है, जिसमें एक cmdlet का आउटपुट दूसरे के इनपुट के रूप में दिया जाता है
Ruby
- सुंदर और पढ़ने में आसान सिंटैक्स, जिससे Ruby का कोड लिखना और पढ़ना आसान हो जाता है
- एक्सप्रेसिव। Ruby बहुत एक्सप्रेसिव भाषा है, जिसमें आप थोड़े से कोड से बहुत कुछ कर सकते हैं। यह कुछ हद तक इसकी शानदार और विशाल स्टैंडर्ड लाइब्रेरी की वजह से है
- विशाल इकोसिस्टम, ढेरों उपलब्ध लाइब्रेरी (gem) के साथ
- शानदार ऑब्जेक्ट ओरिएंटेड इम्प्लीमेंटेशन। यहाँ सब कुछ ऑब्जेक्ट है, क्लासें और संख्याओं व बूलियन जैसे प्रिमिटिव टाइप भी।
- व्यावहारिक। Ruby और इसकी ज़्यादातर लाइब्रेरी बहुत व्यावहारिक हैं और असली दुनिया की समस्याएँ हल करने पर ध्यान देती हैं।
- इंटरऑप। C लाइब्रेरी के साथ आसान इंटरऑप, जिसका इस्तेमाल अक्सर तब होता है जब परफॉर्मेंस खास तौर पर ज़रूरी हो। जैसे Nokogiri gem C लाइब्रेरी को लपेटकर भारी काम करवाता है और इस तरह XML के साथ बहुत तेज़ी से काम करने देता है
- बहुत सारा नवाचार हो रहा है। जैसे Stripe ने Sorbet बनाया है, जो Ruby के लिए एक टाइप चेकर है, Shopify ने YJIT विकसित किया है, जो Ruby के लिए एक जस्ट-इन-टाइम कंपाइलर है (Ruby 3.1+ में शामिल), और WASM सपोर्ट पर काम चल रहा है
खास फीचर
C#
- शानदार परफॉर्मेंस, खास तौर पर एक मैनेज्ड भाषा के लिए। भाषा और रनटाइम दोनों में परफॉर्मेंस सुधारने के ढेरों फीचर हैं, जैसे Span<t> टाइप और CPU इंट्रिंसिक्स (जैसे AVX निर्देश) तक पहुँच। CLR एक परिपक्व, स्थिर और बेहद तेज़ वर्चुअल मशीन है जिसे लगातार बेहतर बनाया जा रहा है</t>
- विशाल इकोसिस्टम, ढेरों उपलब्ध लाइब्रेरी के साथ। ये लाइब्रेरी C# की तरह परिपक्व, स्थिर और सभी सुविधाओं से भरपूर हैं
- आधुनिक और विकसित होती हुई: भाषा और रनटाइम अब भी विकसित हो रहे हैं, और भाषा को और आधुनिक बनाने के लिए नियमित अपडेट आते रहते हैं। इसके उदाहरण हैं:
- आसान कंकरेंसी के लिए async/await
- कुशल मेमोरी इस्तेमाल के लिए span<t></t>
- नेबल रेफरेंस टाइप (अरबों डॉलर की गलती को सुधारते हुए)
- रनटाइम भी नियमित रूप से अपडेट होता है, जैसे सीधे मशीन कोड में कंपाइल करने के लिए .NET AOT
- बहुत सी दूसरी भाषाओं और इकोसिस्टम की तुलना में कम विकल्प। ज़्यादातर कामों के लिए आप Microsoft के डिफ़ॉल्ट समाधानों से काम चला सकते हैं, जिनमें अक्सर IDE भी शामिल होता है। कोई यह भी कह सकता है कि यह एक कमी है, लेकिन यह बहुत अच्छा भी हो सकता है, खास तौर पर जब आप कोई भाषा सीखना शुरू कर रहे हों
Crystal
- दोनों दुनियाओं का सबसे अच्छा। ग्लोबल टाइप इन्फरेंस और यूनियन टाइप के मेल से Crystal एक डायनामिकली टाइप्ड भाषा जैसी लगती है, जिसमें अक्सर टाइप बताने की ज़रूरत बहुत कम होती है, लेकिन फिर भी एक स्टैटिकली टाइप्ड भाषा की परफॉर्मेंस और बेहतर सुरक्षा गारंटी (कंपाइल समय पर nil जाँच सहित) मिलती है
- मेटाप्रोग्रामिंग। Ruby की डायनामिक, रनटाइम मेटाप्रोग्रामिंग के बजाय Crystal में मैक्रो होते हैं, जो कंपाइल समय पर चलते हैं। मैक्रो AST नोड पर काम करते हैं और कोड बनाते हैं। इन्हें बनाना और इस्तेमाल करना काफी आसान है। Embedded Crystal (ECR) एक बिल्ट-इन टेम्पलेट इंजन है जो मैक्रो की मदद से दूसरे टेक्स्ट में Crystal कोड डालता है
- शानदार कंकरेंसी। यहाँ कंकरेंसी इस्तेमाल करना आसान है, क्योंकि इसमें Go जैसा कंकरेंसी मॉडल है जो फाइबर (हल्का एक्ज़ीक्यूशन यूनिट) का उपयोग करता है और वे चैनल के ज़रिए एक-दूसरे से बात करते हैं
- उत्पादक और मज़ेदार। Ruby को उत्पादकता और डेवलपर की खुशी के लिए डिज़ाइन किया गया है, इसकी सुंदर, पढ़ने में आसान सिंटैक्स और बढ़िया एर्गोनॉमिक्स के साथ। चूँकि Crystal का सिंटैक्स और डिज़ाइन Ruby से बहुत मिलता-जुलता है, यही बात Crystal पर भी लागू होती है (मज़ेदार तथ्य: Ruby का काफी कोड मान्य Crystal कोड होता है)।
PowerShell
- Cmdlet: PowerShell अपने बुनियादी हिस्सों के रूप में cmdlet (जिसे "command-let" बोला जाता है) का उपयोग करता है। ये छोटे, किसी खास काम के लिए बने कमांड होते हैं जो मौजूदा कार्यक्षमता को लपेटते हैं और सिस्टम एडमिनिस्ट्रेटर के लिए एक जैसा (जैसे किसी भी cmdlet की मदद दिखाने के लिए Get-Help) और एडमिनिस्ट्रेटर-अनुकूल इंटरफ़ेस देते हैं। बहुत तरह के "बैकएंड" के लिए cmdlet मौजूद हैं, जैसे सभी .NET क्लासें, Windows Management Instrumentation, Azure और बहुत कुछ। Cmdlet किसी भी .NET भाषा में परिभाषित किए जा सकते हैं और इन्हें बहुत डिक्लेरेटिव तरीके से परिभाषित किया जाता है, जिसमें पैरामीटर, उनकी वैलिडेशन, ज़रूरी शर्तें (required true/false), वैकल्पिक (switch) नाम आदि आसानी से तय किए जा सकते हैं।
- ऑब्जेक्ट ओरिएंटेड: PowerShell में लगभग हर चीज़ एक ऑब्जेक्ट है जिसमें कई अलग-अलग प्रॉपर्टी होती हैं। फाइलें, प्रोसेस, रजिस्ट्री कीज़, और यहाँ तक कि स्ट्रिंग और संख्या जैसे साधारण डेटा टाइप भी ऑब्जेक्ट की तरह माने जाते हैं। यह तरीका अलग-अलग डेटा और सर्विस के साथ आपके काम और बातचीत को आसान बना देता है। जो भी .NET के साथ काम कर चुका है, उसे यह बहुत जाना-पहचाना लगेगा
- रिमोट मैनेजमेंट: यह Windows सर्वर और सिस्टम के रिमोट मैनेजमेंट का सपोर्ट करता है, और Azure, AWS तथा GCP के क्लाउड संसाधनों का भी, जो बड़े पैमाने पर ऑटोमेशन और डिप्लॉयमेंट संभालने के लिए बहुत ज़रूरी है।
- एक्सटेंसिबल: इसमें एक बढ़िया बिल्ट-इन मॉड्यूल सिस्टम है, साथ ही आप अपने खुद के cmdlet, फंक्शन और मॉड्यूल बना सकते हैं, और ज़रूरत के मुताबिक अपनी क्षमताएँ बढ़ाने के लिए दूसरी प्रोग्रामिंग भाषाओं और लाइब्रेरी के साथ काम कर सकते हैं।
Ruby
- उत्पादक और मज़ेदार। Ruby को उत्पादकता और डेवलपर की खुशी के लिए डिज़ाइन किया गया है। इसे नापना मुश्किल है, लेकिन जिन लोगों ने Ruby इस्तेमाल किया है उनका उत्साह खुद बहुत कुछ कहता है
- मेटाप्रोग्रामिंग। Ruby बहुत डायनामिक है और रनटाइम मेटाप्रोग्रामिंग की सुविधा देती है। मौजूदा क्लासों में मंकी-पैचिंग हो, मेथड को डायनामिक तरीके से जोड़ना या कॉल करना हो, Ruby हर जगह आपके साथ है
- Ruby on Rails वेबसाइट बनाने के लिए एक शानदार, पूरी सुविधाओं वाला फ्रेमवर्क है। बिना कुछ जोड़े ही इसमें टेम्पलेटिंग, कैशिंग, ActiveRecord (ऑब्जेक्ट के ज़रिए डेटाबेस से बात करने का तरीका), माइग्रेशन, स्कैफोल्डिंग, WebSockets और बहुत कुछ मौजूद होता है।
किसे चुनें
- अगर आप ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग से परिचित हैं, लेकिन उसका कोई अलग अंदाज़ देखना चाहते हैं, तो Pharo आज़माइए
- अगर आप Java या C# जानते हैं लेकिन काफी समय से उन्हें छुआ नहीं है, तो एक बार फिर कोशिश कीजिए। दोनों भाषाएँ बहुत आगे बढ़ चुकी हैं, इसलिए उनके कुछ नए चमकदार फीचर ज़रूर देखिए!
- अगर आप नौकरी ढूँढ रहे हैं तो C# और Java (और कुछ हद तक Ruby) भी बढ़िया विकल्प हैं, क्योंकि कंपनियाँ इनकी सबसे ज़्यादा माँग करती हैं
- अगर आप Ruby जानते हैं, तो Crystal आज़माइए और देखिए कि एक स्टैटिकली टाइप्ड Ruby कैसी दिखती और लगती है
- अगर आपको डायनामिक भाषाएँ पसंद हैं लेकिन शानदार परफॉर्मेंस भी चाहिए, तो Crystal ज़रूर देखिए
- अगर आप Bash या Windows बैच फाइल जानते हैं, तो शेल स्क्रिप्टिंग के एक अलग, ऑब्जेक्ट ओरिएंटेड तरीके के लिए PowerShell आज़माइए
- अगर आपको सामान्य रूप से स्क्रिप्टिंग भाषाएँ पसंद हैं, तो Ruby, Crystal और PowerShell तीनों बढ़िया विकल्प हैं
- अगर आप कुछ मेटाप्रोग्रामिंग करना चाहते हैं तो Pharo, Crystal और Ruby बढ़िया हैं (C# में भी अब मेटाप्रोग्रामिंग के कुछ फीचर आ रहे हैं)
- अगर आप ऐसी भाषा में प्रोग्राम करने का अनुभव लेना चाहते हैं जो टेक्स्ट फाइलों पर आधारित नहीं है, तो Pharo और उसका अनोखा व शक्तिशाली IDE आज़माइए
- अगर आप वेबसाइट बनाने में रुचि रखते हैं, तो Ruby और उसका Ruby on Rails फ्रेमवर्क एक बार आज़माने लायक है