2008-09-16 12 views
20

मुझे आश्चर्य है कि क्या ऐसी कोई चीज़ है जैसे डीजेगो जैसी वेब एप डेवलपमेंट की आसानी अच्छी तैनाती, डिबगिंग और अन्य टूल्स के साथ मिलती है?Django -vs- Grails -vs-?

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

रूबी इसी तरह के मुद्दों है और यद्यपि मैं रूबी बहुत बेहतर की तुलना में मैं अजगर की तरह की तरह करते हैं, मैं धारणा है कि रेल Django में एक ही नाव में मोटे तौर पर है जब यह प्रबंध/ऐप्स समर्थन की बात आती है मिलता है।

क्या किसी ने यहां गैर-तुच्छ परियोजनाओं के लिए Django और Grails (या अन्य वेब ढांचे) दोनों की कोशिश की है? उन्होंने तुलना कैसे की?

उत्तर

29

आपने किसी ऐसे व्यक्ति से पूछा जो Grails और Django दोनों का उपयोग करता है। मैंने बड़ी परियोजनाओं के लिए दोनों पर काम किया है।

आईडीई के: Django ग्रहण में वास्तव में अच्छी तरह से काम करता है, Grails IntelliJ विचार में वास्तव में अच्छी तरह से काम करता है यहाँ मेरे विचार है।

डिबगिंग: व्यावहारिक रूप से एक ही (यह मानते हुए आप Grails के लिए इंटेलीजे उपयोग करें, और अजगर के लिए ग्रहण)। चरण डिबगिंग, चर का निरीक्षण, इत्यादि ... किसी भी के लिए प्रिंट स्टेटमेंट की आवश्यकता नहीं है। कभी-कभी django त्रुटि संदेश बेकार हो सकते हैं लेकिन Grails त्रुटि संदेश आमतौर पर बहुत लंबा और कठोर करने के लिए मुश्किल हैं।

यूनिट परीक्षण चलाने का समय: django: 2 सेकंड। Grails: 20 सेकंड (परीक्षण दोनों एक सेकंड के एक अंश में भागते हैं, यह उन लोगों को चलाने के लिए ढांचे को लोड करने के बारे में हिस्सा है जो बाकी लेते हैं ... जैसा कि आप देख सकते हैं, Grails निराशाजनक रूप से लोड करने में धीमा है)।

परिनियोजन: Django: नकल एक अपाचे config में & पेस्ट एक फ़ाइल, और पुनर्वितरित करने के लिए, बस कोड बदल सकते हैं और अपाचे पुनः लोड। Grails: एक .war फ़ाइल बनाएं, इसे टोमकैट पर तैनात करें, कुल्लाएं और पुन: नियोजित करने के लिए दोहराएं।

प्रोग्रामिंग भाषाएं: ग्रोवी पूरी तरह से शानदार है। मैं इसे प्यार करता हूँ, पाइथन से भी ज्यादा। लेकिन मुझे निश्चित रूप से कोई शिकायत नहीं है।

प्लगइन्स: Grails: टूटे हुए प्लगइन के बहुत सारे (और हर जावा lib का उपयोग कर सकते हैं)। Django: कुछ स्थिर प्लगइन्स, लेकिन आपको जो कुछ चाहिए उसे करने के लिए पर्याप्त है।

डेटाबेस: Django: दक्षिण का उपयोग कर स्कीमा प्रवास करते हैं, और आम तौर पर सहज संबंधों। Grails: कोई स्कीमा प्रवास करते हैं, और डिफ़ॉल्ट रूप से यह स्टार्टअप पर डेटाबेस को हटा देता है ... WTF

उपयोग: Django: स्टार्टअप (विशेष रूप से शासन 2.0 अंतरिक्ष में), स्वतंत्र वेब देव दुकानें। Grails: एंटरप्राइज़

आशा है कि मदद करता है!

+2

बस मेरी पोस्ट में थोड़ा सा अपडेट जोड़ने के लिए: Django में प्लगइन के लिए, पिनैक्स से शुरू करें। यह एकीकृत प्लगइन का एकमात्र असली भंडार है। Grails के साथ बस सभी प्लगइन्स सूचीबद्ध करने और आप जो चाहते हैं उसे स्थापित करने के लिए एक आदेश है। – hendrixski

+2

Grails डीबी माइग्रेशन प्लगइन, http://grails-plugins.github.com/grails-डेटाबेस- माइग्रेशन/डॉक्स/मैनुअल/गाइड/1%20 इंट्रोडक्शन%20to%20the%20Database%20 माइग्रेशन%20 प्लगइन।एचटीएमएल –

+2

आईएचएचओ ग्रेल्स बनाम डीजेगो कोर में मौजूद बगों की संख्या की तुलना विशेष रूप से की जानी चाहिए जब ग्रिल के पास बहुत सारे और बहुत सारे होते हैं। एक ही grails पर्यावरण से कई बार चलने वाले यूनिट परीक्षण जैसे बहुत ही सरल सामान टूट जाते हैं और उन्हें लोड करने और चलाने के लिए अनंत काल लगते हैं। इसके अलावा grails के साथ सीखने की वक्र django से बहुत अधिक है जब तक कि आप कुछ तुच्छ बना रहे हैं। स्प्रिंग और हाइबरनेट जैसे राक्षसों ने उन राक्षसों के साथ पहले काम नहीं किया है, जो किसी ऐसे व्यक्ति के लिए बहुत सी चीज सीखते हैं। – Divick

1

cakephp.org

CakePHP वास्तव में अच्छा, सच में रेल (1.2) पर रूबी के करीब है। यह PHP में है, साझा मेजबानों पर बहुत अच्छी तरह से काम करता है और इसे कार्यान्वित करना आसान है।

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

मैं पूरी तरह से केकफ़्प की अनुशंसा करता हूं।

+1

मैंने सुना है कि बड़ी परियोजनाओं के लिए सिम्फनी बहुत बेहतर है! http://www.symfony-project.org/ क्या आपके पास इसका कोई अनुभव है? –

+0

मैंने सिम्फनी पर एक नज़र डाली लेकिन मुझे अभी तक पकड़ नहीं आया, और मैं अभी भी केकफ़्प के साथ हूं और संदेह करता हूं कि जब तक रेल पर रूबी नहीं बढ़ता तब तक मैं इसे बदल दूंगा –

+0

सिम्फनी 2 पिछले संस्करण की तुलना में काफी बेहतर है, आपको इसे http: //symfony.com/ – svlada

10

हालांकि यह अजगर में लिखा गया है जो वहाँ है कि इमारत और अनुप्रयोगों बहुत आसान बनाए रखने बनाने तैनाती/पैकेजिंग, डीबगिंग, प्रोफाइलर और अन्य उपकरणों के रास्ते में थोड़ा असली समर्थन का मतलब है।

अजगर है:

  1. एक great interactive debugger, जो अजगर REPL का बहुत अच्छा उपयोग करता है। निर्भरता प्रबंधन, पैकेजिंग और तैनाती के लिए
  2. easy_install anv virtualenv
  3. profiling features अन्य भाषाओं

तो IMHO आप इस चीजों के बारे में चिंता नहीं करनी चाहिए, अजगर और Django का उपयोग करें और आप के लिए :-)

लकी खुशी से रहते हैं करने के लिए तुलनीय, Django runs on Jython के नवीनतम संस्करण, तो आप ऐसा अपने पूरे जावा पारिस्थितिक तंत्र को पीछे छोड़ने की जरूरत नहीं है।

  1. Pylons (अजगर)
  2. webpy (अजगर)
  3. Symfony (PHP)
  4. CakePHP (पीएचपी)

:

चौखटे की बात हो रही है, मैं इस साल का मूल्यांकन इस ढांचे में से कोई भी रेल पर Django या रूबी की शक्ति के करीब आता है। मेरे कॉलेग्यू राय के आधार पर मैं आपको kohana ढांचे की सिफारिश कर सकता हूं। नकारात्मकता यह है कि, यह PHP में लिखा गया है और, जहां तक ​​मुझे पता है, PHP में डीबगिंग, प्रोफाइलिंग और ऐप्स के पैकेजिंग के लिए शानदार उपकरण नहीं हैं।

संपादित करें: यहां एक बहुत अच्छा article about packaging and deployment of Python apps (विशेष रूप से Django ऐप्स) है। यह अब Django समुदाय में एक गर्म विषय है।

+0

पैकेजिंग और तैनाती के बारे में लेख का लिंक अब काम नहीं करता है (पृष्ठ 404 देता है), क्या किसी को पता है कि यह कहां गया? – Epcylon

+0

हालांकि मैं इस बात से सहमत हूं कि पाइथन/Django सिर और पूंछ किसी भी PHP ढांचे से बेहतर है, सरल तथ्य यह है कि PHP में अधिक से अधिक गोद लेने और दिमागीपन है। जब तक आप कुछ खिलौने परियोजना के लिए एकमात्र डेवलपर होने की योजना नहीं बनाते, तो PHP जाने का एकमात्र तरीका है। Django पर निर्भर होने के लिए यह पेशेवर आत्महत्या है, जिसमें कुछ, यदि कोई है, नौकरी के अवसर हैं, और कम अभी भी कर्मचारियों के लिए डेवलपर्स हैं। यदि आप मुझ पर विश्वास नहीं करते हैं, तो किसी भी नौकरी सूची में देखें। अवसरों में अंतर परिमाण के कई आदेश हैं। – Cerin

+0

@ क्रिस एस - मैं पूरी तरह से सफल डेवलपर हूं जो पूरी तरह से Django के साथ काम कर रहा है। मैं आपको आश्वस्त कर सकता हूं कि Django के आधार पर एक पेशेवर आत्महत्या नहीं है। – zuber

3

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

वे Catalyst Framework, और पर्ल पर बस गए। यह लगभग 4 महीने पहले था, और उन्होंने बार-बार बात की है कि आवेदन कितना बेहतर है, और उनके पास कितनी लचीलापन है।

पर्ल के साथ, आपके पास सभी सीपीएएन उपलब्ध हैं, साथ ही साथ बड़ी मात्रा में टूल भी शामिल हैं। मैं कम से कम इसे देखने का सुझाव दूंगा।

+0

के समान है उद्योग में उत्प्रेरक कितनी बार उपयोग किया जाता है? – svlada

+1

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

1

व्यक्तिगत रूप से मैंने Django के साथ कुछ बड़ी परियोजनाएं की हैं, लेकिन मैं केवल "मॉन्ट्रोसिटीज" (स्प्रिंग, ईजेबी) और वास्तव में कम स्तर की सामग्री जैसे ट्विस्टेड की तुलना कर सकता हूं।

व्याख्या की गई भाषाओं का उपयोग कर वेब ढांचे ज्यादातर अपने बचपन में हैं और उनमें से सभी (सक्रिय रूप से बनाए रखा है, जो है) हर दिन बेहतर हो रहे हैं।

1

"अच्छी तैनाती" से आप जावा की ईएआर फाइलों की तुलना कर रहे हैं, जो आपको एक जे 2 ईई सर्वर पर एक फ़ाइल अपलोड करके वेब अनुप्रयोगों को तैनात करने की अनुमति देता है? (और, कुछ हद तक, डब्ल्यूएआर फाइलें; ईएआर फाइलों में निर्भर परियोजनाओं के लिए डब्ल्यूएआर फाइलें हो सकती हैं)

मुझे नहीं लगता कि Django या Rails अभी तक उस बिंदु तक पहुंच गए हैं, लेकिन मैं गलत हो सकता हूं ... zuber पायथन पक्ष पर अधिक जानकारी के साथ एक लेख की ओर इशारा किया।

Capistrano रूबी पक्ष पर मदद कर सकता है।

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

3

पायथन के लिए "अच्छी तैनाती" समस्या - जावा के लिए गहरा महत्व नहीं है।

Django के लिए पायथन परिनियोजन मूल रूप से "फ़ाइलों को स्थानांतरित करें" है। यदि आप चाहते हैं तो आप सीधे उपversण ट्रंक निर्देशिका से बाहर चला सकते हैं।

पाइथन distutils का उपयोग करके, आप एक पसीने को तोड़ने के बिना, खुद को एक वितरण किट बना सकते हैं जो आपके Django ऐप्स को पायथन के साइट-पैकेज में रखता है। मैं इसका बड़ा प्रशंसक नहीं हूं, लेकिन यह करना वास्तव में आसान है।

चूंकि मेरी सामग्री लिनक्स में चलती है, इसलिए मेरे पास सरल "install.py" स्क्रिप्ट है जो सबवर्सन निर्देशिकाओं से /opt/this और /opt/that निर्देशिकाओं में सामान को स्थानांतरित करती है। मैं अपने अपाचे कॉन्फ़िगरेशन में उन निर्देशिकाओं का नाम देने के लिए एक स्पष्ट पथ सेटिंग्स का उपयोग करता हूं जहां अनुप्रयोग रहते हैं।

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

10

Grails।

Grails बस रेल (रूबी) की तरह दिखता है, लेकिन यह groovy का उपयोग करता है जो जावा से सरल है। यह जावा तकनीक का उपयोग करता है और आप बिना किसी परेशानी के किसी भी जावा lib का उपयोग कर सकते हैं।

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

+0

यह मुझे पता है कि जेईई पर्यावरण में सबसे शक्तिशाली चीजों में से एक है! मैं बहुत सारे व्यवसाय अनुप्रयोगों को जानता हूं जो वास्तव में Grails पर चल रहे हैं। तो, Grails के लिए ++। –

+1

ग्रोवी जावा से "सरल" नहीं है। इस तरह के एक बयान का मतलब है कि आपने भाषा में अपनी पूरी क्षमता और जटिलता को समझने के लिए अभी तक पर्याप्त मात्रा में खोला नहीं है। –

+0

Grails साफ है, दुख की बात है कि दस्तावेज अक्सर या तो गायब या सिर्फ सादा गलत है। साथ ही त्रुटि संदेश जो उत्पन्न होते हैं जब चीजें गलत होती हैं वे बहुत बेकार हैं। हालांकि, परिपक्व होने और व्यापक समुदाय प्राप्त होने के बाद, इसकी अच्छी क्षमता मिल गई है। –

8

यह बयान grails स्टार्ट-अप पर डेटाबेस को हटा देता है पूरी तरह से गलत है। स्टार्ट-अप पर इसका व्यवहार पूरी तरह कॉन्फ़िगर करने योग्य और कॉन्फ़िगर करने में आसान है। देव मोड में ऐप चलाने पर मैं आमतौर पर बिल्ड-ड्रॉप का उपयोग करता हूं। जब मैं परीक्षण और उत्पादन में भाग लेता हूं तो मैं अद्यतन का उपयोग करता हूं।

मुझे बूटस्ट्रैप प्रोसेसिंग भी पसंद है जो मुझे Grails में पर्यावरण द्वारा परीक्षण उपयोगकर्ताओं, डेटा आदि को पूर्व-कॉन्फ़िगर करने देता है।

मुझे किसी ऐसे व्यक्ति को देखना अच्छा लगेगा जिसने वास्तव में पेशेवरों/विपक्ष पर कुछ वाणिज्यिक परियोजनाओं की टिप्पणी की है और तैनात किया है। वास्तव में एक दिलचस्प पढ़ाओ।