वेब विकास के लिए सीएल और पायथन के बीच चयन


13

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

मैं वर्तमान में पालतू परियोजनाएं लिख रहा हूं, लेकिन मेरे पास भविष्य के लिए कुछ व्यावसायिक योजनाएं हैं। पॉल अपने निबंध में "गुप्त हथियार" के रूप में LISP के बारे में बोलते हैं। मुझे नहीं पता कि यह कथन 10 साल बाद सच है, लेकिन मैंने अपने पैर की उंगलियों को एक अच्छे सीएल ट्यूटोरियल में डुबो दिया और ऐसा लग रहा है कि LISP वेब विकास के लिए बेहतर हो सकता है।

पॉल ने पायथन का एक अच्छा विकल्प भी बताया है, जो मैं वास्तव में परिचित हूं। मेरा सवाल है: मुझे अपने भविष्य के वेब प्रोजेक्ट्स में से किसे चुनना चाहिए?

मैं किस बारे में सोच रहा था:

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

तो तुम क्या सोचते हो?


PHP की तुलना में पायथन समुदाय कितना बड़ा है? मेरा मानना ​​है कि एक PHP डेवलपर को खोजने की तुलना में पायथन डेवलपर को खोजना बहुत कठिन हो सकता है, इसलिए यदि परियोजना प्रायोगिक है तो मैं केवल इन विकल्पों के बीच चुना जाता हूं।
एलेक्स

मुझे वास्तव में PHP पसंद नहीं है इसलिए यह मेरे लिए कोई विकल्प नहीं है। चूँकि मैं अपना एकमात्र मालिक हूँ, कोई मुझे कुछ भी उपयोग करने के लिए मजबूर नहीं करता है जो मुझे पसंद नहीं है। :)
एडम अरोल्ड

2
@Vash पायथन का विकास समुदाय PHP के समान विशाल नहीं हो सकता है, लेकिन यह अभी भी बहुत बड़ा है। इसके अलावा, मुझे लगता है कि पायथन के ऑनलाइन दस्तावेज़ PHP के लिए बहुत बेहतर हैं।
क्वांटिकल

यह सच है कि मुझे लगता है।
एडम ऑरोल्ड

2
मुझे विश्वास नहीं हो रहा है कि कोई भी अभी तक क्लोजर का उल्लेख नहीं कर रहा है!
चिरोन

जवाबों:


7

आप जावा बैकग्राउंड से आ रहे हैं, तो क्लोजर प्रोग्रामिंग भाषा की जांच क्यों नहीं कर रहे हैं?
यह एक आधुनिक लिस्प बोली है जो जेवीएम पर रहती है, इसलिए आपके पास कई टन जार हैं।

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

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

पायथन सुरक्षित पक्ष है: यह परिपक्व है, पुस्तकों के टन, कई वेब फ्रेमवर्क, विशाल ज्ञान पूल और सीखना आसान है।

तो फैसला वास्तव में आपका है।


1
मैंने हाल ही में क्लोजर की जाँच की है और मुझे लगता है कि यह वही है जो मेरी ज़रूरतों के लिए सबसे उपयुक्त है! सलाह के लिए धन्यवाद!
एडम अरोल्ड

7

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

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

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

इसके अलावा, इन दिनों कार्यात्मक भाषाओं का पुनर्जागरण होता है। यदि आप कुछ कार्यात्मक अवधारणाओं को चुनना चाहते हैं, तो आप JVM पर .NET या Scala के लिए F # देख सकते हैं।

इसलिए अपना चुनाव करें। यदि दोनों वास्तविक भाषाएं हैं, तो आप इनमें से कौन सी सीखेंगे: लैटिन / प्राचीन ग्रीक या फ्रेंच / जर्मन / इतालवी / स्पेनिश / चीनी / अरबी?


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

ठीक है मैं क्या करूंगा: मैं LISP और पायथन भी सीखूंगा, लेकिन मैं पायथन का उपयोग करूंगा, क्योंकि आप और अन्य लोगों ने जो ऊपर उल्लेख किया है। स्पष्टीकरण के लिए धन्यवाद।
एडम एरॉल्ड

3

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

यदि आप लिस्प सीखते हैं, तो मेरा मानना ​​है कि यह आपको लंबे समय में एक बेहतर प्रोग्रामर बना देगा। हालांकि, आपके द्वारा बताए गए कारणों से लिस्प सीखने से आपको अपने तात्कालिक लक्ष्यों IMO के करीब नहीं मिलेगा। यदि आप एक व्यावहारिक, व्यावहारिक समाधान चाहते हैं, तो अजगर सीखें। जब तक आप दिन-प्रतिदिन के कार्यों में कस्टमाइज़िंग एमएसीएस शामिल नहीं करते हैं, तब तक आपको अपने दैनिक कार्यों में लिस्प का उपयोग करने के लिए पर्याप्त उपकरण या अवसर नहीं होते हैं।

दूसरी ओर, यदि आप का अध्ययन करने और सीखने के लिए समय है, और अपनी पसंद के असर के साथ प्रस्तुत करने को तैयार हैं (उपकरण की कमी, कठिन सह कार्यकर्ता, जो खोजने के लिए मिल तुतलाना, आदि), तुतलाना साथ जाना। यह वास्तव में एक भयानक भाषा है।


3

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

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

यदि मैं किसी ऐसे व्यक्ति को किराए पर लेने की समीक्षा कर रहा था, जो कि पायथन में अच्छा था, तो उसकी तुलना में मैं लिस्प में अच्छा था, तो मैं तुरंत मान लूंगा कि पायथन व्यक्ति की तुलना में लिस्प व्यक्ति एक बेहतर प्रोग्रामर और कंप्यूटर वैज्ञानिक था (अन्य सभी चीजें समान हैं)।

मैं अत्याचारपूर्ण पक्षपाती हूं, मुझे यकीन है।


1
बायस्ड या नहीं मैं आपकी बात देख रहा हूँ!
एडम एरॉल्ड

2

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

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

अंततः, मौजूदा माहौल के कारण, लिस्प को चुनना हमेशा एक सवाल के लिए नीचे आता है "क्या आप जो चाहते हैं उसका उपयोग करना चाहते हैं, या क्या आप उस उद्योग का उपयोग करना चाहते हैं जो पहले से ही उपयोग करता है?" आपके उस सवाल का क्या जवाब है?


2

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

जब आप इस पर हों, तो फैक्टर या किसी अन्य भाषा पर एक नज़र डालें । कॉन्टेनेटिव लैंग्वेज आपको कॉम्बिनेटर में सोचने के तरीके सिखाने के लिए अद्भुत हैं । एक सुगम भाषा सीखने से आपके अन्य सभी भाषाओं को देखने का तरीका बदल जाएगा।

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


0

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

एक बात मैं सुझाता हूं, कि चूंकि आप एक जावा प्रोग्रामर हैं, ग्रूवी (या यहां तक ​​कि स्काला) पर एक नज़र डालें। वे आपको अपने जावा पुस्तकालयों और एपीआई का उपयोग करने की अनुमति देंगे और उत्पादकता में वृद्धि प्रदान करेंगे।


VPS कोई समस्या नहीं है क्योंकि मेरे विचार साझा होस्टिंग के साथ काम नहीं करेंगे।
एडम एरोल्ड

0

मैं अपने मूल के अलावा लिस्प के बारे में एक टन नहीं जानता। मैं अजगर के बारे में क्या जानता हूं यह है:

पहली उड़ान तश्तरी भूमि के 5 मिनट बाद, पायथन समुदाय ने अपने I / O सिस्टम के साथ इंटरफेसिंग के लिए कुछ रखा होगा।

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

इसके अलावा, Django आजकल नकल करने के लिए बहुत अधिक रूपरेखा है।

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