- पोर्टेबिलिटी: लिनक्स और विंडोज कम से कम मुझे उम्मीद है। मोबाइल फोन के बारे में क्या, क्या कोई इसे वहां चलाने में सफल रहा?
हां। एंड्रॉइड पर स्कैला के बारे में काफी कुछ आंदोलन है। जे 2 एमई के लिए, मैंने उस सम्मान में कुछ देखा, लेकिन ज्यादा नहीं। स्रोत कोड भंडार पर जे 2 एमई से संबंधित कुछ कोड है। मुझे यकीन नहीं है कि यह कितना व्यवहार्य है, लेकिन मुझे लगता है कि इसके लिए बहुत अधिक मांग नहीं है।
मैं यह भी उल्लेख करूंगा कि वांछित लक्ष्य प्लेटफॉर्म के बारे में स्कैला-लैंग पर पूल था, और जे 2 एमई उनमें से एक था, टोटेम ध्रुव पर बहुत कम था।
- सी ++ संगतता: क्या मैं स्कैला के साथ सी ++ कोड मिश्रण कर सकता हूं? (जेएनआई?)
साथ ही आप जावा के साथ सी ++ मिश्रण कर सकते हैं, जो कुछ भी लायक है।यदि आपके पास इसका कोई अनुभव नहीं है, तो आप केवल जावा संसाधनों को पढ़ सकते हैं, क्योंकि उनमें से कुछ भी स्कैला के साथ लागू नहीं होगा (बिना स्कैला सिंटैक्स)।
- प्रोग्रामिंग प्रतिमान: मुझे इस समय एफपी में स्विच करने में सहज महसूस नहीं होता है। क्या मैं पहले कुछ एफपी के साथ ओओ और प्रक्रियात्मक का उपयोग कर सकता हूं और फिर अनुपात सीखने के रूप में बदल सकता हूं?
निश्चित रूप से, हाँ। स्कैला यह सुनिश्चित करने के लिए बाहर निकलता है कि आपको एक कार्यात्मक शैली में प्रोग्राम करने की आवश्यकता नहीं है। कार्यात्मक लोगों से स्कैला की यह मुख्य आलोचना है, वास्तव में: कुछ भाषात्मक कार्यात्मक नहीं मानते हैं जब तक कि यह प्रोग्रामर को कार्यात्मक शैली में लिखने के लिए मजबूर नहीं करता है।
वैसे भी, आप अपने तरीके से काम करने पर सही हो सकते हैं। मेरी शर्त, हालांकि, यह है कि आप कार्यात्मक आदतों को उठाए बिना महसूस कर सकते हैं कि वे कार्यात्मक हैं।
शायद आप मैट्रिक्स कक्षा लिखने के बारे में अपने ब्लॉग में Matrices श्रृंखला देख सकते हैं। हालांकि यह मानक ओओ कोड की तरह दिखता है, वास्तव में, यह बहुत कार्यात्मक है।
- टूल चेन परिपक्वता: आईडीई और डिबगर्स के साथ आपका अनुभव क्या है? मैं अभी ग्रहण का उपयोग कर रहा हूं और यह ठीक लगता है।
आईडीईए (इंटेलिजे), नेटबीन और ग्रहण सभी को स्कैला के लिए अच्छा समर्थन है। ऐसा लगता है कि आईडीईए सबसे अच्छा है, और नेटबीन/ग्रहण एक दूसरे को मेंढक-कूदते रहते हैं, हालांकि नेटबीन निश्चित रूप से देर से ग्रहण से अधिक स्थिर रहा है। दूसरी तरफ, ग्रहण पर समर्थन एक बहुत ही आशाजनक मार्ग ले रहा है जो अगले 6 महीनों में परिणाम उत्पन्न करना चाहिए - यह सिर्फ यह है कि यह एक बंपिंग मार्ग है। :-)
इन पर्यावरणों के लिए स्कैला टूलींग के कुछ दिलचस्प संकेत यह तथ्य है कि विकास में ग्रहण प्लगइन एओपी का उपयोग पूरे आईडीई के साथ अधिक सहजता से विलय करने के लिए करता है, कि नेटबीन प्लगइन पूरी तरह से स्कैला में फिर से लिखा जा रहा है, और वहां आईडीईए पर एक स्कैला पावर पैक जो अन्य चीजों के साथ, जावा कोड को स्कैला कोड में अनुवाद करता है।
ईएमएसीएस लोगों के पास स्कैला के लिए भी व्यापक उपकरण हैं, और बहुत से छोटे संपादकों के लिए भी इसका समर्थन है। उदाहरण के लिए, मैं छोटे कार्यक्रमों और स्क्रिप्ट के लिए जेडिट के समर्थन के साथ बहुत सहज हूं।
अच्छा मेवेन समर्थन भी है - वास्तव में, Lift स्थापित करने का मानक तरीका मैवेन स्थापित करना है, और उसके बाद लिफ्ट आर्केटाइप बनाना है। वह एक उपयुक्त स्कैला संस्करण में खींच जाएगा। scala:cc
लक्ष्य है जो ट्रिगर किए गए पुनर्मूल्यांकन को भी करेगा।
पुनर्मूल्यांकन की बात करते हुए, न तो मैवेन, और विशेष रूप से न ही चींटियों को पुन: संकलित करने की आवश्यकता को पहचानने के लिए एक अच्छा काम करते हैं। उस समस्या से SBT (सरल बिल्ड टूल), स्कैला में लिखा गया है, जो स्कैला कंपाइलर प्लगइन के उपयोग के माध्यम से उस समस्या को हल करता है। एसबीटी मेवेन के साथ-साथ मेवेन/आइवी रिपोजिटरी के समान प्रोजेक्ट लेआउट का उपयोग करता है, लेकिन मैवेन/आईवी कॉन्फ़िगरेशन फ़ाइलों के समर्थन के साथ-साथ एक्सएमएल के बजाय स्कैला कोड में प्रोजेक्ट कॉन्फ़िगरेशन भी किया जाता है।
- सीखने की गति: मेरे अनुभव पर विचार करते हुए, आप कितनी तेजी से सोचते हैं कि मैं स्कैला के साथ एक व्यावहारिक स्तर तक पहुंच सकता हूं?
बहुत तेज़। पूरी तरह से ओओ भाषा के रूप में, स्कैला पहले से ही कुछ अच्छी सुविधाओं का परिचय देती है, जो सी ++ में मौजूद कुछ सामानों के मुकाबले तुलनात्मक है लेकिन जावा नहीं, हालांकि वे अलग-अलग फैशन में काम करते हैं।उस संबंध में, एक बार जब आप महसूस करते हैं कि ऐसी विशेषताएं क्या हैं और उन्हें सी ++ सामान से संबंधित करती हैं, तो आप जावा प्रोग्रामर से बहुत आगे होंगे, क्योंकि आप पहले ही जानते होंगे कि उनके साथ क्या करना है।
- परिनियोजन: आप स्कैला प्रोग्राम को वास्तव में कैसे तैनात करते हैं? क्या यह एक जार है, क्या यह एक निष्पादन योग्य है?
जावा जैसी ही चीज़। आप JARs, WARs, या किसी अन्य जावा लक्ष्य को तैनात कर सकते हैं, क्योंकि स्कैला कंपाइलर क्लास फाइलें उत्पन्न करता है। वास्तव में, आप कक्षा फ़ाइलों से स्कैला की जेएआर फ़ाइल उत्पन्न करने के लिए जावा के जार का उपयोग करते हैं, और मेवेन लिफ्ट समर्थन भवन WAR फ़ाइलों के लिए लक्षित करता है।
हालांकि, स्क्रिप्ट फ़ाइलों के लिए एक विकल्प है। आप शैल स्क्रिप्ट स्क्रिप्ट के समान सीधे स्कैला स्रोत कोड चलाने के लिए "स्कैला" पर कॉल कर सकते हैं। यह विंडोज़ पर भी किया जा सकता है। हालांकि, निष्पादन को तेज करने के लिए संकलन डिमन के उपयोग के साथ भी, समय शुरू हो गया है कि भारी स्क्रिप्टिंग वातावरण में स्कैला के प्रभावी उपयोग की आवश्यकता Nailgun जैसी कुछ है।
स्कैला के नुकसान के लिए, this स्टैक ओवरफ़्लो प्रश्न में मेरा उत्तर (और अन्य) देखें।
पुस्तक:। स्काला में प्रोग्रामिंग, मार्टिन ओडर्स्की एट अल, ARTIMA, 2007 – akarnokd
अपने जवाब और सुझावों के लिए आप सभी को धन्यवाद। मैंने स्काला पर नजदीकी नजर डालने का फैसला किया है। – rpg
मेरे लिए सर्वश्रेष्ठ पुस्तक "हॉला फॉर द इंपेटिएंट" केयर होर्स्टमैन द्वारा थी। पहले 9 अध्याय स्वतंत्र रूप से उपलब्ध हैं। – Jabba