जावा पर सीलोन के क्या फायदे हैं? [बन्द है]


11

नेट पर हाल ही में और शक्तिशाली आगामी प्रोग्रामिंग भाषाओं की तलाश में, मैं सीलोन में आया। मैं ceylon-lang.org पर गिरा और यह कहता है:

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

जावा पर सीलोन के क्या फायदे हैं?


1
हम्म्म्म, मैंने उनकी साइट पर चारों ओर जाँच की और पाया कि मैं जावा से सीलोन पर स्विच करने के लिए कोई सम्मोहक स्पष्टीकरण क्यों नहीं मिला ... काफी हद तक, वे अभी भी शुरुआती चरण में हैं, इसलिए शायद वे जल्दबाजी नहीं करना चाहते हैं और फिर निराश ...
पेटर टॉर्क

1
हम्म, मुझे लगा कि यह एक अन्य भाषा है जिसे एक ओवरहेनियोरिक प्रोग्रामर द्वारा लिखा गया है (ऐसा नहीं है कि इसमें कुछ भी गलत नहीं है: पी), लेकिन मुझे लगता है कि गेबिन किंग ऑफ हाइबनेट की प्रसिद्धि टीम में है, जो आश्वस्त है। फिर भी, मैं नहीं देखता कि कौन सीलन, ग्रूवी या क्लोजर जैसी अन्य भाषाओं पर सीलोन का चयन करेगा।
एंड्रेस एफ

1
संबं धत
ल ं क

1
@AndresF। ऐसा लगता है कि यह Red Hat प्रोजेक्ट है। कुछ कर्षण को वारंट करना चाहिए, लेकिन हमेशा यह कहना मुश्किल है कि जब तक हम बाकी चाहते हैं, तब तक इसे बनाए रखा जाएगा। जावा पिछले 16 वर्षों के लिए पिछड़ा संगत साबित हुआ है - जो अब के लिए हरा देना कठिन है।

जवाबों:


27

सीलोन एक अच्छी मजेदार भाषा की तरह लगता है, लेकिन मुझे लगता है कि यह जावा पर अपेक्षाकृत कुछ "लाभ" है।

मुझे लगता है कि इसमें एक अच्छा वाक्यविन्यास और कुछ और "आधुनिक" भाषा विशेषताएं हैं - हालांकि यह व्यक्तिपरक है और मैं तर्क देता हूं कि प्रोग्रामिंग भाषा चुनने में अपेक्षाकृत मामूली कारक होने चाहिए।

किसी गंभीर परियोजना के लिए भाषा / मंच चुनते समय बहुत अधिक महत्वपूर्ण कारक:

  • क्या यह आपको अपनी दी गई समस्या के लिए बेहतर प्रतिमान में विकसित करने में सक्षम बनाता है? (नहीं - सीलोन स्पष्ट रूप से अधिक भीड़-भाड़ वाले सांख्यिकीय-टाइप किए गए जावा-जैसे OOP स्पेस में एक और भाषा है। इसके विपरीत उदाहरण के लिए Clojure जो कार्यात्मक भाषा स्थान या Groovy को लक्षित कर रहा है, जो एक बहुत ही गतिशील OOP JVO भाषा है इसलिए वे अलग-अलग niches को संबोधित कर रहे हैं। )
  • क्या इसे एक बेहतर पुस्तकालय पारिस्थितिकी तंत्र मिला है? (कोई मौका नहीं .... .... इस संबंध में जावा बेजोड़ है। सबसे अच्छा आप शायद सीलोन से जावा पुस्तकालयों का उपयोग करके समाप्त करेंगे)
  • क्या आप अधिक कुशल डेवलपर्स प्राप्त कर सकते हैं? (संभावना नहीं है, कुछ लोग वर्तमान में सीलोन का उपयोग कर रहे हैं और यहां तक ​​कि अगर उन्होंने किया तो चढ़ाई करने के लिए एक बड़ा सीखने की अवस्था होगी)
  • क्या इसे बेहतर उपकरण मिले हैं? (नहीं - जावा टूलींग बहुत व्यापक और परिपक्व है)
  • क्या यह आपको अधिक उत्पादक बनाता है? (बहस योग्य - इसमें कुछ अच्छी उत्पादक भाषाएं हैं, लेकिन सीखने की अवस्था और टूलींग प्रभावों के साथ इसे वास्तव में पीछे छोड़ दिया जा सकता है)
  • क्या यह बेहतर प्रदर्शन प्रदान करता है? (नहीं - JVM जावा के लिए बहुत अच्छी तरह से अनुकूलित है, यह किसी भी अन्य JVM भाषा को हराने के लिए एक कठिन कॉल है। स्काला करीब आता है, लेकिन यह कई वर्षों के ठीक होने के बाद है ...)
  • क्या यह अधिक लक्ष्य प्लेटफार्मों का समर्थन करता है? (नहीं - यह एक JVM भाषा है जो जावा के समान है)
  • क्या कोड अधिक रखरखाव योग्य है? (शायद नहीं - जावा ने समय की कसौटी पर यहाँ सटीक रूप से खड़ा किया है क्योंकि यह अपेक्षाकृत स्थिर है, परिपक्व है और इसमें उन्नत भाषा की बहुत सारी सुविधाएँ नहीं हैं जो भविष्य के रखवालों को भ्रमित कर सकती हैं)
  • क्या एक बड़ा, सक्रिय और सहायक समुदाय है? (नहीं, कम से कम जावा या अन्य बड़ी जेवीएम भाषाओं जैसे स्काला, क्लोजर, ग्रूवी आदि की तुलना में नहीं)

कुल मिलाकर मैं निश्चित रूप से लोगों को सीलोन के साथ प्रयोग करने और सीखने के दृष्टिकोण से इसके साथ मज़े करने के लिए प्रोत्साहित करूँगा।

लेकिन मुझे वर्तमान में ऐसा कोई भी आकर्षक लाभ दिखाई नहीं दे रहा है जिससे बड़ी संख्या में लोग इसे स्विच करना चाहें (या इसे अन्य जेवीएम भाषाओं जैसे क्लोजर, स्काला, आरयूबी या ग्रूवी से आगे चुनना चाहते हैं)।


2
"क्या यह अधिक लक्ष्य प्लेटफार्मों का समर्थन करता है?" हाँ - आप सीलोन को जावास्क्रिप्ट में संकलित कर सकते हैं।
चोचोस

1
इसके अलावा, मुझे लगता है कि कुछ बिंदुओं का आपका मूल्यांकन वास्तव में मान्य नहीं है क्योंकि सीलोन अभी तक समाप्त नहीं हुआ है, इसलिए इसकी अन्य भाषाओं की तुलना करने का कोई मतलब नहीं है जो अब वर्षों से हैं।
चोचोस

5
@ चेचोस - आप जावा को जावास्क्रिप्ट के लिए भी संकलित कर सकते हैं (Google वेब टूलकिट ऐसा करता है) इसलिए यह जावा के अलावा कुछ भी नहीं है। मैं मानता हूं कि सीलोन स्पष्ट रूप से समाप्त नहीं हुआ है, हालांकि मुझे लगता है कि मेरे सभी बिंदु अब मान्य हैं और अगले 5 वर्षों में कम से कम (भले ही सीलोन टीम अपने सभी वर्तमान रोडमैप को समाप्त करने के लिए) बदलने की संभावना नहीं है।
मायके

1
@ मिकेरा चोकोस पूरी तरह से सही है। सीलोन जेएस को डिजाइन / मूल रूप से संकलित करने का समर्थन करता है। इसे देशी कोड में भी संकलित किया जा सकता है। मुझे लगता है कि यह एक बड़ा अंतर है तो "कहीं एक उपकरण है, किसी के द्वारा, वही करता है, अगर .."
गुंडन

5
@mikera - "वहाँ एक बड़ा समुदाय है", निश्चित रूप से, प्रत्येक आने वाली भाषा के लिए एक हत्यारा तर्क है। यह कहा जा रहा है, एक छोटा समुदाय अक्सर अधिक संवेदनशील और सक्षम होता है। (देखो क्या जावा के बारे में स्क्रैप एसओ पर पूरे दिन लिखा जाता है ....)
इंगो

3

यह जावा में नहीं मिला कुछ अच्छी विशेषताएं हैं:

  1. जनरलाइज किए गए
  2. प्रकार का आविष्कार
  3. मिश्रण (हालांकि यह JDK8 में आ रहा है)
  4. संघ और अंतर्ग्रहण प्रकार (जो वास्तव में बहुत अच्छा है और कई भाषाओं में नहीं पाया जाता है)
  5. "उच्च श्रेणी के कार्य" (हालांकि प्रथम श्रेणी की वस्तुओं के रूप में काफी कार्य नहीं)
  6. क्लोजर (JDK8 में भी आ रहा है)

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

@OlliP आप वास्तव में सभी संघ और चौराहे प्रकार को परिभाषित करने के लिए संकलक उत्पन्न नहीं करना चाहेंगे। जावा में प्रतिच्छेदन प्रकार हैं, लेकिन केवल सामान्य तर्क के रूप में। यह संघ के प्रकारों को कुछ सामान्य सुपरटेप में परिवर्तित करता है, जो मज़ेदार संकलक संदेशों ("और कैप्चर?") की ओर जाता है। यूनियन प्रकारों को भी अशक्तता के लिए उपयोग किया जाता है, जो जावा नल और वैकल्पिक दोनों के लिए काफी बेहतर है।
मातरिनस

2

जहाँ तक मैंने देखा, सीलोन और अन्य "हॉबी-निर्मित" जेवीएम भाषाओं के बीच सबसे बड़ा अंतर यह है कि यह Red Hat / JBoss द्वारा समर्थित है। तो यह JBoss उपकरण / डेवलपर स्टूडियो में एकीकृत एक बहुत अच्छा टूलींग सेट प्राप्त करने वाला है, JBoss AS / गेटिन पोर्टल और सभी Midleware / JEE 6 / BRMS के साथ अच्छी बातचीत। तो आप जेएसएफ में पूर्ण विकसित सीलोन अनुप्रयोगों को विकसित कर सकते हैं, पीएचपी "परिवर्तन और ताज़ा चक्र" और क्या नहीं के साथ बहुत उत्पादक पोर्टलेट।

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


1
"सीलोन और अन्य" शौक-निर्मित "जेवीएम भाषाएँ"। तो क्या स्काला और कोटलिन शौक-निर्मित भाषाएँ हैं?
ओलीपी

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

1

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

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


-2

सीलोन अपने विकास के दौरान सभी बड़े JVM भाषाओं (जैसे कि ग्रूवी को छोड़कर ऊपर उल्लिखित सभी) की तरह एक विनिर्देशन का निर्माण कर रहा है ...

सीलोन (http://ceylon-lang.org/documentation/1.0/spec)

क्लोजर (http://clojure.org/Reference)

स्काला (www.scala-lang.org/docu/files/ScalaReference.pdf)

जावा (http://docs.oracle.com/javase/specs/jls/se7/html/index.html)

JRuby रूबी की कल्पना का अनुसरण करता है जिसे (http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=59579) को भुगतान करना होगा।

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