2010-10-24 10 views
14

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

मैं हास्केल और प्रोलॉग के साथ पर्याप्त परिचित हूं, यह जानने के लिए कि उन्हें सीखना मुझे कंप्यूटर विज्ञान की कुछ महत्वपूर्ण अवधारणाओं को सिखाएगा। मैं रूबी के बारे में इतना यकीन नहीं कर रहा हूँ।

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

यह प्रश्न रूबी के लिए "मामला बनाने" का इरादा नहीं है, हालांकि मुझे एहसास है कि यह महान तर्क का एक संभावित विषय है।

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

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

  • मैं मज़ा लेखन कार्यक्रम, या शांत वेब अनुप्रयोगों में कोई दिलचस्पी नहीं हूँ:

    आगे सवाल पतला करने के लिए। मुझे कंप्यूटर विज्ञान बिट्स में रुचि है। कार्यान्वयन एल्गोरिदम, डेटा संरचनाएं और इतने पर। (हालांकि मज़ेदार होने से निश्चित रूप से चोट नहीं आएगी)

  • आदर्श रूप से, विचारों की अवधारणाओं को लगभग 1.000 घंटे में सीखने की आवश्यकता है।

  • मुझे रेल में सभी दिलचस्पी नहीं है। कोई भी तकनीक जो जटिलता को छुपाती है, इस मामले में, हानिकारक है।

मैं तार्किक जा रहा है इस सवाल मदद नहीं कर सकता। लेकिन इस प्रश्न का एक आदर्श उत्तर सैद्धांतिक कंप्यूटर विज्ञान की गहराई से महत्वपूर्ण अवधारणा का जिक्र करेगा जो रूबी वैज्ञानिक रूप से सहायक ज्ञान प्राप्त करने के लिए प्रोग्रामर का उपयोग और समझने में मदद करता है।

उम्मीदवारों के लिए मैं मेटा प्रोग्रामिंग और मल्टी-थ्रेडिंग के साथ आया हूं। मुझे नहीं पता कि रूबी उनमें से किसी एक को सीखने के लिए विशेष रूप से महान है या नहीं।

+5

अजगर के लिए एक नया सराहना? :-) – paxdiablo

+2

कभी-कभी मुझे पुराने "व्यक्तिपरक" टैग याद आती है। – Pointy

+3

@ पॉइंटी: यह व्यक्तिपरक प्रश्न नहीं है। आप उद्देश्यपूर्ण उत्तर दे सकते हैं, रुबी की विशेषताएं और प्रतिमान क्या हैं, जो पाइथोनिस्ट के लिए नया होगा। – Nakilon

उत्तर

8

अधिकांश भाग के लिए, कुछ भी नहीं। रुबी की अधिकांश शक्तियां/कमजोरियां पाइथन के समान होती हैं, सिवाय इसके कि रूबी थोड़ा अधिक "कार्यात्मक" है। हालांकि यदि आपके पास एक विकल्प के रूप में हास्केल है, तो रूबी की तुलना में हास्केल से कार्यात्मक प्रोग्रामिंग के बारे में और भी सीखा जा सकता है।

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

एक अकादमिक परिप्रेक्ष्य से मुझे लगता है कि हास्केल आपके लिए सबसे अधिक अपील करेगा। यदि आप एआई या तर्क में रूचि रखते हैं, तो प्रोलॉग भी एक उत्कृष्ट विकल्प है।

+0

निष्पक्ष होने के लिए, यदि वह सीख रहा है कि ओओ को सही तरीके से कैसे डिजाइन किया जाए, तो वह स्वयं ऐसा कर सकता है। रुबी आपको गड़बड़ करने के लिए बेसिक ऑब्जेक्ट भी देता है जिसमें इसके अलावा कुछ भी नहीं है, लेकिन मूल मैकेनिक्स का अर्थ है कि रूबी में ऑब्जेक्ट होने का क्या मतलब है। डिजाइन पूरी तरह से उसके ऊपर है। एपीआई सिर्फ कॉस्मेटिक हैं। – egervari

1

यदि आप कंप्यूटर विज्ञान सामग्री सीखना चाहते हैं, तो स्कैला सीखें। वह भविष्य की कंप्यूटर विज्ञान भाषा है। देखें कि क्या आप इसे सीख सकते हैं;)

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

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

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

एक बार जब आप अवधारणाओं के एक समूह को जानते हैं, तो उन अवधारणाओं का उपयोग करने वाली किसी भी भाषा को समझना बहुत आसान होता है।

+0

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

+1

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

+1

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

4

रूबी और पायथन असली सीएस के संदर्भ में काफी समान हैं कि आपका दिमाग इससे बाहर निकल जाएगा - अंतर काफी हद तक कॉस्मेटिक और व्यावहारिक हैं। वे क्षेत्र जिनमें वे अनिवार्य रूप से समान हैं:

  • दोनों भाषाओं को दृढ़ता से, गतिशील रूप से टाइप किया गया है।
  • दोनों कार्यात्मक, ऑब्जेक्ट-ओरिएंटेड इत्यादि जैसे कई प्रतिमानों का समर्थन करते हैं
  • रूबी में थोड़ी अधिक फ्लफ/चीनी (पर्ल के समान) है, जबकि पायथन का मानना ​​है कि स्पष्ट रूप से स्पष्ट है।

आप दुभाषियों, चौखटे, और परीक्षण में रुचि रखते हैं, यह battle दो सार्थक हो सकता है लेकिन एक सैद्धांतिक दृष्टिकोण से आप ज्यादा हास्केल या Prolog से और जानेंगे।

3

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

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

+0

यह एक बहुत अच्छा जवाब है, लेकिन यह मेरे प्रश्न से काफी संबंधित नहीं है। बिलकुल। :-) –

+0

20+ वर्षों में आप अलग-अलग महसूस कर सकते हैं। –

4

जवाब निम्नलिखित दो प्रश्नों के लिए कर रहे हैं, कुल मिलाकर, एक ही:

  • मैं पहले से ही अजगर को जानते हैं, क्या मैं रूबी से सीखना होगा?
  • यदि मुझे पहले से ही रूबी पता है, तो मैं पायथन से क्या सीखूंगा?

दोनों किया जा रहा है का जवाब:

  • कुछ भी नहीं है महत्वपूर्ण है, काम करने के एक अलग तरह से के अलावा अन्य।

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