2009-03-14 13 views
19

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

वैसे भी, मैंने पाया कि जावा सी # 1.1 के बराबर है या ऐसा कुछ है। जावा में, मुझे दो बार कोड लिखना होगा जो मैं सी # में करूंगा। ऑब्जेक्ट स्टार्टर्स, लैम्ब्डा, ईश्वर के लिए गुण, कभी जावा में आने जैसी विशेषताएं हैं? मैंने जेएसआर सामान से गुजरने की कोशिश की, लेकिन कुछ भी नहीं मिला।

क्या जावा बस नहीं रखा गया है? या क्या मैं इसका उपयोग नहीं कर रहा हूं क्योंकि इसका इरादा है?

+2

यह प्रश्न क्यों बंद कर दिया गया था। उत्तरों से निर्णय लेते हुए, ज्यादातर लोग इस बात से सहमत हैं कि भाषा सुविधाओं के संदर्भ में जावा वास्तव में सी # के पीछे गिर गया है। और ऐसी सुविधाओं की कमी, जैसे बंद, को निष्पक्ष रूप से निर्धारित किया जा सकता है। – javashlook

+2

मैंने निश्चित रूप से इसे धार्मिक युद्ध शुरू करने के तरीके के रूप में नहीं पूछा था। निश्चित नहीं है कि यह क्यों बंद था। – AngryHacker

उत्तर

10

मुझे लगता है कि आप सही हैं, जावा में सी # ने पेश की जाने वाली कई नई नई विशेषताएं नहीं हैं। बहुत सी नई सी # विशेषताएं केवल कंपाइलर चालें हैं (गुण, ऑब्जेक्ट इंटिलाइजर्स, एक्सटेंशन विधियां) जिन्हें आप सी # या जावा में हाथ से पूरा कर सकते हैं।

जावा लोगों ने शायद इन नई सुविधाओं को पेश नहीं किया है क्योंकि वे शायद भाषा को सरल और पीछे-संगत के रूप में यथासंभव रखना पसंद करते हैं।

मुझे कहना है कि मैं इन दिनों सी # लिखना पसंद करता हूं।

8

मैं कहूंगा, हाँ, जावा नहीं रखा है। माइक्रोसॉफ्ट ने जावा (और सी ++) पर एक लंबा कड़ी नजर डाली और पता लगाया कि उनके पास क्या परेशानियां थीं, और कौन सी विशेषताएं गायब थीं, और सी # के बाद के रिलीज में उनमें से कई को तय किया गया।

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

6

पुराना एक लोकप्रिय भाषा है, इसका कोड आधार बड़ा हो जाता है, और मौजूदा कोड बेस को तोड़ने के क्रम में भाषाओं में परिवर्तन अधिक रूढ़िवादी तरीके से किए जाते हैं, जो ठीक करने के लिए महंगा होगा।

जावा पुरानी भाषाओं में से एक है। सी # अपेक्षाकृत नया है और इसे अधिक मूल रूप से बदला जा सकता है। सी और सी ++ के साथ तुलना करें, जो एक दशक तक नहीं बदला।

यदि आप वास्तव में अपने नए कोड के लिए नई भाषा सुविधाएं चाहते हैं, तो जावा (ग्रोवी, स्कैला, क्लोजर) के साथ इंटरऑपरेट करने वाली एक और JVM- आधारित भाषा आज़माएं।

+1

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

7

जावा निश्चित रूप से पीछे गिर गया है, हालांकि मैं कहूंगा कि यह सी # 1.1 के मुकाबले सी # 2.0 के करीब है - उदाहरण के लिए, हालांकि, वे सी # में कुछ अलग हैं।

दुःख हुआ कि प्रस्तावित भाषा सुविधाओं में से कई जावा 7 (विशेष रूप से बंद) के लिए निकाल दिया गया है निराश था, लेकिन फिर Project Coin साथ आया था - तो कम से कम हम कुछ छोटे सुविधाओं के लिए तत्पर हैं करने के लिए हो सकता है।

मैं जावा भाषा को किसी भी समय भाषा शर्तों में सी # तक पकड़ नहीं देख सकता - उनके पास अधिक भाषा सामान है जो एक चीज़ के लिए भाषा को बदलना कठिन बनाता है। हालांकि यह ध्वनि हो सकता है, अपवादों की जांच विधि हस्ताक्षरों के लिए एक अतिरिक्त "धुरी" जोड़ती है जो कुछ चीजें (बंद होने की तरह) को अन्यथा होने की तुलना में अधिक कठिन बनाती है।

(और निश्चित रूप से सी # 4.0 भी देखने में है ...)

1

और यह स्विंग बनाम डब्ल्यूपीएफ नहीं है जो चाक बनाम कैवियार की तरह हैं।

4

वास्तव में आप सही हैं। लेकिन, मुझे लगता है कि भाषा सुधारों का ध्यान नई जेवीएम भाषाओं में बहुत अधिक स्थानांतरित हो गया है, जैसे कि Groovy और Scala

और शायद यह एक अच्छी बात है, क्योंकि जावा का एक महत्वपूर्ण उपयोगकर्ता आधार है, दुर्भाग्य से, शायद ही कोई विशेषताओं, यदि कोई हो, और भाषा में किस रूप में जोड़ा जाना चाहिए, इस बारे में सहमत हो सकता है। उदाहरण के लिए, इस poll पर नज़र डालें। दूसरी तरफ, सूर्य ने जेवीएम में सुधार का वादा किया है जो invokedynamic निर्देश, JSR 292 जैसे गतिशील जेवीएम भाषाओं के विकास और निष्पादन की सुविधा प्रदान करेगा।

मेरे लिए यह एक सभ्य समझौता है।

5

मुझे लगता है कि इस मुद्दे का हिस्सा आर्थिक है। यह कोई दुर्घटना नहीं है कि जब जावा बाजार में अग्रणी खिलाड़ी था तब जावा आया था। मार्च 2000 में उनका स्टॉक हर समय उच्च था, जो डॉट कॉम कंपनियां खरीद रहे थे उन सभी सर्वरों द्वारा fueled।

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

उन्होंने बहुत प्रतिभा खो दी है (उदाहरण के लिए, बिल जॉय) जो कंपनी को ईंधन देने के लिए उपयोग की जाती है।

सूर्य, इसके नीचे, एक हार्डवेयर कंपनी है। विशेष रूप से सर्वर पक्ष पर, जावा के साथ रणनीति यह थी कि इससे हार्डवेयर की बिक्री में मदद मिलेगी।

मुझे लगता है कि जावा के लिए परिवर्तन की गति इस सब के कारण हुई है।

माइक्रोसॉफ्ट सी # विकसित करना जारी रखता है क्योंकि राजस्व जारी रहता है, एंडर्स अभी भी उनके साथ है, और वे एक सॉफ्टवेयर कंपनी हैं जो अंततः उत्पाद से पैसे कमाती है। यही कारण है कि वे अब आगे हैं।

+1

माइक्रोसॉफ्ट अपनी भाषा विकसित करता है क्योंकि यह सब "डेवलपर्स डेवलपर्स डेवलपर्स" है। यदि आप ऑपरेटिंग सिस्टम बेचने की कोशिश कर रहे हैं, तो सबसे महत्वपूर्ण बात यह है कि सॉफ्टवेयर डेवलपर्स आपके ऑपरेटिंग सिस्टम के लिए सॉफ्टवेयर विकसित करना चाहते हैं। – MarkJ

+1

यदि माइक्रोसॉफ्ट की जुड़वां नकदी गायों, ऑपरेटिंग सिस्टम और कार्यालय, कभी भी सप्लाई किए जाते हैं तो मैं शर्त लगाऊंगा कि "डेवलपर" बैक बर्नर पर भी जाएंगे। क्या नकदी रणनीति, या दूसरी तरफ 'राउंड ड्राइव करता है? आपको दोनों की जरूरत है – duffymo

+0

मेरा मुद्दा यह था कि यह सी # से राजस्व नहीं है जो इसके विकास को चलाता है, यह नकदी गायों से राजस्व है। यह आपके जवाब के शब्द से मुझे बिल्कुल स्पष्ट नहीं है - वे "उत्पाद से पैसे" बनाते हैं - कौन सा उत्पाद? +1 वैसे भी – MarkJ

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