यहां कुछ कारण दिए गए हैं, जो आपकी प्राथमिकताओं के आधार पर आपके लिए अधिक या कम सम्मोहक हो सकते हैं:
बस "सिंटैक्टिक शुगर" होने के लिए इसे छूट न दें। तुम कहते हो सकता है कि कुछ है तो बस एक प्रोग्रामर बस के रूप में अच्छी तरह से एक कॉफी या चाय पीने वाला के रूप में - वाक्यात्मक चीनी, यह सब चीनी हैं जो आपके जीवन sweetens के बाद है।
सिंगलटन - प्रत्येक स्केला object
स्वाभाविक रूप से एक सिंगलटन है। यह मानते हुए कि जावा दुनिया में लोग सभी प्रकार से एकल को लागू कर रहे हैं और अधिक से अधिक बार उनके कार्यान्वयन में कुछ गलती नहीं करने की तुलना में, आप स्काला में उस तरह से एक त्रुटि नहीं कर सकते। लिखने के object
बजाय class
यह एक एकल बनाता है और आप कर रहे हैं।
स्थिर तरीकों तक पहुँच: जावा में स्थिर तरीकों को वस्तुओं से पहुँचा जा सकता है। उदाहरण के लिए, मान लें कि आपके पास C
एक स्थिर विधि f
और एक c
प्रकार की वस्तु है C
। फिर आपको कॉल करना चाहिएC.f
, लेकिन जावा आपको (एक चेतावनी के साथ) का उपयोग करने की अनुमति देता है c.f
, जो कि जब आप स्काला पृष्ठभूमि से आते हैं तो वास्तव में कोई मतलब नहीं होता है, क्योंकि वस्तुओं में f
वास्तव में एक विधि नहीं होती है।
स्पष्ट पृथक्करण: जावा में आप एक वर्ग में स्थिर और गैर-स्थिर विशेषताओं और विधियों को मिला सकते हैं। यदि आप अनुशासित होकर काम करते हैं, तो यह एक समस्या नहीं बनती है, हालाँकि, यदि आप (या उस मामले के लिए कोई और) ऐसा नहीं करते हैं, तो आप स्थिर और गैर-स्थैतिक भागों के साथ अंतःक्रिया करते हैं और यह त्वरित नज़र में बताना कठिन है क्या स्थिर है और क्या नहीं है। स्काला में, साथी वस्तु के अंदर स्थित सब कुछ स्पष्ट रूप से संबंधित वर्ग की रनटाइम ऑब्जेक्ट्स का हिस्सा नहीं है, लेकिन एक स्थिर संदर्भ से उपलब्ध है। इसके विपरीत, यदि यह एक वर्ग के अंदर लिखा गया है, तो यह उस वर्ग के उदाहरणों के लिए उपलब्ध है, लेकिन एक स्थिर संदर्भ से नहीं। यह जावा में विशेष रूप से बोझिल हो जाता है, एक बार जब आप अपनी कक्षा में स्थिर और गैर-स्थिर इनिशियलाइज़र ब्लॉक जोड़ना शुरू करते हैं। यह गतिशील निष्पादन आदेश के संदर्भ में समझने के लिए बहुत कठिन हो सकता है।
कम कोड: आपको प्रत्येक और प्रत्येक विशेषता या विधि में शब्द को स्थिर करने की आवश्यकता नहीं है object
, इस प्रकार कोड को अधिक संक्षिप्त (वास्तव में, एक प्रमुख लाभ वास्तव में नहीं) रखते हुए।
नुकसान खोजने के लिए बहुत कठिन हैं। कोई यह तर्क दे सकता है कि स्थिर और गैर-स्थिर हिस्से एक साथ होने चाहिए, लेकिन साथी वस्तुओं की स्केल अवधारणा से अलग हो जाते हैं। उदाहरण के लिए, वर्ग आरेख के लिए यह अजीब लग सकता है, लेकिन फिर अंत में कोड में दो चीजें बनाने और विच्छेद करने की विशेषता है कि कहां विशेषता है।