रूबी को सीखते समय पायथन डेवलपर को क्या पता होना चाहिए? [बन्द है]


16

मैं लगभग 18 महीनों के लिए पायथन प्रोग्रामर रहा हूं, जिसमें एक इंटर्नशिप और कुछ साइड प्रोजेक्ट शामिल हैं, और मैं खुद को भाषा में बहुत सहज मानता हूं।

हालांकि, प्रोग्रामिंग क्षेत्र में रूबी पर बहुत अधिक ध्यान दिया जाता है, लेकिन अब पायथन पर बहुत अधिक नहीं है।

तो रूबी सीखने में, क्या पाइथोनिक चीजें हैं जो रूबी में सिर्फ बुरी प्रथाएं हैं? मुझे क्या देखना चाहिए, और मुझे क्या करना चाहिए?


4
मुझे हमेशा रूबी प्रोग्रामर के रूप में माना जाता है अगर मुझे अजगर सीखना चाहिए क्योंकि यह सभी के बारे में बात करता है: पी
अर्लज़

चर्चा के बावजूद ऐसा लगता है कि पाइथन का अभी भी रूबी के अनुसार दोगुना उपयोग किया जाता है (TIOBE के अनुसार कम से कम -> tiobe.com/index.php/content/paperinfo/tpci/index.html )।
डैनियल स्कोको

10
"पायथन प्रोग्रामर" या "रूबी प्रोग्रामर" होने के बजाय, आपको एक महान प्रोग्रामर बनने की कोशिश करनी चाहिए। फिर, आप जो भी भाषा चाहते हैं उसका उपयोग कर सकते हैं और समय के सही होने पर नए पर जा सकते हैं।
ब्लैकजैक

जवाबों:


31

मैंने 2003-5 में पाइथन को वापस किया, जब मैं एक प्लॉन / ज़ोप कंसल्टेंट था। फिर 2006 में मैंने रूबी को चुनना शुरू किया। मैंने कभी पीछे मुड़कर नहीं देखा। मुझे लगता है कि विभिन्न लोग अलग-अलग प्रोग्रामिंग भाषाओं और संस्कृतियों के साथ अधिक सहज महसूस करते हैं, लेकिन मेरे लिए, रूबी पायथन की तुलना में बहुत बेहतर महसूस करती है।

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

रूबी के बारे में दो सबसे अच्छी चीजें, मेरे नजरिए से, दो चीजें हैं जो इसे पायथन से अलग करती हैं। सबसे पहले, रूबी पर्ल से बहुत प्रभावित है। पायथन एंटी-पर्ल होने पर गर्व महसूस करता है। लेकिन पर्ल से उधार लिया गया सामान रूबी बड़े व्यावहारिक मूल्य का है। उदाहरण के लिए, नियमित अभिव्यक्ति लें। रूबी में, आप स्वाभाविक रूप से नियमित अभिव्यक्ति लिख सकते हैं, जैसे if mystring =~ /^\s+hello word!/ ...। पायथन में, इतना नहीं, क्योंकि पायथन सब कुछ समान रूप से अनुमानित सिंटैक्स का पालन करने के बारे में बहुत गुदा है। रूबी में, आप तुरंत एसटीडीआईएन प्राप्त कर सकते हैं input = STDIN.read। पायथन में, आपको import sysऔर फिर करना होगा sys.stdin.read()। ये दो उदाहरण हैं जहां पायथन ने खुद को पर्ल से दूर करने का प्रयास किया है और इतनी नियमित रूप से नियमित रूप से रूबी की इच्छा से ट्रम्प को हर मामले में सही लगता है।

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

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

result = if output == 'hello'
           [some code here]
           "world"
         else
           [some other code here]
           "there"
         end

पायथन में आपको लिखना होगा

if output == "hello":
  [some code here]
  result = "world"
else:
  [some other code here]
  result = "there"

अजगर आपको result =दो बार टाइप करता है । यह बहुत सूखी नहीं है (खुद को दोहराएं नहीं)। इस तरह के कई उदाहरण हैं जहां रूबी अपने लिस्प जैसे गुणों के कारण अजगर से अधिक DRY होगी। माबी, रूबी के निर्माता, एक लिस्प पृष्ठभूमि से आए थे।

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

मुझे लगता है कि यह शायद सच है कि दिन के अंत में रूबी और पायथन दोनों काम कर सकते हैं। सी और जावा की तुलना में, रूबी और पायथन बहुत समान हैं। वे अभिव्यंजक, उत्पादक, उच्च-स्तरीय भाषाएं हैं।

तो इससे आपके व्यक्तित्व में उबाल आता है।

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

क्या आप कुछ प्रोग्रामिंग परिणाम को पूरा करने के लिए सबसे संक्षिप्त तरीका खोजने में बहुत आनंद लेते हैं? क्या आप नियमितता और एकरूपता से ऊब गए हैं? क्या आपको एक ऐसी शैली में कोड लिखने की स्वतंत्रता है जो आपकी खुद की है, और आपके पास बहुत सारे शांत चाल के साथ आने के लिए बहुत जगह है? क्या आप लिस्प के लिए सी की तुलना में अधिक आत्मीयता महसूस करते हैं? क्या आप सॉफ्टवेयर प्रोग्रामिंग में पर्ल के युगीन योगदान के लिए बहुत प्रशंसा करते हैं, लेकिन केवल यह चाहते हैं कि यह थोड़ा कम गूढ़ और कुरूप हो सकता है? क्या आपको लगता है कि कोड अन्य लोगों की तरह कविता के बारे में सोचते हैं? रूबी की कोशिश करो।


11
"और यह बहुत बुरा है, क्योंकि मेटाप्रोग्रामिंग एक यात्रा है" ... और एक यात्रा की तरह, यह एक रात के लिए बहुत अच्छा होगा, लेकिन अंततः आप सुबह उठते हैं और भूल गए हैं कि आपने क्या किया है। मुझे लगता है कि रूबी में मेटाप्रोग्रामिंग अतिरंजित है, और मैं रूबी को पायथन पसंद करता हूं। सिंटेक्स समस्याओं के लिए रूबी के अधिकांश समाधान "आप मेटा प्रोग्रामिंग के साथ उस के आसपास प्राप्त कर सकते हैं"
अर्लज़

23
क्या? result = "world" if output=="hello" else "there"पूरी तरह से वैध पायथन है (और तीन अक्षर छोटे)।
टिम पिएट्ज़कर

3
@ मुझे ठीक करने के लिए धन्यवाद ठीक है। लेकिन क्या आप एक ही बात कर सकते हैं अगर / elsif / elsif / अन्यथा कथन के साथ - अर्थात यदि / elif / elif / Python में अन्य? क्या आप एक ही काम कर सकते हैं, भले ही अंदर के कई स्टेटमेंट हों या फिर क्लॉज हो?
दान

1
रुको, अजगर के पास एक टर्नरी ऑपरेटर नहीं है?
पीपी।

3
"पाइथन के निर्माता मैत्ज़, एक लिस्प पृष्ठभूमि से आए थे।" रुको ... AFAIK Matz रूबी निर्माता है ...
Eimantas

6

निर्भर करता है।

मेरे लिए अजगर को माणिक की तुलना में पकड़ना बहुत आसान है, साथ ही दोनों भाषा का एक अलग उद्देश्य है।

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

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


3

संक्षिप्त उत्तर: हां और हां।

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

यह एक बड़ा समय निवेश नहीं है, और आपके टूलबॉक्स में अधिक उपकरण होना हमेशा फायदेमंद होता है, इसलिए इसके लिए जाएं!

(मैंने लगभग 10 वर्षों के लिए पायथन का उपयोग किया है और पिछले साल रूबी को उठाया है। वर्तमान में आरओआर परियोजना में पूरा समय काम कर रहा हूं)


2

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

याद रखें कि भाषा एक उद्देश्य के रूप में उपकरण और हर उपकरण हैं। जितने अधिक उपकरण आप जानते हैं, उतने तेज़, अधिक आसानी से और अधिक सही ढंग से आप ट्रीहाउस का निर्माण कर सकते हैं।


मैं उसी तर्ज पर जवाब देना चाहता था, आशा करता हूं कि आप संपादन को बुरा नहीं
मानेंगे

2

क्या मुझे रूबी सीखना चाहिए? हाँ।

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

क्या यह मुश्किल होने वाला है? यदि आपने पायथन सीखा है, तो आप निश्चित रूप से रूबी भी सीख सकते हैं।

यह उपयोगी भी है अगर अब आप नौकरी की तलाश कर रहे हैं, तो यह दर्शाता है कि आप प्रौद्योगिकी के बारे में उत्सुक हैं और आप अपने दम पर चीजें सीख सकते हैं।

C2.com पर रूबी और पायथन के बीच एक अच्छी तुलना है ।

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