2010-04-15 15 views
13

मैंने पायथन भाषा के बारे में बहुत अच्छी राय सुनाई। वे कहते हैं कि यह परिपक्व, अभिव्यक्तिपूर्ण आदि है ... मैं पाइथन में उत्पादन-तैयार उद्यम अनुप्रयोग ढांचे की तलाश में हूं। द्वारा "उत्पादन के लिए तैयार" मेरा मतलब है:क्या Python में कोई उत्पादन तैयार वेब अनुप्रयोग ढांचा है?

  • कैशिंग और कथात्मक desciption साथ उद्देश्य-संबंधपरक मानचित्रण का समर्थन करता है (जेपीए, हाइबरनेट आदि की तरह ..)
  • नियंत्रण उन्मुख यूजर इंटरफेस का समर्थन - कोई HTML टेम्पलेट्स लेकिन JSF की तरह कुछ (RichFaces, Icefaces) या GWT, Vaadin, ZK
  • घटक अपघटन और निर्भरता इंजेक्शन (EJB या स्प्रिंग की तरह)
  • इकाई और एकीकरण परीक्षण
  • अच्छा आईडीई समर्थन
  • क्लस्टरिंग, आधुनिक ularity आदि (terracota की तरह, OSGi आदि ..)
  • सफल आईबीएम, ओरेकल आदि जैसी कंपनियों द्वारा उस में लिखित आवेदन देखते हैं
  • वाणिज्यिक समर्थन हो सकता था (मैं वास्तविक व्यावसायिक अनुप्रयोगों नहीं ट्विटर मतलब)

क्या यह पाइथन दुनिया में बिल्कुल संभव है? या केवल विकल्प हैं:

  • उपयोग अजगर और जावा ईई
  • खरीद नेट ढेर
+3

जाएँ आप के बारे में अजगर फिर एक अजगर आधारित ढांचे का उपयोग करने जा कुछ भी नहीं जानते, तो शायद एक बहुत अच्छा विचार नहीं है। –

+9

तो आप जावा ईई की सभी विशेषताएं चाहते हैं ... पायथन में? जावा पर टिको! – jonwd7

+2

लगभग सभी ढांचे आपके "उत्पादन तैयार" मानदंडों को पूरा करते हैं। लेकिन आप सवाल पूछते हैं ("क्या कोई है") जो अनिवार्य रूप से तर्कवादी है। इस सवाल से सवाल क्यों पूछें? –

उत्तर

14

संदर्भ के लिए, मैं स्विट्ज़रलैंड के एक बड़े निजी बैंक में काम करता हूं, जे 2 ईई स्टैक पर एंटरप्राइज़ एप्लिकेशन लिखता हूं।

पाइथन में "उत्पादन तैयार" वेब ढांचे के बहुत सारे हैं। और वहाँ बहुत बड़ी पाइथन आधारित वेबसाइटें हैं।

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

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

यदि आप एंटरप्राइज़-उन्मुख ढांचे चाहते हैं, तो आपको एंटरप्राइज़ स्टैक्स (जावा/नेट) के साथ रहना होगा।

दूसरी ओर, यहां तक ​​कि जावा दुनिया में, ढांचे का उपयोग करने की प्रवृत्ति है जो कम उद्यमशील हैं।लगता है कि स्प्रिंग बनाम ईजेबी 2 या ईजेबी 3 ईजेबी 2 की तुलना में बहुत हल्का वजन है। या फ्लेक्स (जो मेरे विचार में एक उद्यम ढांचे से बहुत दूर है) उद्यम में अधिक से अधिक इस्तेमाल किया जा रहा है। इसलिए यदि आपका उद्यम पर्याप्त रूप से खुला है, तो भविष्य में कूदने के लिए तैयार है, डीजेगो, आरओआर या अन्य आधुनिक वेब 2.0, समुदाय संचालित, ओपन सोर्स, अगली पीढ़ी, सक्रिय रिकॉर्ड आधारित ढांचे का उपयोग करके ... शायद इतना अधिक नहीं हो सकता है। ..

और अंत में, सीधे अपने अंक के कुछ जवाब देने के लिए:

  • ORM के समर्थन/कैशिंग/...: हाँ, लेकिन सबसे समाधान सक्रिय रिकॉर्ड है, जो 90 के लिए ठीक है पर आधारित होते हैं आप जो करना चाहते हैं उसका%, लेकिन निश्चित रूप से पूर्ण/जटिल नहीं है क्योंकि जेपीए/हाइबरनेट
  • नियंत्रण-उन्मुख यूआई: नहीं, और आपको मानक नहीं मिलेगा, इसलिए आपको तीसरे पक्ष के घटक नहीं मिलेंगे। आप जो निकटतम हो सकते हैं वह jQuery या अन्य जेएस यूआई ढांचे के साथ एकीकरण है
  • निर्भरता इंजेक्शन: स्प्रिंगसोर्स द्वारा बनाए गए स्प्रिंग टू पायथन का एक बंदरगाह है। लेकिन डी पायथन दर्शन में नहीं है। एक ही समस्या को कार्यों, डिफ़ॉल्ट तर्क और बंद करने के साथ हल किया जाएगा। और हम तर्क दे सकते हैं कि पाइथोनिक समाधान जावा तरीके से क्लीनर है ...
  • इकाई/एकीकरण परीक्षण: बहुत अच्छा समर्थन, एकाधिक परीक्षण ढांचे। फिर भी, समर्थन जावा के जितना अच्छा नहीं है जहां हमारे पास परीक्षण के आसपास कई टूल हैं।
  • अच्छा आईडीई समर्थन: एक गतिशील भाषा को प्रदान करने वाले समर्थन की मात्रा के लिए तकनीकी सीमाएं हैं, लेकिन कम से कम ग्रहण और नेटबीन दोनों को पाइथन के लिए बहुत अच्छा समर्थन है।
  • क्लस्टरिंग/मॉड्यूलरिटी: क्लस्टरिंग को "शेयर कुछ भी बुनियादी ढांचा" और/या वितरित कैशिंग के साथ हल किया जाएगा। जहां तक ​​मुझे पता है मॉड्यूलरिटी (ओएसजीआई भावना में) के लिए कोई समाधान नहीं है। लेकिन मैं चुनौती दूंगा कि अक्सर ओएसजीआई एक ऐसी समस्या का समाधान है जो हमारे पास उद्यम में नहीं है ...
+0

महान तुलना! –

+2

मुझे लगता है कि पीछे की संगतता एक अप्रासंगिक है, क्योंकि पाइथन 2 अभी भी समर्थित है। यह जावा की तरह नहीं है, जहां यह माना जाता है कि आपको हमेशा उच्चतम संस्करण में अपग्रेड करना चाहिए - दो स्ट्रैंड अब समानांतर में बढ़ रहे हैं। – Kylotan

+6

पायथन 3. सी *+/जावा कार्यान्वयन की तुलना में काफी अधिक पिछड़ा संगत है, जिसमें * संभव * पाइथन 3.x के अपवाद के साथ। मैं जेवीएम/सी ++ कंपाइलर परिवर्तनों से बहुत अधिक ब्रेकेज देखता हूं, लाइब्रेन अपग्रेड से मैं लाइब्रेरी परिवर्तनों का उल्लेख नहीं करता हूं। हाल के वर्षों में सी ++ और जावा में कुछ बदलावों की तुलना में 2.x से 3.x तक जाने के लिए आवश्यक परिवर्तन भी हल्के हैं। पाइथन 'उद्यम' को कॉल न करने का कोई अन्य कारण नहीं है, यह विचार करते हुए कि यह कितना अच्छा एकीकृत करता है और सार तत्व बनाता है। –

27

Django स्वाभाविक पसंद की तरह लगता है के लिए नीचे (भी expensice)

  • छड़ी से सब कुछ लिखें। यह अब तक का सबसे स्थिर और विकसित ढांचा है, जिसका उपयोग several large corporations द्वारा किया जाता है।

    क्योंकि यह एक पायथन ढांचा है, यह आमतौर पर किसी भी पायथन मॉड्यूल का उपयोग कर सकता है, साथ ही साथ Django के लिए किए गए कई मॉड्यूल भी उपयोग कर सकते हैं।

    इसे आपकी सभी आवश्यकताओं को पूरा करना चाहिए, और सीखना/तैनाती करना बहुत कठिन नहीं है।

  • +1

    yay! (अगर वहां केवल अधिक django नौकरियां थीं) –

    +2

    Django +1, और वैसे, मैं web2py से नफरत करता हूं और जो लोग अपने अधीनस्थ को web2py का उपयोग करने के लिए मजबूर करते हैं ... – satoru

    +3

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

    4

    जैसा कि बताया गया है, django शायद सबसे स्थिर पायथन वेब अनुप्रयोग ढांचा है। बदले में अपने अंक का उत्तर देने के लिए:

    • कैशिंग और घोषणात्मक विलुप्त होने (जैसे जेपीए, हाइबरनेट आदि) के साथ उद्देश्य-संबंधपरक मैपिंग का समर्थन करता है। हां,
    • नियंत्रित उन्मुख उपयोगकर्ता इंटरफ़ेस समर्थन - कोई HTML टेम्पलेट्स नहीं है लेकिन जेएसएफ (रिचफेसेस, आइसफ़ेस) या जीडब्ल्यूटी, वाडिन, जेडके जैसे कुछ। नहीं। Django टेम्पलेट्स हैं लेकिन आप कुछ अन्य दृश्य परत को आसानी से जोड़ सकते हैं।
    • घटक अपघटन और निर्भरता इंजेक्शन (जैसे ईजेबी या वसंत)। यकीन नहीं है कि मैंने ईजेबी का उपयोग नहीं किया है।
    • इकाई और एकीकरण परीक्षण। हां, django testing देखें।
    • अच्छा आईडीई समर्थन। काफी अच्छा। ग्रहण + pydev
    • क्लस्टरिंग, मॉड्यूलरिटी आदि (जैसे टेराकोटा, ओएसजीआई आदि ..) देखें। क्या पता।
    • आईबीएम, ओरेकल इत्यादि जैसी कंपनियों द्वारा लिखे गए सफल अनुप्रयोग हैं (मेरा मतलब वास्तविक व्यापार अनुप्रयोग ट्विटर नहीं है)। ला टाइम्स और वाशिंगटन पोस्ट जैसे ज्यादातर समाचार संगठन।
    • वाणिज्यिक समर्थन हो सकता है। कुछ like this हैं।
    1

    क्या आपने ज्योथन को देखा है? जेथॉन जावा वर्चुअल मशीन के लिए पायथन का कार्यान्वयन है। जेयथन पर Django चलाने के लिए संभव है: Django on Jython और जावा ईई अनुप्रयोग सर्वर के साथ ज्योथन और Django का उपयोग करने के लिए: Django on Glassfish

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

    5

    चेक बाहर Zope ...

    +0

    +1: सब कुछ आवश्यक है, साथ ही वाणिज्यिक सहायता का विकल्प। –

    +0

    ज़ोप 2 एक एप्लिकेशन सर्वर है और ज़ोप 3 एक घटक वास्तुकला है? मुझे ज़ोप 2 और 3 या 3 दोनों की आवश्यकता है केवल चाल है? ज़ोप प्रमोशन दिखता है। –

    1
    प्लोन के बारे में

    क्या? अधिक जानकारी के लिए http://www.plone.org पर जाएं। कई उद्यम स्तर अनुप्रयोगों में प्रयुक्त।

    कुछ संगठनों प्लोन का उपयोग कर:

    सीआईए, एफबीआई, नासा, ऑक्सफैम, ब्राजील संघीय सरकार, नोवेल, सूची में चला जाता है।

    तैनात समाधान और मामले के अध्ययन के बारे में जानकारी के लिए www.plone.net

    +0

    प्लोन ज़ोपे पर बनाया गया है। – Unreason

    संबंधित मुद्दे