2008-11-14 15 views
8

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

यह मेरे लिए अच्छा लगता है, लेकिन अब मुझे आश्चर्य है कि क्या पाइथन वास्तव में एक वेब अनुप्रयोग बनाने के लिए उपयोग करने वाली सही भाषा है या नहीं। अतीत में किए गए अधिकांश वेब एप्लिकेशन सी/सी ++ सीजीआई और फिर PHP थे। Php मुझे काम करने के लिए बहुत आसान पाया क्योंकि यह उपयोगकर्ता इंटरफ़ेस को बैक-एंड से जोड़ना इतना आसान था, और यह भी मेरे लिए अधिक तार्किक समझ बना।

मैंने पहले पायथन का उपयोग नहीं किया है, लेकिन मैं मूल रूप से सोच रहा हूं कि पायथन में सीजीआई प्रोग्रामिंग कितनी आसान है? क्या मुझे सी/सी ++ में ऐसा करने के कठिन तरीके से वापस जाना होगा, जहां आपको टेम्पलेट्स में एचटीएमएल कोड स्टोर करना होगा और सीजीआई को उन्हें उचित मूल्यों के साथ विशेष कोडों को बदलना होगा और यह संभव है कि टेम्पलेट्स हो कोड php के साथ के रूप में?

मैं शायद यहां एक गहरा अनजान प्रश्न पूछ रहा हूं, जिसके लिए मैं क्षमा चाहता हूं, लेकिन उम्मीद है कि कोई मुझे पता चलेगा कि मैं क्या प्राप्त कर रहा हूं! मेरा समग्र सवाल यह है कि: पाइथन में वेब अनुप्रयोगों को एक अच्छा विचार लिख रहा है, और यह उतना आसान है जितना कि यह php के साथ है?

उत्तर

8

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

आवश्यक भाषा सादगी से परे, पायथन WSGI मानक सीजीआई मानक से निपटने के लिए मानक बहुत आसान है।

हालांकि, कच्चे सीजीआई एक बहुत बड़ा दर्द जब एक सब अजगर ढांचे के बहुत सरल बनाया दुनिया के साथ तुलना में है (TurboGears, CherryPy, Django, जो कुछ भी।)

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

Django के साथ, आप मिनटों के भीतर चल रहे हैं और चल रहे हैं। गंभीरता से। django-admin.py startproject और आपके पास कुछ ऐसा है जो आप लगभग तुरंत चला सकते हैं। आपको अपने यूआरएल, डिज़ाइन फ़ंक्शन और डिज़ाइन पेज टेम्पलेट्स लिखना होगा। जो सभी काम है। लेकिन कम सी

Django के पास PHP की तुलना में बेहतर आर्किटेक्चर है क्योंकि प्रस्तुति टेम्पलेट पूरी तरह से प्रसंस्करण से अलग हो गए हैं। यह कुछ भ्रम की ओर जाता है (Syntax error whenever I put python code inside a django template देखें) जब आप Django ढांचे पर मुक्त और अनियंत्रित PHP शैली का उपयोग करना चाहते हैं।

बैक-एंड

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

इसका मतलब है कि आप एक पाइथन-अनुकूल इंटरफेस के साथ CLIPS मॉड्यूल संकलित कर सकते हैं। यह आपके पायथन कोड पर import कथन के साथ कुछ उपलब्ध हो जाता है।

कभी-कभी, हालांकि, यह अप्रभावी है क्योंकि आपके Django पृष्ठ CLIPS इंजन को समाप्त करने की प्रतीक्षा कर रहे हैं। एक विकल्प नामित पाइप की तरह कुछ उपयोग करना है।

आपके पास अपने CLIPS- आधारित ऐप हैं, जो पूरी तरह से सी में लिखे गए हैं, एक नामित पाइप से पढ़ रहे हैं। पाइथन में पूरी तरह से लिखा गया आपका Django एप्लिकेशन, नामित पाइप को लिखता है। चूंकि आपके पास दो स्वतंत्र प्रक्रियाएं हैं, इसलिए आप अपने सभी कोरों को इस तरह से बहुत जल्दी निकाल देंगे।

17

पायथन एक अच्छी पसंद है।

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

ढांचे की बात करते हुए, पाइथन परिदृश्य उनके साथ परिपक्व है। दोनों ही अच्छे और बुरे हैं। कई अच्छे विकल्प हैं लेकिन यह एक नवागंतुक के लिए चुनौतीपूर्ण हो सकता है।

आप देख रहे हैं कुछ है कि वेब/DB/templating एकीकरण मैं Django, TurboGears या Pylons पर रखने का सुझाव देते चाहते हैं के साथ prepackaged आता के लिए। यदि आप व्यक्तिगत घटकों पर अधिक नियंत्रण रखना चाहते हैं, तो CherryPy, Colubrid या web.py देखें।

चाहे यह "PHP के रूप में आसान" है या नहीं, यह व्यक्तिपरक है। आम तौर पर इसे आपके टेम्पलेट्स और एप्लिकेशन लॉजिक को पायथन वेब प्रोग्रामिंग दुनिया में अलग रखने के लिए प्रोत्साहित किया जाता है, जो आपके जीवन को आसान बना सकता है। दूसरी तरफ, एक PHP फ़ाइल में किसी पृष्ठ के लिए सभी कोड लिखने में सक्षम होना "आसान" की एक और परिभाषा है।

शुभकामनाएं।

+0

PHP आपकी साइट के पहले 80% को बाहर करना आसान है। अंतिम 20 कठिन है और रखरखाव भयानक है। यदि आप शुरुआत में PHP के साथ सही करने के लिए समय लेते हैं (ढांचे) में इसे पाइथन वेब ढांचे के रूप में अधिक समय लगता है। –

5

मैं Django सुझाव है, लेकिन यह देखते हुए कि आप "आसान के रूप में के रूप में यह php के साथ है" कुछ के लिए पूछना तो आप पीएसपी (Python Server Pages) पर एक नज़र रखना चाहिए। जबकि Django वेबसाइटों के लिए एक पूर्ण रूपरेखा है, पीएसपी का उपयोग PHP के मुकाबले किसी भी रूपरेखा के बिना किया जा सकता है।

3

PHP में यह पाइथन में वेब-ऐप्स लिखना आसान है। विशेष रूप से क्योंकि अजगर एक टूटी हुई भाषा नहीं है।

कुछ वेब ढांचे को उठाएं जो mod_wsgi का समर्थन करते हैं या स्वयं को रोल करते हैं। डब्ल्यूएसजीआई ऐप्स इसे करने से पकड़ने के बाद तैनात करना वास्तव में आसान है।

यदि आप टेम्पलेट चाहते हैं तो genshi पाइथन के लिए मिले सबसे अच्छे टेम्पलेटिंग इंजन के बारे में है और आप इसका उपयोग कर सकते हैं हालांकि आप इसका उपयोग कर सकते हैं।

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