2008-10-08 18 views
27

Clojure की खोज के बाद मैंने पिछले कुछ दिनों में विसर्जित किया है।मैं जावा से क्लोजर में कैसे संक्रमण कर सकता हूं?

क्लोजर, इसके विपरीत, और संयोजन में जावा पर कौन से प्रोजेक्ट प्रकार स्वयं को उधार देते हैं?

क्लोजर से पहले कभी भी कार्यक्रमों के उदाहरण नहीं दिए गए थे?

+1

मैंने कभी इसके बारे में नहीं सुना है! लेकिन इसके लिस्प! हुर्रे! लिस्प वापस आ रहा है! –

+0

मुझे इसका उत्तर जानने में दिलचस्पी है। मैं क्लोजर के बारे में और जानना चाहता हूं। –

+0

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

उत्तर

14

क्लोजर concurrent programming पर खुद को अच्छी तरह से उधार देता है। यह थ्रेडिंग से निपटने के लिए सॉफ्टवेयर ट्रांजैक्शनल मेमोरी और परिवर्तनीय संदर्भों के रूप में ऐसे अद्भुत टूल प्रदान करता है।

पश्चिमी मास डेवलपर समूह के लिए एक डेमो के रूप में, रिच हिकी ने एक चींटी कॉलोनी सिमुलेशन किया जिसमें प्रत्येक चींटी का अपना धागा था और सभी चर अपरिवर्तनीय थे। यहां तक ​​कि धागे की एक बड़ी संख्या के साथ चीजें बहुत अच्छी तरह से काम किया। यह केवल इसलिए नहीं है क्योंकि रिच एक अद्भुत प्रोग्रामर है, यह भी इसलिए है क्योंकि उसे अपना कोड लिखते समय लॉकिंग के बारे में चिंता करने की ज़रूरत नहीं थी। आप उसका presentation on the ant colony here देख सकते हैं।

+0

ग्रेट दिमाग एक जैसे सोचते हैं :) रिक और मैं दोनों इस वर्ष की शुरुआत में नॉर्थम्प्टन में समेकन प्रस्तुति पर थे। –

+0

क्या किसी को पता है कि इस चींटी कॉलोनी डेमो के लिए स्रोत कहां ढूंढना है? –

+0

चींटी कॉलोनी स्रोत: http://clojure.googlegroups.com/web/ants.clj –

6

यदि आप समवर्ती प्रोग्रामिंग का प्रयास करने जा रहे हैं, तो मुझे लगता है कि क्लोजर बॉक्स से बाहर जावा से प्राप्त होने से कहीं बेहतर है। इस प्रस्तुति पर एक नजर डालें देखने के लिए क्यों:

http://blip.tv/file/812787

मैं अपने ब्लॉग

http://loufranco.com/blog/files/category-20-days-of-clojure.html

मैं SICP व्याख्यान के साथ शुरू किया पर Clojure के साथ मेरी पहली 20 दिनों के दस्तावेज और फिर एक समानांतर बनाया प्राइम नंबर चलनी। मैं मैक्रोज़ के साथ भी खेला।

+0

@LouFranco: ओह हे, हाँ मैंने कल रात आपकी सभी पोस्ट पढ़ीं, क्षमा से पहले कनेक्शन नहीं बनाया। यह बहुत जानकारीपूर्ण था, धन्यवाद। :) मैंने सभी वीडियो @ ब्लिप को देखा है और साथ ही साथ बहुत सारे ब्लॉग पढ़े हैं। मैं वास्तव में जहाज कूदने की व्यवहार्यता के रूप में वास्तव में सोच रहा हूँ। –

+0

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

4

क्या परियोजना प्रकार Clojure से अधिक जावा का उपयोग कर, उपाध्यक्ष विपरीत के लिए खुद को उधार दे, या संयोजन में?

एक परियोजना जहां एक जीयूआई निर्माण उपकरण (जैसे Netbeans में मैटिस के रूप में) जरूरत एक मामले में जहां जावा अभी भी आवश्यक हो सकता है किया जाएगा है। में किए गए कुछ भी क्लोजर में आसानी से प्रॉक्सी और जेन-क्लास के साथ की आवश्यकता के साथ किया जा सकता है, या केवल जावा को आवश्यक (।, Doto, new, आदि) तक पहुंचा जा सकता है। यह क्लोजर परियोजनाओं को आसानी से जावा पुस्तकालयों या विरासत जावा कोड का उपयोग करने की अनुमति देता है।

क्लोजर से पहले आपने कौन से प्रोग्राम कभी नहीं किए थे?

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

- "MikeM"[email protected] मेलिंग

+0

क्या आपने क्लोजर सर्वलेट बनाने के लिए किसी भी ढांचे का उपयोग किया था? – Pablo

+0

@ जे। पाब्लोफ़र्नएन्डेज़: मैं सुझाव दूंगा कि आप क्लोजर समूह @ Google समूह पर जाएं और अपना प्रश्न पूछें। Clojure Rich Hickey के निर्माता के साथ बहुत से अनुभवी उपयोगकर्ता हैं। –

2

क्या परियोजना प्रकार Clojure, ठीक इसके विपरीत से अधिक जावा के लिए खुद को उधार देने के माध्यम से, और संयोजन में?

आप एक रूपरेखा है कि जावा और Clojure से भस्म किया जाना है विकसित करने के लिए चाहते हैं, तो मैं जावा में मुख्य कपोल-कल्पना (इंटरफेस विज्ञापन आधार वर्ग) लिख पाया है उन्हें Clojure में लिखने से अधिक बेहतर होने के लिए (मुझे लगता है क्लोजर का gen-class कुछ हद तक कठिन और proxy का उपयोग करें)।

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

इसके अलावा, मुझे कोई उपयोग नहीं किया गया है जिसके लिए क्लोजर जावा से कम उपयुक्त है; आपको स्थैतिक टाइपिंग के नुकसान का सामना करना पड़ेगा, ज़ाहिर है, जो पहले कुछ हद तक निराशाजनक महसूस करता है, लेकिन दूर जाने लगता है।

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