मेरे प्रश्न का आशय लौ युद्ध शुरू करना नहीं है, बल्कि यह निर्धारित करना है कि प्रत्येक भाषा किन परिस्थितियों में "नौकरी के लिए सबसे अच्छा साधन है।"
मैंने क्लोजर ( प्रोग्रामिंग लौंगुरे , प्रैक्टिकल क्लोजर , द जॉय ऑफ क्लोजर , और मैनिंग अर्ली एक्सेस संस्करण ऑफ क्लोजर इन एक्शन ) पर कई किताबें पढ़ी हैं , और मुझे लगता है कि यह एक शानदार भाषा है। मैं वर्तमान में लेट ओवर लैम्बडा पढ़ रहा हूं जो ज्यादातर कॉमन लिस्प मैक्रोज़ से संबंधित है, और यह भी एक बहुत ही दिलचस्प भाषा है।
मैं एक लिस्प विशेषज्ञ (नौसिखिया से अधिक) नहीं हूं , लेकिन भाषाओं का यह परिवार मुझे आकर्षित करता है, जैसा कि सामान्य रूप से कार्यात्मक प्रोग्रामिंग करता है।
क्लोजर के लाभ (और "अन्य" के नुकसान):
जेवीएम पर चलता है।
JVM एक बहुत ही स्थिर, उच्च-प्रदर्शन भाषा का वातावरण है जो बहुत अच्छी तरह से "एक बार लिखो, भागो [लगभग] कहीं भी" के सपने को पूरा करता है। मैं अपने मैकबुक प्रो पर कोड लिख सकता हूं, इसे एक निष्पादन योग्य जार फ़ाइल में संकलित कर सकता हूं, और फिर इसे लिनक्स और माइक्रोसॉफ्ट विंडोज पर थोड़े अतिरिक्त परीक्षण के साथ चला सकता हूं।
हॉटस्पॉट, और अन्य) जेवीएम उच्च गुणवत्ता वाले कचरा संग्रह और बहुत अच्छा प्रदर्शन करने वाले समय संकलन और अनुकूलन का समर्थन करता है। जहां कुछ साल पहले, मैंने सी में तेजी से चलने के लिए सब कुछ लिखा था, अब मैं जावा में ऐसा करने में संकोच नहीं करता।
मानक, सरल, मल्टीथ्रेडिंग मॉडल। क्या कॉमन लिस्प में एक मानक मल्टीथ्रेडिंग पैकेज है?
साथ उन सभी कोष्ठकों की एकरसता को तोड़ता है
[]
,{}
और#{}
है, हालांकि आम लिस्प विशेषज्ञों शायद मुझे बता देगा कि पाठक मैक्रो के साथ, आप सीएल करने के लिए उन जोड़ सकते हैं।
क्लोजर के नुकसान :
- जेवीएम पर चलता है।
- कोई पूंछ पुनरावृत्ति या निरंतरता नहीं। क्या कॉमन लिस्प निरंतरता का समर्थन करता है? योजना के लिए दोनों का समर्थन चाहिए, मुझे विश्वास है।
अन्य के लाभ (आम लिस्प, विशेष रूप से) (और क्लोजर के नुकसान):
उपयोगकर्ता-निश्चित पाठक मैक्रोज़।
अन्य फायदे?
विचार? अन्य अंतर?