रूबी में रेल क्यों लिखी गई? [बन्द है]


9

मैं PHP और रूबी को जानता हूं।

एक PHP रेल क्लोन (पसंद से बाहर नहीं) का उपयोग करते हुए, सिम्फनी कहा जाता है, (जो स्पष्ट रूप से सबसे अच्छा PHP फ्रेमवर्क है), मुझे लगता है कि यह रेल का क्लोन है। मुझे लगता है कि सिम्फनी मूर्खतापूर्ण है और वह (SensioLabs एक चतुर व्यवसाय है) क्योंकि रेल पहले से मौजूद है।

ओपन-सोर्स प्रोजेक्ट्स के अलावा पैसा हासिल करना, मुझे समझ नहीं आता कि लोग PHP में Rails क्लोन क्यों बना रहे हैं, जब Rails पहले से मौजूद है। रेल का उपयोग क्यों नहीं? निश्चित रूप से डीएचएच ने एक कारण के लिए रूबी के साथ रेल को कोडित किया।

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

  1. रूबी में क्यों कोडित है?
  2. यह PHP रेल क्लोन के बारे में क्या है, जो सही नहीं लगता है?
  3. यह क्या है कि रेल कर रहा है, कि रेल क्लोन नहीं कर रहे हैं?

4
रूबी रेल्स की गुप्त चटनी है।
चिरॉन

4
मेह, मैं कुछ नहीं देख सकता जिसे Ruby on RailsPHP में कार्यान्वित किया जा रहा है।
वैकल्पिक

2
यदि स्मृति कार्य करती है, तो मैंने एक बार पॉडकास्ट सुना, जहां डीएचएच ने वर्णन किया कि उसने रूबी को चुना। मुझे लगता है कि यह इस डेवलपर के जीवन का एपिसोड था ।
एडम लेअर

2
@ क्रिस जी - मुझे विश्वास है कि अविश्वसनीय रूप से कठिन है। अंतर्निहित भाषाओं के बीच की खाई बड़े पैमाने पर है- रूबी एक चतुर और व्यापक रूप से प्रोग्रामिंग भाषा के माध्यम से सोचा गया है, PHP एक हैक है जिसे गेम में देर से हैक किए गए रूबी सुविधाओं के एक गुच्छा के साथ अन्य हैक पर ढेर किया गया है। PHP को होस्ट करना आसान है और बेहतर प्रदर्शन करता है, लेकिन अगर वह डीएचएच की प्राथमिकताएं थीं, तो उन्होंने रूबी को वापस नहीं चुना होगा जब उन्होंने किया था। PHP को वास्तव में एक प्रोग्रामिंग भाषा के रूप में डिज़ाइन नहीं किया गया था और जो लोग भाषा सिद्धांत / CS की परवाह करते हैं, वे इसके परिणामस्वरूप इसके प्रति उत्सुक नहीं हैं।
ग्लेनट्रॉन

2
@ ग्लेनट्रॉन कोई भी बुद्धिमान PHP उपयोगकर्ता को ORM जैसी प्रमुख "रेल" सुविधाओं का उपयोग करते हुए सुंदर, अभिव्यंजक, आधुनिक वेब एप्लिकेशन लिखने से नहीं रोकता है। जो विचार केवल हाल ही में PHP में जोड़े गए थे, वह किसी को भी उनका उपयोग करने से रोकने वाला नहीं है!
क्रिस जी।

जवाबों:


26

1.) रूबी में पटरियों को क्यों कोडित किया गया है?

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

चूंकि रूबी वर्षों में शक्ति और अभिव्यक्ति में वृद्धि हुई, इसलिए यह फ्रेमवर्क के लिए एक अच्छा फिट बना रहा, इसलिए यह उस भाषा को भी जारी रखता है जिसमें लिखा गया है (प्लस, "C # ऑन रेल" या "Java on Rails" doesn 'यह अच्छा गठबंधन है।'

2.) यह PHP रेल क्लोन के बारे में क्या है, जो सही नहीं लगता है?

यह वास्तव में उद्देश्यपूर्ण उत्तर नहीं दिया जा सकता है, लेकिन यह शायद # 1 के कारण है। रेल का व्यवहार और आंतरिक कई विशेषताओं का लाभ उठाता है जो रूबी में मौजूद हैं और अन्यत्र सटीक रूप से दोहराने के लिए कठिन होगा। उदाहरण के लिए, PHP में मेटाक्लासेस नहीं हैं, जो रेल बहुत हद तक निर्भर करता है।

ओपन-सोर्स प्रोजेक्ट्स के अलावा पैसा हासिल करना, मुझे समझ नहीं आता कि लोग PHP में Rails क्लोन क्यों बना रहे हैं, जब Rails पहले से मौजूद है। रेल का उपयोग क्यों नहीं? निश्चित रूप से डीएचएच ने एक कारण के लिए रूबी के साथ रेल को कोडित किया।

क्योंकि हर किसी के पास नई भाषा सीखने के लिए समय, बजट, या झुकाव नहीं होता है ताकि वे एक नई रूपरेखा सीख सकें।

सादृश्य के अनुसार, अगर यह पता चला कि ब्रेनफक एक बहुत लोकप्रिय वेब फ्रेमवर्क था, तो क्या इसका मतलब है कि आपको अपने ग्राहकों को छोड़ देना चाहिए जिन्होंने ब्रेनफक में अपने एप्लिकेशन नहीं लिखे हैं? यह व्यवसाय चलाने का कोई तरीका नहीं है।

मैं PHP और रूबी को जानता हूं।

"मुझे पता है कि पीएचपी और रूबी दोनों" जैसे कथन यह सुझाव देते हैं कि आप अभी तक गहराई, समृद्धि, और दोनों की idiosyncracies की पूरी तरह से सराहना नहीं कर सकते हैं।


(पश्चात के लिए stackoverflow.com/questions/6972992/… से पुन: प्रस्तुत ।)
जॉन फेमिनाला

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

3
+1 - नई भाषा सीखने के लिए एक समय है - किसी भी महत्व का एक तात्कालिक प्रोजेक्ट एक नहीं है।
जेएफओ

PHP में बॉक्स से मेटाक्लास नहीं है, आप सही हैं। हालांकि, PHP 5.3 के बाद से मेटाक्लास कार्यक्षमता को लागू करना संभव है।
क्रिस जी।

6

1. रूबी में पटरियों को कूट क्यों दिया जाता है?

एक बार रूबी में इसे प्रोग्राम करने का निर्णय लिया गया था। यह डिजाइन निर्णय आज तक रहता है।

2. यह PHP रेल क्लोन के बारे में क्या है, जो सही नहीं लगता है?

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

3. यह क्या है कि रेल क्या कर रही है, कि रेल क्लोन नहीं कर रहे हैं?

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


6

रूबी में क्यों कोडित है?

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

उदाहरण के लिए, ActiveRecord, Rail का ऑब्जेक्ट रिलेशनल मैपर, इन दोनों चीजों को अच्छी तरह से करता है। सबसे पहले, यह रूबी की मेटा-प्रोग्रामिंग क्षमता का उपयोग डेटाबेस में फ़ील्ड नामों के अनुरूप मक्खी बनाने के लिए करता है।

एक: दूसरे, ActiveRecord आप वस्तुओं के लिए संघों की घोषणा की सुविधा देता है Personहो सकता है has_many :books। Has_many एक घोषणा की तरह दिखता है, लेकिन यह वास्तव में एक विधि कॉल है। (रूबी इसे पढ़ती है has_many(:books)

रूबी का लक्ष्य अनुभवी प्रोग्रामर के जीवन को आसान बनाना भी है।

रूबी इन चीजों को आसान बनाती है, इसलिए लोग उन्हें करते हैं। अन्य भाषाएं इन्हें कठिन बनाती हैं, या इस तरह की जादुई चीजें स्पष्ट रूप से संस्कृति का हिस्सा नहीं हैं। Django, Python मेगा-फ्रेमवर्क, में बहुत कम मेटा मैजिक है क्योंकि यह Python में उतना आसान नहीं है, और Python एक भाषा के रूप में "स्पष्ट की तुलना में बेहतर है" निहित है। (मैं PHP संस्कृति या उस तरफ वेब फ्रेमवर्क के बारे में ज्यादा नहीं जानता।)

मुझे लगता है कि ये कुछ कारण हैं जिनके कारण DHH को रूबी से प्यार हो गया, और वह रेल में इन भाषा विशेषताओं का उपयोग करती है।


यह बहुत अच्छी तरह से रेल में कुछ मचान करने के लिए कंसोल का उपयोग कर रहा है, लेकिन सिम्फनी में ऐसी विशेषताएं मौजूद हैं। क्या आप मुझे बता सकते हैं कि मैं इस बात का सबूत कैसे पा सकता हूं कि रूबी की भाषा मेटा-प्रोग्रामिंग के लिए कैसे पूरी होती है? क्या कक्षाएं पर्याप्त नहीं होनी चाहिए?
१५:०४ पर ०11

1
द प्रैगमैटिक प्रोग्रामर्स की एक पुस्तक है: रूबी में मेटाप्रोग्रामिंग - जो रूबी में मेटाप्रोग्रामिंग के लिए एक परिचय होने के अलावा - लगभग 50 पृष्ठों को रेल्स में मेटाप्रोग्रामिंग के बारे में बात करता है। मुझे नहीं लगता कि बस कक्षाएं पर्याप्त हैं: उदाहरण के लिए, कभी-कभी मेटाप्रोग्रामिंग विधि श्रृंखला के माध्यम से होता है ("जब आप इस फ़ंक्शन को कॉल करते हैं, इसके बजाय फ़ंक्शन के मेरे संस्करण को कॉल करें - जो मूल को कॉल नहीं कर सकता है")। यह रूबी में एक मेटाप्रोग्रामिंग पैटर्न है (जो रेल को साफ करता है और उपयोग करने के लिए आसान बनाता है)
रयानविल्कॉक्स

मुझे यह पढ़ना होगा कि एक बार मुझे रेल में महारत हासिल होगी। यह सब भ्रामक लगता है।
डेस्बेट

मैं यह बताना चाहूंगा कि PHP में ORM समाधान भी है। यह ऐसा कुछ नहीं है जो रूबी के लिए अनन्य है।
क्रिस जी।

1
ActiveRecord का PHP कार्यान्वयन है जिसे phpActiveRecord कहा जाता है। यह इन सभी चीजों का उपयोग करता है। हालाँकि, जब DHH ने रेल का निर्माण किया, तो PHP ऐसा करने में सक्षम होने से एक लंबा रास्ता तय कर रही थी।
जामोन होल्मग्रेन

2

रेल का उपयोग क्यों नहीं करते?

मैं दोनों के उपयोगकर्ता के रूप में कुछ परिप्रेक्ष्य प्रदान करता हूँ। मैं रूबी / रेल में शौक कार्यक्रम और मैं PHP का उपयोग विशेष रूप से काम पर करता हूं। (नोट: मैं रूबी / रेल्स को एक शौकवादी वातावरण के रूप में खारिज नहीं करता, यह सिर्फ यह है कि मैं इसका उपयोग कैसे चुनूं।)

बहुत से लोग रूबी / रेल्स को वेबसाइट विकास की पवित्र कब्र के रूप में लोकप्रियता बैंडवागन के कारण मानते हैं और क्योंकि यह 'अलग' है। कई मायनों में यह निश्चित रूप से है, लेकिन कुछ प्राचीन के रूप में PHP को खारिज करने के लिए पर्याप्त नहीं है।

सिम्फनी रेल्स की तरह महसूस नहीं करती है क्योंकि PHP में कुछ सिंथेटिक चीनी की कमी है जो रेल प्रदान करती है। PHP इस संबंध में सुधार कर रही है और 5.3 के अतिरिक्त जोड़ ने हममें से कितने में कोड लिखा है, इससे फर्क पड़ा है।

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

  • Redbean PHP के साथ महान ORM कार्यक्षमता प्रदान करता है। तो Doctrine, Idiorm / Paris और Propel करता है।
  • Symfony2 और CakePHP रेल की तरह एक फूला हुआ वेब विकास ढांचा पेश करते हैं।
  • CodeIgniter ब्लोट के बिना एक पूर्ण फ्रेमवर्क समाधान प्रदान करता है।
  • स्लिम एक पापात्रा जैसी रूपरेखा प्रदान करता है।

आपका आग्रह है कि PHP के रेल क्लोनों को 'सही नहीं लगता' मुझे गलत लगता है, क्योंकि वे क्लोन नहीं हैं और वे रेल के समान नहीं हैं। एक PHP समाधान की सादगी और परिचितता में आधार बनाना सीखें।

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