रूबी या अजगर? [बन्द है]


24

यह प्रश्न बेहद व्यक्तिपरक और खुले-अंत वाला है। यह भी लग सकता है कि मुझे अपने लिए कुछ शोध करना चाहिए और अपना निर्णय लेना चाहिए। लेकिन मैं इसे वहाँ से बाहर रखना चाहता हूँ और दूसरों से कुछ विचार प्राप्त करना चाहता हूँ।

छोटी कहानी - मैं चूहे की दौड़ से जल गया और इस साल एक स्व-वित्त पोषित सबबैटिकल पर हूं। इसमें से बहुत कुछ कॉर्पोरेट पीस से छुट्टी लेना और चारों ओर यात्रा करना है, लेकिन मैं नई तकनीकों के साथ खेलना चाहता हूं और कुछ आत्म-शिक्षण परियोजनाएं करना चाहता हूं, ताकि प्रोग्रामिंग पर गति बनी रहे, और अच्छी तरह से - मैं सिर्फ साथ छेड़छाड़ करना पसंद करता हूं प्रोग्रामिंग, जब कोई दबाव नहीं है!

यहाँ बात है: मैं एक जीवन भर C / C ++ / Java प्रोग्रामर हूं। जब से मैं अपने पूरे प्रोग्रामिंग करियर के लिए भाषाओं के इस परिवार के साथ काम कर रहा हूं, तब से मैं एक स्क्वीगली ब्रैकेट स्नोब का एक सा हूं। इसलिए मैं एक ऐसी भाषा सीखना चाहूंगा जो इस समूह से इतनी बारीकी से संबंधित नहीं है। जो मैं मूल रूप से देख रहा हूं वह एक ऐसी भाषा है जो अपेक्षाकृत सामान्य उद्देश्य है, सीखने के लिए मजेदार, कुछ नई अवधारणाएं हैं जो सी ++ / जावा से अलग हैं, और एक अच्छा समुदाय है। एक माध्यमिक विचार यह है कि इसमें अच्छे वेब विकास ढांचे हैं। तृतीयक विचार यह है कि यह पूरी तरह से अकादमिक नहीं है (पढ़ें: इसका उपयोग करके वहां वास्तविक विश्व नौकरियां हैं)।

मैंने इसे रूबी या पायथन के लिए संकुचित कर दिया है। रूबी की मेरी धारणा यह है कि यह अत्यंत वेब उन्मुख है - कि इसका एकमात्र वास्तविक अनुप्रयोग वेब सामग्री (मुख्य रूप से रूबी ऑन रेल्स) करने के लिए सर्वर साइड स्क्रिप्टिंग भाषा के रूप में है। मुझे अजगर के बारे में कुछ भी पता नहीं है, सिवाय इसके कि एक भावुक प्रशंसक आधार लगता है और एक काफी बहुमुखी भाषा प्रतीत होती है।

टीएल, डीआर और संभव के रूप में संभव के रूप में डाल करने के लिए: इनमें से कौन सी C ++ / Java आदमी के लिए प्रोग्रामिंग पर कुछ नए दृष्टिकोण प्राप्त करना सीखना बेहतर होगा? और जो अधिक खुला और सामान्य उद्देश्य और अनुप्रयोगों के व्यापक सेट पर लागू होता है? मैं इस समय रूबी की ओर झुक रहा हूं, लेकिन मुझे इस हद तक चिंता है कि ऐसा लग रहा है कि इसका उपयोग सर्वर साइड वेब लैंग्वेज के अलावा कुछ भी नहीं है।


"पायथन के लिए मैं इतना निश्चित नहीं हूं"? किस? यह कैसे प्रासंगिक है?
S.Lott

StackOverflow पर आप रूबी बनाम पायथन पर बहुत अधिक पा सकते हैं। मुझे आश्चर्य है कि खुद लेनार्ट ने अभी तक कोई टिप्पणी नहीं की है। regebro.wordpress.com/2009/07/12/python-vs-ruby stackoverflow.com/questions/1113611/…
नौकरी

@ S.Lott: क्षमा करें, स्पष्ट नहीं था। बस इसका मतलब है कि मेरे पास अभी तक अजगर की बहुत विस्तृत छाप नहीं है। सिवाय इसके कि यह बहुमुखी है और इसका एक मजबूत प्रशंसक आधार है।
बॉबी टेबल्स

9
पर्ल, बिल्कुल।
ब्रूस एल्डरमैन

यह "क्या तकनीक बेहतर है?" प्रश्नों की श्रेणी, जिन्हें अक्सर पूछे जाने वाले प्रश्न के अनुसार ऑफ-टॉपिक माना जाता है।
ChrisF

जवाबों:


35

तथ्य यह है कि रूबी सामान्य रूप से रेल (वेब ​​अनुप्रयोग ढांचे) की वजह से आम समानता में गुलाब आप मूर्ख मत करो। यह एक सामान्य प्रयोजन की प्रोग्रामिंग भाषा है, और आप इसे किसी भी चीज़ के लिए उपयोग कर सकते हैं जिसे आप किसी अन्य भाषा के लिए उपयोग कर सकते हैं।

रूबी के साथ चारों ओर खेलें और देखें कि क्या आप इसके साथ प्यार करते हैं। आप या तो करेंगे या आप नहीं करेंगे। यह ग्रेटफुल डेड के संगीत की तरह है; आप या तो इसे प्यार करते हैं या आप इसे बर्दाश्त नहीं कर सकते।

रूबी आपके दिमाग को स्ट्रेच करेगी। कई मामलों में, यह C ++ / Java से उतना ही दूर है जितना आप प्राप्त कर सकते हैं। मैं एक C और C # बैकग्राउंड से आता हूं, और मुझे रूबी की गतिशीलता और मेटा-प्रोग्रामिंग पावर काफी मादक लगती है।

यह कहा जा रहा है, पायथन एक बिल्कुल उत्कृष्ट भाषा है, और यह आपको अपनी घुंघरालेपन से उबार देगा।

दोनों क्यों नहीं सीखते? मैं नियमित रूप से दोनों का उपयोग करता हूं: रूबी और पायथन के साथ प्रोग्रामिंग के लिए रूबी Google AppEngine के साथ काम करने के लिए।


2
+1 एक मृत संदर्भ के लिए;)
सीएसएचओल

1
धन्यवाद। मैं रूबी के साथ पहले जाऊंगा और देखूंगा कि क्या मुझे उससे प्यार हो गया है। :)
बॉबी टेबल्स

8
मैं पार्टी के लिए थोड़ा लेट हो गया, लेकिन trypython.org और tryruby.org भाषाओं को आज़माने के लिए बेहतरीन साइटें हैं।
मिशेल टाइली

17

मैंने शायद ही रूबी का इस्तेमाल किया है, यह स्वीकार किया है, लेकिन यहाँ मेरे पायथन के प्रभाव हैं:

  • जब मैं एक फ़ंक्शन को पेंसिल से लिखने के लिए स्यूडोकोड लिखता हूं, तो मुझे पता चलता है कि मैं व्यावहारिक रूप से जो लिखता हूं वह पायथन है, और कभी-कभी इसे वास्तविक कोड बनाने के लिए उल्लेखनीय रूप से थोड़ा पुनर्लेखन आवश्यक होता है। आप छद्म कोड को सभी को एक साथ छोड़ सकते हैं और अपने विचारों को सीधे पायथन में व्यक्त कर सकते हैं
  • जब मुझे कुछ ऐसा करने की आवश्यकता होती है जो एक सामान्य कार्य की तरह लगता है, तो पायथन अपने मानक पुस्तकालय में आवश्यक कार्य (उच्च स्तर पर) करता है। उदाहरण के लिए, जल्दी जब मैं एक फाइल खोलना चाहता था और उसे लाइन से स्कैन करना चाहता था, तो जवाब 'मायफाइल में लाइनों के लिए सरल: डॉस्टफ (लाइनें)' जैसा था। मेरा मानना ​​है कि वे 'बैटरी शामिल' दृष्टिकोण को कॉल करते हैं, और यह कुछ अन्य भाषाओं से भिन्न होता है, जिनका मैंने उपयोग किया है, जहाँ रोज़मर्रा के ऑपरेशन बहुत अधिक काल्पनिक हैं

वे दो चीजें मेरे सामने हैं।


मुझे लगता है कि वही कारण हैं जो मैं रूबी को पसंद करता हूं। रूबी अधिक ओओ है और उसके पास कम कीवर्ड हैं। उदाहरण के लिए रूबी "[1,3,5] .length ()" और "[1..10] .each () ..." बनाम पायथन "लेन ([1,3,5])" और "मैं के लिए। रेंज में (1,11) "
लेनीप्रोग्रामर्स

6
@ लेनी - रूबी में वास्तव में अधिक कीवर्ड हैं: krijnhoetmer.nl/stuff/ruby/keywords बनाम zetcode.com/tutorials/pythontutorial/keywords - पायथन 2.6 के लिए, कि रूबी के 38 के लिए 31 कीवर्ड हैं। इसके अलावा, 'अधिक OO' लगता है। यहाँ पर काफी विषयवस्तु का उपयोग किया गया है, क्योंकि दोनों भाषाओं में "सब कुछ एक वस्तु है" लागू होता है (और इससे भी अधिक शाब्दिक रूप से पायथन 3.x, सब कुछ उपवर्ग के रूप में object)। इसके अलावा, len(obj)कॉलिंग के लिए एक शॉर्टकट है obj.__len__(), और for i in rangeऑपरेटिंग जनरेटर ऑब्जेक्ट्स के परिचालन विवरण को भी सार करता है। मुझे लगता है / समकक्ष लेकिन अलग / अधिक सटीक है।
वेन वर्नर

मुझे लग रहा है कि Lenny का मतलब है कि आप अपने विशिष्ट कथन में कम कीवर्ड का उपयोग करते हैं, उदाहरण के लिए 'i in रेंज (1,11) में 3 कीवर्ड हैं (जैसे, इन, रेंज)। बेशक, कभी-कभी अधिक शब्द बेहतर होते हैं।
एंड्रयू एम

5
रेंज एक कीवर्ड नहीं है यह एक फ़ंक्शन है
Kugel

9

यदि आप पूरे एक साल का समय ले रहे हैं, तो मैं एक या दो सप्ताह सीखने का सुझाव दूंगा और फिर अपने लिए निर्णय लूंगा जो आपको सबसे अच्छा लगता है। मेरे पास दोनों के साथ अनुभव है और मेरी राय में वे दोनों इतने सक्षम हैं कि आपको वास्तव में यह तय करने की जरूरत है कि आप किसे पसंद करते हैं।


+1, दोनों बहुत आसान लगते हैं। दूसरी तरफ क्लोजर, ... बहुत मज़ा है, लेकिन कठिन भी है।
जॉब

7

IMO, आपको पायथन के साथ जाना चाहिए। कारण यह है कि यह अधिक बहुमुखी है, आप इसे लगभग हर चीज के लिए उपयोग कर सकते हैं। रूबी, जैसा कि आपने देखा, वेब विकास में इसका उपयोग वेब फ्रेमवर्क के कारण अधिक किया गया है। पाइथन के विपरीत, रूबी गुई डेस्कटॉप अनुप्रयोगों, संख्यात्मक, सांख्यिकीय या छवि प्रसंस्करण कार्यक्रमों के विकास के लिए अच्छा नहीं है।


1
क्या आप बता सकते हैं कि रूबी "गुई डेस्कटॉप अनुप्रयोगों, संख्यात्मक, सांख्यिकीय या छवि प्रसंस्करण कार्यक्रमों के विकास के लिए अच्छा नहीं है" क्या बनाती है? जब मैं 2001/2002 में रूबी में प्रोग्रामिंग कर रहा था, तो मैं खुशी से उन सभी चीजों को कर रहा था।
8

7
@ Lenny222। रूबी में कोई लाइब्रेरी नहीं है जैसे कि सुपी, स्कैपी, सिम्पी, पीआईएल, मेटप्लोटलिब। वे जो भी संख्यात्मक पुस्तकालय हैं, वे पायथन से बहुत पीछे हैं। इसी तरह गुई अनुप्रयोगों के विकास के लिए प्रलेखन और पुस्तकालयों के साथ।
मार्सिन

1
आप कहते हैं कि पायथन अधिक बहुमुखी है और फिर पुस्तकालयों में क्यों इंगित करता है। मैं आपको अनुदान दूंगा कि एक अच्छे पुस्तकालय की कमी के लिए रूबी में कुछ चीजें करना उतना आसान नहीं है, लेकिन इसका मतलब यह नहीं है कि रूबी खुद किसी तरह कम बहुमुखी है।
ट्विसोल

@Twisol यही कारण है कि: पायथन बहुत सरल (और सुसंगत) होने का कारण है कि यह इतना बहुमुखी है और इतने सारे उपयोगी पुस्तकालय (IMO) क्यों हैं।
नादिर संपोली

6

रूबी के पास रेलों की तुलना में बहुत अधिक समय रहा है, इसलिए मुझे इसे दुनिया में बाहर रखना चाहिए Ruby != web, हालांकि यह बहुत अच्छी तरह से करता है। सिस्टम से संबंधित चीजों की एक मेजबान है जो यह कर सकती है और करती है। यह सिर्फ ऐसा लगता है जैसे पूरे रेल ढांचे ने रूबी दुनिया के बाकी हिस्सों को निगल लिया। और हां, मैं रूबी फैन हूं।

दूसरी ओर पायथन में इसके लिए बहुत कुछ है, और इसे लिनक्स पर लगभग हर चीज के साथ एकीकृत किया गया है। यह बताता है कि बड़े कार्यक्रमों (रूबी, जावा, आदि की तुलना में) में शामिल करना काफी आसान है। पाइथन के साथ उबंटू लिनक्स बुनियादी ढांचे की एक उचित मात्रा है, जो मुझे बताता है कि पायथन में सिस्टम प्रोग्रामिंग में आवेदन है। मैंने सुना है कि इसकी वेब रूपरेखा वास्तव में अच्छी है, मैंने अभी तक इसके साथ नहीं खेला है।

उस ने कहा, रूबी और पायथन दोनों समान रूप से सक्षम भाषाएं हैं, और आप पाएंगे कि वे आपके जीवन को बहुत आसान बनाते हैं। रूबी के समुदाय में बहुत अधिक वेब प्रमुख हैं, लेकिन यह समुदाय की संपूर्णता नहीं है। मैंने इसे कई अवसंरचना परियोजनाओं पर भी उपयोग किया है।


5

यह " आदर्श प्रोग्रामिंग लैंग्वेज लर्निंग सीक्वेंस" और इसी तरह के सवालों का एक विशेष मामला है । आपको जो चाहिए वह "एक सही भाषा" नहीं है, आपको अपने दिमाग को खोलने के लिए कई भाषा के प्रतिमान और कई सीखने के अनुभवों की आवश्यकता है।

मुझे पता है कि आपने कहा था कि आपने इसे रूबी और पायथन तक सीमित कर दिया है, लेकिन मेरा सुझाव है कि आप रैकेट (एक लोकप्रिय योजना) से शुरुआत करें। यह सीखने के लिए बनाया गया है और यह आपके मस्तिष्क को कार्यात्मक प्रोग्रामिंग, इंटरैक्टिव प्रोग्रामिंग और गतिशील टाइपिंग की ओर बढ़ाएगा। कोई नौकरी नहीं है (शाब्दिक रूप से शून्य), एक बहुत छोटा, खंडित समुदाय, और कोई प्रमुख वेब फ्रेमवर्क नहीं है, यही कारण है कि आप इसके साथ फंस नहीं पाएंगे; थोड़ी देर के लिए अपने दिमाग को भूनें और फिर आगे बढ़ें।

दूसरा, आप संभव नौकरियों के लिए रूबी या पायथन सीखना चाहते हैं। मेरा सुझाव है कि आप दोनों सीखें। उन दोनों में से दूसरे एक को सीखना उनके मतभेदों के बावजूद पहले की तुलना में बहुत आसान होगा। संभव नौकरियों के लिए, मेरी आंत की भावना यह है कि रेल के कारण अधिक रूबी काम है, लेकिन मुझे पता है कि इस क्षेत्र में कुछ ज़ोप काम भी है। कम से कम उनमें से एक में निवेश करें, लेकिन कुछ छोटे का निर्माण करने के लिए दूसरे को कम से कम लंबे समय तक देखें।

ईमानदारी से, आप संभवतः अपने पहले सप्ताह में उन दोनों के साथ काम सीखेंगे, जो आपने कभी खुद सीखे थे; उन दोनों के पास बहुत सारे उपकरण और संस्कृति और मुहावरों के साथ बड़ा पारिस्थितिकी तंत्र है।

tl; dr: दोनों और स्कीम।


1
+1 मैंने देखा कि "एक आदर्श भाषा" और "योजना" थी। :)
आहारबुद्धि

1

मैं भी, जावा / सी ++ पृष्ठभूमि से आया हूं और पिछले 4 महीनों में Django ढांचे के साथ पायथन में प्रोग्रामिंग कर रहा हूं और यह वास्तव में बहुत अच्छा है। जब भी मुझे कोई समस्या या सवाल आता है, तो मैं मौजूदा पोस्ट पर स्पष्टीकरण पा सकता हूं। मैं रूबी के लिए वाउच नहीं कर सकता क्योंकि मैंने अभी तक इसका इस्तेमाल नहीं किया है, लेकिन जब मेरा कुछ समय होगा, तो मैं निश्चित रूप से कोशिश करूंगा।

मुझे व्यक्तिगत रूप से यह पसंद है कि आप पायथन के साथ वास्तव में जल्दी कैसे सामान कर सकते हैं क्योंकि इसमें बहुत सारे उपयोगी कार्य अंतर्निहित हैं।


1

रूबी के लिए आईडी वोट। मैं .Net और C # बैकग्राउंड से आया था, पहले पायथन की कोशिश की, लेकिन रूबी ने मुझे सिर्फ मंत्रमुग्ध कर दिया =)
इसमें बहुत सारे सिस्टम स्टफ लिख रहे हैं, और कुछ रेल देव को। यह सिस्टम प्रोग्रामिंग में पायथन के रूप में सक्षम है, और वेब पर कमाल है। और यह मुझे अधिक पॉलिश लगता है ।।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.