2012-05-08 18 views
6

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

पीएस: क्लोजर के बारे में मुझे मत बताएं :)। लिस्प एक खुजली है जिसे मुझे खरोंच की जरूरत है।

+0

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

+0

मुझे संदेह है कि यह एक सामाजिक मुद्दा है। चूंकि अपेक्षाकृत कुछ लिस्पर हैं, लिस्प-आधारित वेब अनुप्रयोगों में आमतौर पर बहुत सारे योगदानकर्ता नहीं होते हैं। इसलिए, डेवलपर्स को मूलभूत बातें प्राप्त करने और चमकदार AJAX सुविधाओं जैसी चीज़ों की उपेक्षा करने पर ध्यान देना पड़ता है। –

+0

साथी googlers के लिए: मैं सुझाव देता हूं कि [भयानक आम lisp] (https: //codyreichert.github पर एक नया नज़र डालें।आईओ/भयानक-सीएल /) सूची! – Ehvince

उत्तर

6

यह सुनिश्चित नहीं है कि इसमें "अच्छी नेटवर्किंग" क्यों न हो; यदि आप कुछ पोर्टेबल कॉमन लिस्प एप्लिकेशन लिखना चाहते हैं तो आप थ्रेड पर भरोसा नहीं कर सकते हैं क्योंकि कुछ कार्यान्वयन उन्हें समर्थन नहीं देते हैं (AFAIK, बस clisp, हालांकि आप इसे प्रयोगात्मक थ्रेड समर्थन के साथ संकलित कर सकते हैं)। यदि आप एक कार्यान्वयन चुनने और इसके साथ चिपके रहने की योजना बनाते हैं, तो आपको वह समस्या नहीं होगी।

"मानक" सीएल वेब ढेर Hunchentoot/cl-who/clsql ही आप ट्यूटोरियल Araneida या Portable AllegroServe पर चलने वाले पा सकते हैं।

सेटअप का उपयोग मैं Debian/SBCLquicklisp चल रहा है और MySQL के साथ ऊपर सिस्टम डेटाबेस के लिए (हालांकि मैं गंभीरता से Postgres के ऊपर से कूदते पर विचार कर रहा हूँ) और nginx Hunchentoot किसी भी स्थिर सामग्री की सेवा के सामने चलाने के लिए।

+0

मैंने मैक पर एसबीसीएल का उपयोग करने की कोशिश की, लेकिन जब मैंने वेबलॉक्स लोड करने का प्रयास किया तो मुझे "थ्रेडिंग अक्षम" त्रुटि मिली। मैंने थ्रेडिंग सक्षम की, लेकिन यह अभी भी वही डर्न चीज़ कहती है :)। वैसे भी, मैं अभी के लिए क्लोजर रहना होगा। सारी जानकारी के लिए शुक्रिया। मुझे लगता है कि यह एक अच्छी शुरुआत है। – Ravi

+0

@Ravi मेरे अनुभव में, एसबीसीएल और क्लोजर सीएल उनके व्यवहार के तरीके में बहुत समान हैं, इसलिए उत्तरार्द्ध का उपयोग किसी भी समस्या का कारण होने की संभावना नहीं है। उदाहरण के लिए, मैं जीएनयू/लिनक्स पर मैक ओएस एक्स और एसबीसीएल पर क्लोजर सीएल करता हूं, और मुझे अभी तक दोनों के बीच कोई पोर्टेबिलिटी समस्या नहीं आती है। (सीएलआईएसपी और ईसीएल पूरी तरह से एक और मामला है, लेकिन वेब ऐप्स लिखते समय, मैं बस उनके अस्तित्व को अनदेखा करता हूं। :)) –

+0

वैसे, इस उत्तर में वर्णित पुस्तकालयों के अलावा, मैं सुझाव देता हूं [पोस्टमोडर्न] (http://marijnhaverbeke.nl/postmodern/) आपके डेटाबेस की जरूरतों के लिए। मैंने इसे बहुत लचीला और अनुमानित पाया है। –

3

मैक- heroku सामान्य lisp वेबपैप को बनाए रखा गया है।

https://github.com/mck-/heroku-cl-example/tree/

+1

मुझे यह पसंद है। मैं इसे एक शुरुआती बिंदु के रूप में उपयोग करूंगा। – Ravi

2

कॉमन लिस्प के साथ समस्या यह है "नेटवर्किंग" है, हम सीएल मानक में सॉकेट की जरूरत नहीं है, इसलिए प्रत्येक कार्यान्वयन यह खुद सॉकेट API है है। हालांकि, हमारे पास एक सामान्य इंटरफ़ेस देने के कुछ प्रयास हैं, जैसे usocket। आप नेटवर्किंग से संबंधित पैकेज here की एक सूची पा सकते हैं।

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

+0

पहले कभी गुफाओं के बारे में नहीं सुना। यह अच्छा लगता है। – Ravi

8

वर्तमान में मैं RestasHunchentoot पर आधारित एक ढांचा का उपयोग कर रहा हूं और रेल की मार्ग प्रणाली से प्रेरित हूं। मैं Postmodern का उपयोग PostgreSQL डेटाबेस से इंटरैक्ट करने के लिए भी करता हूं और मैं cl-markup के साथ HTML उत्पन्न करता हूं हालांकि मैं cl-who पर स्विच करने के बारे में सोच रहा हूं जो अधिक अनुकूलन योग्य दिखता है।

जब मैं शुरू कर दिया है मैं भी JavaScript उत्पन्न करने के लिए Parenscript का उपयोग कर विचार किया है लेकिन अब मैं Mootools और सादे JavaScript साथ बस खुश हूँ।

सब कुछ एसबीसीएल पर चलता है और क्विकलिस्प के साथ उपलब्ध है।

+0

पेरेंटस्क्रिप्ट दिलचस्प लग रहा है। आपका सेटअप व्यापक दिखता है। धन्यवाद। – Ravi

+1

मैं थोड़ी देर के लिए रेस्टस के साथ खेल रहा हूं। मुझे यह क्यों पसंद है: 1) जैसा कि नाम से पता चलता है कि यह आराम से डिजाइन को प्रोत्साहित करता है 2) यह आसान है, अगर आप एमवीसी के मामले में सोचते हैं तो यह बहुत सी हिस्सा है, और बहुत अच्छी तरह से किया जाता है। 3) यह बहुत लचीला है 4) मुझे मार्गों की अवधारणा मिलती है जिस तरह से Django नियमित अभिव्यक्तियों का उपयोग करके अपना प्रेषण करता है (हालांकि मुझे लगता है कि रेलों से यह अच्छा विचार मिल गया है) 5) आप अपनी साइट को मॉड्यूल में बना सकते हैं और फिर उन्हें माउंट कर सकते हैं url.py फ़ाइलों के स्पेगेटी धनुष का उपयोग करने की प्रोजेक्ट में ऐप्स को व्यवस्थित करने के Djangos तरीके से फिर से विशिष्ट यूआरएल। 6) इसकी लिस्पी :) –