मेरे पास जावा के साथ 10+ साल का अनुभव है (संस्करण 1.1 से, वास्तव में!) और .NET (सी # ज्यादातर) के साथ 7 साल का अनुभव है।
आपके पास निर्णय लेने के लिए एक बहुत कुछ है, लेकिन ज्यादातर आपको कुछ परिदृश्यों में टूटने की कोशिश करनी चाहिए:
डेस्कटॉप अनुप्रयोग
यदि आप एक डेस्कटॉप एप्लिकेशन विकसित कर रहे हैं, तो आपको उस प्रमुख प्लेटफ़ॉर्म के साथ जाना होगा, जिसके साथ आप काम करेंगे। यदि यह एक Microsoft प्लेटफ़ॉर्म उपयोग .NET है, तो माँ के जहाज द्वारा विकसित प्लेटफ़ॉर्म से बेहतर कोई समाधान नहीं है। यदि यह लिनक्स या मल्टी-प्लेटफ़ॉर्म परिदृश्य है तो जावा पर विचार करें या वेब आधारित समाधान पर जाएं।
वेब आधारित अनुप्रयोग
यह एक बहुत कठिन निर्णय है क्योंकि प्रत्येक की अपनी ताकत और कमजोरी है। यहाँ कुछ है:
सी#
शक्ति: वर्तमान में भाषा और मंच / ढांचे में नई विशेषताओं का निर्माण अधिक गति से हुआ है। सब कुछ एक विक्रेता से आता है और निश्चित रूप से यह एक फायदा है। आप उदाहरण के लिए DevExpress जैसे कुछ बहुत ही शक्तिशाली घटकों का उपयोग करने के लिए भी डाल सकते हैं (जावा कुछ ऐसी चीज़ों के करीब भी नहीं है जैसे कि DX टीम ने वर्षों में एक साथ क्या रखा है और यह एक बड़ी उत्पादकता को बढ़ावा देता है)।
कमजोरी: एंटरप्राइज़ एप्लिकेशन के लिए .NET जावा की तरह परिपक्व नहीं है। आपके पास .NET के रूप में एंटरप्राइज़ सॉफ़्टवेयर बनाने वाले कई विक्रेता नहीं हैं, जैसा कि आपके पास जावा के लिए है।
जावा
शक्ति: अधिक परिपक्व (पहले से समझाया गया है) और कई बड़े खुले स्रोत परियोजनाओं के साथ एक बड़ा समुदाय है जो मदद कर सकता है। कई .NET तथाकथित ओपन सोर्स प्रोजेक्ट्स वास्तव में जावा से प्रोजेक्ट्स की कॉपी-कैट हैं।
कमजोरी: ओरेकल जावा का मालिक है (मुझे पता है, जेसीपी नहीं) और यह निश्चित रूप से एक जोखिम माना जाता है। उनके इरादे बहुत स्पष्ट नहीं हैं और मुझे व्यक्तिगत रूप से पसंद नहीं है कि भाषा अभी कहां जा रही है (मुझे पता है कि बहुत सारे जावा डेवलपर्स के समान चिंताएं हैं)।
सर्वर साइड अनुप्रयोग
यह मूल रूप से वेब आधारित अनुप्रयोगों के समान तर्क है लेकिन क्योंकि आपको इस मामले में UI जावा को मजबूत होने के बारे में बहुत अधिक चिंता करने की आवश्यकता नहीं है। लेकिन फिर से, यदि प्लेटफ़ॉर्म ज्यादातर Windows .NET है तो बेहतर विकल्प हो सकता है।
कुल मिलाकर विचार
कुल मिलाकर, मेरी राय में, .NET का फायदा ज्यादातर विजुअल स्टूडियो 2010 के तंग एकीकरण के कारण होता है (सबसे अच्छा आईडीई नीचे हाथ करता है), एमएस एसक्यूएल, एंटिटी फ्रेमवर्क, आईआईएस और इसी तरह। यह सब एक विशाल उत्पादकता को बढ़ावा देने का प्रतिनिधित्व करता है और मुझे यह साबित करने के लिए बहुत सारे अनुभव हैं। इसके अलावा, मैं ज्यादातर जावा डेवलपर्स के साथ काम करता हूं जो .NET में बदल गए हैं और वे मूल रूप से एक ही राय साझा करते हैं।
मुझे लगता है कि यह भी एक अच्छी बात है कि Microsoft पहले से कहीं ज्यादा मजबूत है। .NET थोड़ी देर के लिए होगा। तो जब 10-15 साल आगे देख रहा हूं तो मुझे लगता है कि मैं जावा की तुलना में .NET के साथ अधिक सुरक्षित महसूस करता हूं।