2009-01-31 14 views
19

ठीक है, तो मैं एक और सूची के बारे में सोच रहा हूं। मुझे बीटा क्लोजर प्रोग्रामिंग पुस्तक की एक प्रति मिली है ...जावा ज्ञान के बिना सीखना क्लोजर

और एक चीज जो मैं सबसे ज्यादा देख रहा हूं वह यह है कि मुझे लगता है कि मुझे पता है ... सभी प्रमुख जावा वर्गों की तरह।

छोड़कर, आम तौर पर, मुझे वास्तव में जावा की परवाह नहीं है। क्लोजर के लिए मेरे लिए एक विकल्प होने के लिए मैं बस इसके बारे में पर्याप्त जानकारी चाहता हूं।

कोई सुझाव है कि मुझे यह जानने के लिए कि मुझे इसकी क्या ज़रूरत है?

उत्तर

19

आपके लिए मेरी मुख्य सिफारिश, आप पहले ही प्रोग्रामिंग क्लोजर खरीदकर पूरा कर चुके हैं। मैंने वर्षों से सालों से जावा से बचा है और छेड़छाड़ की है, और (प्रोग्रामिंग) क्लोजर ने इसे पर्याप्त पुनर्वास किया है कि भाषा अब मुझे उत्तेजित करती है। किसने सोचा होगा कि एक प्रसिद्ध खतरनाक प्रणाली आपको (map #(.getName %) (.getMethods (class ""))) पर बातचीत करने देगी? रूबी से परिचित एक शैली में एक अन्वेषण के लिए "जावा के साथ काम करना, 3.5 एंटी प्रोजेक्ट्स और टास्क टू लंसेट" के माध्यम से देखें।

यदि आप Freenode #clojure में हैं, तो ## जावा में भी शामिल हों। जावा का API documentation प्राप्त करें और इसे आसान रखें। Java answer के लिए वेब पर कुछ ऐसा करें जो आप करना चाहते हैं और इसे कम से कम to Clojure का अनुवाद करें।

संपादित करें:

user=> (use 'clojure.contrib.javadoc) 
nil 
user=> (keys (ns-publics 'clojure.contrib.javadoc)) 
(*remote-javadocs* javadoc find-javadoc-url add-remote-javadoc 
*core-java-api* add-local-javadoc *local-javadocs*) 
user=> (javadoc "this is a java.lang.String") 
true (browses to http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html) 
user=> (javadoc java.net.ServerSocket) 
true (...) 
user=> 
-1

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

+0

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

+0

ठीक है, मुझे नहीं पता था कि आप अन्य लिस्प विकल्पों से परिचित थे या नहीं। मैं जो सुझाव दे रहा हूं वह यह है कि मौजूदा लिस्प पृष्ठभूमि से आ रहा है, यदि आप जावा इंटरऑपरेबिलिटी फीचर्स में रुचि नहीं रखते हैं तो क्लोजर आपको बहुत नया नहीं देगा। शायद आप जो खोज रहे हैं उसके बारे में अधिक जानकारी दे सकते हैं। –

+0

मैं एक मजबूत, मानकीकृत, मंच-स्वतंत्र लिस्प की तलाश में हूं। आम लिस्प बस विंडोज कंपाइलरों के लिए बेकार है जब तक आप शीर्ष सामान पर पैसा नहीं उड़ाते। इस योजना में एक मजबूत पर्याप्त मानकीकरण की कमी है, जिसके लिए minimalism इसके लिए कमजोरी है। – user54650

1

आपको Google और StackOverflow के माध्यम से आपको जो कुछ चाहिए, उसे चुनने में सक्षम होना चाहिए, लेकिन जब तक आपको जावा के मानक पुस्तकालयों के लिए अच्छा अनुभव न हो जाए तब तक आप दोनों का दौरा करने की उम्मीद कर सकते हैं।

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

8

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

0

ग्रेग ऊपर बताते हैं के रूप में, भाषाओं तरह Clojure और ग्रूवी एक मुख्य कारण के लिए JVM लक्षित करते हैं, तो यह है कि जावा डेवलपर्स का सबसे अच्छा दोनों दुनिया हो सकता है: CLJ पर । इसलिए, यदि आप लिस्प सीखना चाहते हैं, तो योजना या सामान्य लिस्प एक महान शुरुआत होगी!

+1

जैसा कि मैंने ऊपर उत्तर दिया है, मुझे पहले से ही सामान्य लिस्प और योजना पता है।मुझे समेकन और मुक्त कंपाइलरों की गुणवत्ता के स्तर के बारे में शिकायतें हैं। क्लोजर जेवीएम को संकलित करता है, जो कुछ मामलों में कोड रिलीज के लिए बहुत बेहतर है ... मैंने हाल ही में जावा सीखने की कोशिश शुरू कर दी है। – user54650

21

उम्म, वास्तव में, हालांकि क्लोजर जावा डेवलपर्स के साथ विकसित किया गया था, माना जाता है कि जावा प्रोग्रामर के लिए लिखा नहीं गया था।

क्लोजर जावा वातावरण में अच्छी तरह से इंटरऑपरेट करने के लिए डिज़ाइन किया गया है।

हालांकि यह होता है, इस क्या इसके लिए डिजाइन किया गया था ("जावा पर्यावरण" की भाषा हिस्से में कम से कम नहीं) नहीं है। और "जावा पर्यावरण" का तात्पर्य है कि भाषा और जेवीएम किसी तरह से जुड़े हुए हैं जो उन्हें एक बनाता है। वो नहीं हैं। Conjure एक मूल JVM भाषा है (Jython या JRuby के विपरीत), और यह भीतर रहने के लिए एक बहुत अच्छी तरह से निर्मित वर्चुअल मशीन का उपयोग करता है।

ग्रेग की तरह कहा, हालांकि, Clojure जावा के साथ होने के लिए बनाया गया है, और जब तक आप वास्तव में Clojure के सॉफ्टवेयर व्यवहार स्मृति प्रणाली में प्राप्त करना चाहते हैं, मुझे कोई दूसरी लिस्प की जाँच करने के लिए कहेंगे।

नहीं, क्षमा करें। क्लोजर "जावा के साथ बनने के लिए" नहीं था। यह जेवीएम के लिए बनाया गया था। यदि आप चाहें तो जावा पुस्तकालयों का उपयोग कर सकते हैं, लेकिन इसकी आवश्यकता नहीं है (हालांकि यह उपयोगी है)। और यदि आप जावा सीखना नहीं चाहते हैं तो एक अलग लिस्प का उपयोग करने की सलाह। क्या बकवास है। क्लोजर जावा होने के लिए नहीं है; यह एक प्रथम श्रेणी लिस्प के लिए है। और एक, वैसे, इसका मतलब है कि कुछ और तरीकों से लिस्प को बढ़ाने के लिए, इसे और अधिक आधुनिक और कार्यात्मक बनाने के लिए। जावा के साथ अच्छी तरह से काम करने की क्षमता को बोनस माना जाना चाहिए, न कि देयता।

जैसा कि ग्रेग अंक से ऊपर है, क्लोजर और ग्रोवी जैसी भाषाएं एक मुख्य कारण के लिए जेवीएम को लक्षित करती हैं, ताकि जावा डेवलपर्स दोनों दुनिया के सर्वश्रेष्ठ हो सकें।

भी गलत। ऊपर बताए गए कारणों के लिए। वे जावा डेवलपर्स के लिए नहीं लिखे गए थे। यहां इतने अस्पष्ट होने के लिए खेद है, लेकिन मैंने इन उत्तरों में क्लोजर पर एक शिक्षित पोस्ट नहीं देखी है, और मैंने आज क्लोजर के बारे में अभी सीखा है! इतनी आसानी से दी गई इस तरह की हानिकारक सलाह को देखना निराशाजनक है।

मैं सिर्फ रिक हिक्की (पुरुष जो Clojure लिखा था) से एक उद्धरण के साथ खत्म हो जाएगा: "। आप जावा नफरत और JVM की तरह कर सकते हैं"

वह कहता है कि वह कहां खड़ा है।

1

आप जावा सीखने के बिना क्लोजर सीख सकते हैं लेकिन मूलभूत बातें जानने के लिए हमेशा अच्छा होता है। आप क्लोजर सीखने के लिए Clojurecademy का उपयोग कर सकते हैं जिसमें कोडेकैडमी जैसे इंटरैक्टिव (हैंड-ऑन) शिक्षण मॉडल है।

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