प्रदर्शन और जावा इंटरऑपरेबिलिटी पर: क्लोजर बनाम स्काला


82

मैंने पहले ही क्लोजर बनाम स्काला के विभिन्न खातों को पढ़ा है और जब मुझे पता चलता है कि दोनों का अपना स्थान है। वहाँ कुछ विचार है कि जब यह दोनों लाला की तुलना स्काला के साथ करने की बात आती है, तो मैंने एक पूर्ण विवरण प्राप्त नहीं किया है:

1.) आम तौर पर दो भाषाओं में से कौन सी भाषा अधिक तेज़ है ? मुझे एहसास है कि यह एक भाषा सुविधा से दूसरे में भिन्न होगी, लेकिन प्रदर्शन का एक सामान्य मूल्यांकन सहायक होगा। उदाहरण के लिए: मुझे पता है कि पायथन डिक्शनरी वास्तव में तेज़ हैं। लेकिन कुल मिलाकर, यह जावा की तुलना में बहुत धीमी भाषा है। मैं क्लोजर के साथ जाना नहीं चाहता और सड़क के नीचे इस समस्या में भाग सकता हूं।

2.) जावा के साथ इंटरऑपरेबिलिटी कैसी है? मैंने अब तक पढ़ा है कि स्काला के मूल संग्रह प्रकार हैं जो एक बड़े जावा कोड-बेस के साथ एकीकृत करने के लिए इसे थोड़ा अनाड़ी बनाते हैं, जबकि क्लोजर जावा कक्षाओं के साथ अंतर करने के लिए एक सरल Iterable / Iterator-centric तरीके का अनुसरण करता है। इस पर कोई और विचार / विवरण?

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


1
Clojure 1.2 के साथ Clojure जावा को बिना ओवरहेड कह सकते हैं। असेंबली . com / wiki / show / clojure / Datatypes और assembla.com/wiki/show/clojure/New_new को देखें । ऐसा इसलिए किया जाता है क्योंकि क्लीजुर जावा के करीब होना चाहता है लेकिन क्लोजर में इसे लागू किया जाता है।
निकल

जवाबों:


73

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

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

इंटरॉप डब्ल्यू / जावा के बारे में, स्काला जावा के करीब है, लेकिन मुझे यकीन है कि दोनों भाषाएं अच्छी तरह से मेल खाती हैं। में Clojure प्रोग्रामिंग स्टुअर्ट Halloway लिखते हैं: "[आप तक पहुँच सकते हैं] कुछ भी आप जावा कोड से तक पहुँच सकता है। "।

और चूंकि स्काला लेखक मार्टिन ओडस्की ने सन के जावा संकलक को लिखा था , मुझे लगता है कि स्काला की तरफ कोई गेंद नहीं फेंकी गई है। :-)

आपको दो बेहतर भाषाओं को चुनने के लिए कड़ी मेहनत करनी होगी, हालाँकि मुझे रूबी भी पसंद है। आप चिंतित क्यों हैं कि कौन सा प्रयास करें? क्यों नहीं उन दोनों की कोशिश? स्काला के "अगले जावा" होने की अधिक संभावना है, जबकि यह कल्पना करना कठिन है कि लिस्प आखिरकार 50 वर्षों तक ऐसा नहीं करने के बाद इसे हटा देगा। लेकिन यह स्पष्ट है कि लिस्प अपने स्वयं के अनूठे स्तर के अनूठे स्तर पर है, और क्लोजर काफी सरल है, इसलिए स्काला + क्लोजर सिर्फ (बल्कि जटिल) स्काला की तुलना में बहुत कठिन नहीं होगा और मुझे यकीन है कि आपको खुशी होगी कि आपने किया यह।

और इस मामले के लिए वे ...

* दलविक (एंड्रॉइड जेवीएम) को 2010 में 2.2 संस्करण में जेआईटी कंपाइलर मिला


6
हुह। खैर, सभी अंतर्दृष्टि के लिए धन्यवाद। सबसे पहले, मैं उस मोड में था जहाँ मैं सिर्फ एक चुनना चाहता था और उसके साथ दौड़ना चाहता था। लेकिन किसी कारण से, यह मेरे लिए नहीं था कि मैं दोनों का उपयोग कर सकता था और उन्हें अंतर-ऑपरेट कर सकता था। तो, शायद मैं दोनों को
चुनूंगा

7
और मैं यह जोड़ना चाहता हूं कि मेरे पास LISP के लिए "सॉफ्ट स्पॉट" का एक सा है, इसलिए कि तथ्य यह है कि क्लारेज पेरेथाइटिस से पीड़ित है, मुझे डराने के लिए पर्याप्त नहीं है।
रायन डेलूची

8
यह हमेशा सच नहीं है कि जेवीएम में लिखी गई भाषा शीर्ष गति पर प्रदर्शन करेगी। मूल JRuby ने घृणित प्रदर्शन किया था क्योंकि यह एक दुभाषिया था जिसे JVM के लिए संकलित किया गया था, न कि स्रोत कोड। भाषा, को भी दोष दिया जा सकता है। गतिशील भाषाओं की तुलना में सांख्यिकीय रूप से टाइप की जाने वाली भाषाओं को अक्सर अनुकूलित करना आसान होता है,
बिल के

7
-1 "स्काला और क्लोजर दोनों जेवीएम भाषाएं हैं इसलिए उन्हें समान प्रदर्शन होना चाहिए" बिल्कुल कोई मतलब नहीं है। डायनेमिक भाषाएं जिन्हें जावा जैसी स्थैतिक भाषाओं के साथ परस्पर जुड़े रहने की आवश्यकता होती है, वे हमेशा बहुत धीमी होती हैं (ओवरलोडिंग एक बड़ी लागत पर आती है, टाइप
हिंटिंग

4
@julkiewicz - यह केवल सच नहीं है कि गतिशील भाषा हमेशा बहुत धीमी होती है। यह इस बात पर निर्भर करता है कि आपका कंपाइलर प्रश्न में कोड के अनुकूलन का एक अच्छा काम कर सकता है या नहीं। उदाहरण के लिए, क्लोजर में आप जावा प्राइमेटिक्स के साथ अंकगणित कर सकते हैं जो जावा प्रदर्शन से बिल्कुल मेल खाता है। इसी तरह, एक प्रकार-संकेतित जावा ऑब्जेक्ट पर एक विधि को कॉल करना एक जावा ऑब्जेक्ट विधि कॉल के रूप में तेज़ है। क्लोजर कंपाइलर अनिवार्य रूप से उसी बाईटेकोड का उत्पादन करता है जो जावा जावा समकक्ष जावा कोड के लिए होता है।
मीका 3

32

वर्तमान के साथ जेवीएम स्काला को स्टेटिक रूप से टाइप किए जाने के कारण फायदा है क्योंकि डायनामिक टाइपिंग के लिए जेवीएम सपोर्ट - परावर्तन धीमा है। वास्तव में, एक स्काला फीचर, जिसे समान तकनीकों, संरचनात्मक प्रकारों के माध्यम से लागू किया जाना चाहिए, को अक्सर इस कारण से चेतावनी दी जाती है।

इसके अलावा, स्काला उत्परिवर्तित वस्तुओं को सिर्फ ठीक स्वीकार करता है, और कुछ एल्गोरिदम उत्परिवर्तन के साथ लागू करने के लिए बस तेज होते हैं।

चूँकि स्काला और जावा दोनों अनिवार्य रूप से वर्ग-आधारित भाषाएं हैं, इसलिए वे अधिक आसानी से परस्पर जुड़ती हैं। या, शायद, अधिक मूल रूप से। एक जावा वर्ग स्काला के लिए एक वर्ग है, और एक स्काला वर्ग जावा के लिए एक वर्ग है। जब यह स्काला के एकल या जावा के स्थैतिक सदस्यों की बात आती है, तो समस्याएँ उत्पन्न हो सकती हैं, विशेष रूप से तब जब इसमें एक फ्रेमवर्क शामिल होता है जो चीजों को एक निश्चित तरीके से काम करने की उम्मीद करता है।

इसलिए मैं इन दोनों खातों पर स्काला के साथ जाऊंगा । क्लोजर, कई मायनों में, एक बेहतर भाषा है , और इसमें निश्चित रूप से बहुत दिलचस्प विशेषताएं हैं (अभी तक) स्काला पर मौजूद नहीं हैं, लेकिन आप पूरी तरह कार्यात्मक होकर इस तरह के लाभों को प्राप्त करते हैं। यदि आप ऐसा करने का इरादा रखते हैं, तो क्लोजर बहुत बेहतर है। यदि आप नहीं करते हैं, तो आपको संभवतः स्काला के साथ रहना चाहिए।


9
क्लोजर की कार्यात्मक प्रोग्रामिंग विशेषताएं सबसे सम्मोहक कारण हैं कि मैं इस भाषा पर विचार क्यों कर रहा हूं। मैं उस बिंदु पर पहुँच रहा हूँ जहाँ: यदि मैं एक कार्यात्मक शैली में कुछ कोडिंग नहीं कर रहा हूँ - तो मैं वैसे भी जावा में एम्बेडेड स्क्रिप्टिंग भाषा से परेशान क्यों हूँ? त्वरित और गंदे काम करने के लिए मेरे पास पहले से ही पायथन है।
रयान डेलुची

9
फिर क्लोजर के साथ जाएं।
डैनियल सी। सोबरल ऑक्ट

"स्क्रिप्टिंग भाषा जावा में सन्निहित है"। कृपया औचित्य दें।
जुस 12

@ डैनियल: भ्रम के लिए क्षमा करें। मेरा मतलब रयान डेलुची की टिप्पणी से है। वह कहते हैं कि स्काला एक "स्क्रिप्टिंग भाषा जावा में एम्बेडेड है", जिसे मैं नहीं खरीदता। (जब तक उनका मतलब क्लोजर नहीं था, जिसके बारे में मुझे कोई जानकारी नहीं है)।
1212 पर Jus12

@ Jus12 मैंने इसका अर्थ यह निकाला कि वह इन भाषाओं का उपयोग JVM स्क्रिप्टिंग भाषाओं के रूप में कर रहा है , और, यह देखते हुए, कि जब तक वह क्रियाशील नहीं हो जाता, उसे पायथन के ऊपर कोई फायदा नहीं दिखता। फिर फिर, मैं वह नहीं हूं, इसलिए मैं केवल अनुमान लगा सकता हूं।
डैनियल सी। सोबरल सेप

20

ध्यान दें कि क्लोजर और स्काला दो बिल्कुल अलग प्रकार की प्रोग्रामिंग लैंग्वेज हैं - क्लोजर एक फंक्शनल लिस्प जैसी भाषा है, यह ऑब्जेक्ट ओरिएंटेड नहीं है । स्काला एक ऑब्जेक्ट ओरिएंटेड भाषा है जिसमें कार्यात्मक प्रोग्रामिंग विशेषताएं हैं।

मेरी राय में, भाषा की विशेषताएं और अवधारणाएं (कार्यात्मक, OO, ...) प्रदर्शन की तुलना में भाषा चुनने के लिए बहुत अधिक महत्वपूर्ण मानदंड हैं (उस भाषा का एक विशेष कार्यान्वयन) - पूरी तरह से मैं समझता हूं कि आप नहीं ऐसी भाषा में फंसना चाहते हैं जिसके लिए कोई अच्छा प्रदर्शन नहीं हो रहा है।

मैं स्काला के लिए जाऊंगा, क्योंकि यह ऑब्जेक्ट ओरिएंटेड है, लेकिन आपको कार्यात्मक प्रोग्रामिंग सीखने की अनुमति देता है (यदि आप उस में रुचि रखते हैं)। दूसरी ओर, यदि आप OO के बारे में परवाह नहीं करते हैं और आप "शुद्ध" कार्यात्मक प्रोग्रामिंग सीखना चाहते हैं, तो Clojure का प्रयास करें।


9
स्पष्ट रूप से आपने क्लोजर का उपयोग नहीं किया है। क्लोअज़ फंक्शनल के रूप में ऑब्जेक्ट ओरिएंटेड है। आप एक इंटरफ़ेस लागू कर सकते हैं, एक वर्ग का विस्तार कर सकते हैं, निजी और स्थिर कार्यों की घोषणा कर सकते हैं, आदि ( clojure.org/java_interop )।
रिचर्ड क्लेटन

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

>> "प्रदर्शन की तुलना में"। समस्या यह है: क्या होता है जब - एक परियोजना में गहरी - आपको पता चलता है कि आपका प्रदर्शन खराब है - और इसके केवल एक छोटे टुकड़े के कारण नहीं है (जो आपने पहले ही जावा के लिए बदलने की योजना बनाई थी)। जबकि मैं यहां यह कहने का इरादा नहीं कर रहा हूं कि "क्लोजर - अवधि का उपयोग न करें .." यह स्पष्ट होना चाहिए कि प्रदर्शन क्षेत्र में क्लोजर एक बड़ा जोखिम है। अनुप्रयोग स्तर कोड के लिए बहुत सारे अवसर हैं जिनके लिए यह कोई मायने नहीं रखता है: लेकिन बहुत सारे फ्रेमवर्क / मल्टीथ्रेडिंग / प्रोसेसिंग गहन कोड बेस जहां यह एक दायित्व होगा।
StephenBoesch

@javadba लो-लेवल मल्टीथ्रेड कोड के लिए क्लोजर खराब होने का विचार बहुत मनमाना लगता है। क्लोजर को ऐसे डिज़ाइन किया गया है कि बहु-थ्रेडेड प्रोग्रामिंग गलतियाँ करना बहुत कठिन है। अपरिवर्तनीय डेटा और STM विशेषताएँ जो क्लोजर भाषा के लिए मुख्य हैं, कोर स्केल में कुछ उपलब्ध नहीं हैं, और वे इसे बहुत कम संभावना बनाते हैं कि एक प्रोग्रामर गलती से एक दौड़ की स्थिति या गतिरोध को अपने कोड में सम्मिलित करता है। निश्चित रूप से यह रनटाइम के कुछ एमएस की तुलना में अधिक मूल्यवान है जो आपको स्कैला या जावा जैसी सांख्यिकीय रूप से टाइप की गई भाषा से मिल सकता है।
नेबेन

"निश्चित रूप से यह रनटाइम के कुछ एमएस से अधिक मूल्यवान है" .. जो डेटा के पैमाने पर निर्भर करता है। कुछ एमएस कुछ रिकॉर्ड के लिए ठीक है। सैकड़ों लाखों से गुणा करें ..
स्टीफनबॉश

16
  1. मुहावरेदार स्कैला, मुहावरेदार क्लोजर की तुलना में तेज़ है , और ऐसा ही रहेगा।
  2. Scala और Clojure दोनों जावा के शीर्ष पर आसानी से बैठते हैं। न ही इसके नीचे अच्छी तरह से बैठता है।

यदि आपका कोड संपूर्ण समय या महत्वपूर्ण है, तो जावा से चिपके रहें। लेकिन ऐसा नहीं है, भले ही आपको लगता है कि यह है।

कम्प्यूटर भाषा बेंचमार्क खेल Clojure के सच्चे संसाधन लागत पर थोड़ा प्रकाश डालता। कोई क्लोजर डेटा संरचनाएं कार्यरत नहीं हैं। कार्यात्मक और अनुक्रम सार दिखाई नहीं देते हैं।

क्लीजुर साधारण प्रतीत हो सकता है। यह नहीं है, लेकिन यह अभिव्यंजक है। यह जावा की तुलना में पांच गुना धीमी गति से चल सकता है, लेकिन स्रोत पांच गुना छोटा (YMMV) है। अधिकांश अनुप्रयोगों के लिए, यह एक बड़ी जीत है। लेकिन कुछ के लिए, और कई अन्य लोगों के कुछ हिस्सों के लिए, यह एक विनाशकारी नुकसान है।

क्लजुरे भाषा के अनुभव के साथ, मेरा मानना ​​है कि अग्रिम में यह बताना संभव है कि क्या आपकी समस्या क्लीज में व्यक्त किए गए और पर्याप्त रूप से (प्रदर्शन के संदर्भ में) ऐसे भाग में साफ-सुथरी हो जाएगी और एक ऐसा भाग जिसे जावा में करने की आवश्यकता है।

  • आप Scala lite के लिए जा सकते हैं: Scala में Java मुहावरे लिखना। आप कुछ संक्षिप्तता प्राप्त करेंगे, एक वाक्यविन्यास जो आंख पर आसान है, और एक सुसंगत यद्यपि जटिल प्रकार की प्रणाली है।
  • Clojure lite जैसी कोई चीज नहीं है: Clojure में Java मुहावरे लिखना पूरी तरह से व्यर्थ है। आपको मिलेगा धीमा जावा जो समझना मुश्किल है क्योंकि इसे व्यक्त करने के लिए उपयोग किए जाने वाले मुहावरों के दाने को काटता है।

स्कैला को जावा सही कहा गया है । क्लोजर जावा जैसा कुछ भी नहीं है। आप कह सकते हैं कि यह लिस्प ने ठीक किया है - एक बोल्ड, कुछ कहेंगे कि यह पूर्ववत है, दावा - जो सच हो सकता है।


4
यह उत्तर दो के वास्तविक अंतर और शक्तियों / कमजोरियों पर अच्छा प्रकाश डालता है। यह न तो स्केला में लिखा गया है और न ही क्लोजर- अपोलॉजिस्ट तरीके से, बल्कि सच्चाई तरीके से।
StephenBoesch

15

" कंप्यूटर भाषा बेंचमार्क गेम " द्वारा निर्मित आँकड़े सबसे अच्छे के बारे में हैं जो आप शायद खोजने जा रहे हैं।

वे गहराई में हैं और आप कई भाषाओं की तुलना कर सकते हैं। समस्या यह है कि वे क्लोजर को कवर नहीं करते हैं :(

उस ने कहा, कुछ भी प्रस्तुत करना बहुत आसान है - यह सब खुला स्रोत है।

आँकड़े कहते हैं कि स्काला बहुत जल्दी लानत है।


9
तुम वहाँ जाओ। जावा की तुलना में 2-25x धीमी, 2-30x अधिक मेमोरी और कोड का आकार आमतौर पर जावा से बड़ा होता है। ऐसा लगता है कि यह पायथन की तुलना में है, जहां स्काला जावा के बहुत करीब है। मैं कहता हूं कि स्काला एक बहुत ही स्पष्ट विजेता है और क्लोजर काफी धीमा है - जब तक कि क्लोजर टेस्ट खराब नहीं लिखा गया था।
बिल के

2
ऐसा लगता है कि बेंचमार्क अब क्लोजर को कवर करता है (ओपी की टिप्पणी एक वर्ष पुरानी है)। और परिणाम उत्साहजनक नहीं हैं। स्काला जाने का रास्ता है।
मार्टिन

4
ऊपर की टिप्पणियाँ कुछ हद तक पुरानी हैं - 2012 के मध्य तक क्लोज़र ने अंतर को काफी हद तक बंद कर दिया था, अब यह औसतन केवल 2x जावा के बारे में है।
मिकेरा

9

इंटरऑपरेबिलिटी पर, मैं क्लोजर के लिए बात नहीं कर सकता, लेकिन मुझे उम्मीद है कि यह स्केला जैसी स्थिति में होगी।

जावा को स्काला से कॉल करना बहुत आसान है।

जब तक आप अपने बाहरी एपीआई को स्काला और जावा के बीच के सामान्य बिंदुओं के अनुरूप नहीं बनाते हैं, तब तक जावा से स्काला को कॉल करना आसान है। उदाहरण के लिए, एक स्केल ऑब्जेक्ट का जावा में स्थिर तरीकों की तरह उपयोग किया जाता है, लेकिन यह एक ही बात नहीं है। जावा में मजाकिया दिखने वाले नामों के साथ स्काला कक्षाएं कई वर्गों के लिए संकलित कर सकती हैं।

आप ज्यादा घुलना-मिलना नहीं चाहेंगे। स्काला या क्लोजर में भवन निर्माण घटक जो बहुत सारे जावा पुस्तकालयों का उपयोग करता है, बहुत संभव है। आप निश्चित रूप से जावा से इस घटक को कॉल कर सकते हैं, लेकिन आप जो नहीं करना चाहते हैं वह जावा से स्काला कार्यक्रमों के उपयोग के लिए एक स्काला एपीआई का उपभोग करने की कोशिश करना है।

SVN का दावा है कि "CVS सही किया है"। मेरे विचार में, Scala जावा सही किया गया है।


19
तो क्लोजर है git?
रॉन

1
@ रॉन हाहा, मैंने बिल्कुल वैसा ही सोचा।
कोव

2
दरअसल क्लोजर का संग्रह git-ish
जो लेहमैन

2

PragPub का नवंबर 2010 का अंक क्लोजर -जावा इंटरऑपरेबिलिटी पर चर्चा करता है। जावा विधियों को कॉल करना सीधा है, लेकिन जावा कक्षाओं / इंटरफेस का विस्तार करना काफी अलग है।

दूसरी ओर स्काला जावा के अधिक निकट है। स्काला-जावा इंटरऑपरेबिलिटी http://www.codecommit.com/blog/java/interop-between-java-and-scala पर विस्तृत है

जावा कोड को कॉल करना और जावा क्लासेस / इंटरफेस को बढ़ाना उसी तरह काम करता है जैसे कि स्काला कोड को कॉल करना। कुछ दर्द बिंदु जावा के जेनेरिक से निपटने के कुछ किनारे मामले हो सकते हैं, क्योंकि स्काला का प्रकार सिस्टम जावा की तुलना में बहुत मजबूत है। जावा बीन सम्मेलन के बाद गेटर्स और सेटर बनाना एक एनोटेशन की आवश्यकता है

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


1

यह अब (मई 2010 के अनुसार) क्लोजर की नवीनतम 1.2 शाखा में हँसने लायक है - इसमें आदिम प्रकार और स्थैतिक टाइपिंग (विभिन्न प्रकार के संकेत और प्रोटोकॉल के माध्यम से) के लिए अतिरिक्त समर्थन शामिल है।

मेरी समझ यह है कि आप इन सुविधाओं का उपयोग तब कर सकते हैं जब आपको शुद्ध जावा में ठीक उसी कोड को लिखने के लिए गति प्राप्त करने की आवश्यकता होती है।


2
और एक ही समय @specializedमें, आगामी स्काला 2.8 में तकनीक स्काला पुस्तकालयों के लिए एक अनुरूप सुधार ला रही है। और भाषा की सुविधा के रूप में, यह सभी मानक के लिए उपलब्ध है, न कि केवल मानक पुस्तकालय के लिए।
रान्डेल शुल्ज
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.