2009-03-12 14 views
7

मैं जावा डेवलपर के रूप में नौकरी के लिए आवेदन कर रहा हूं। मैंने 2001 तक जावा में कुछ शौक एप्स प्रोग्राम किए, उसके बाद मैंने ज्यादातर सी ++ और अन्य भाषाओं में काम किया है। इस बीच, ऐसा लगता है जैसे जावा बहुत बढ़ गया है, और मेरे पास अज्ञात सभी प्रकार के शब्दकोष (ईजेबी, वसंत, आदि) हैं।जावा में नवीनतम विकास के साथ मैं सबसे अच्छी तरह से कैसे पकड़ सकता हूं?

जावा के हाल के (5 साल) विकास के संक्षिप्त, स्पष्ट स्पष्टीकरण कहां मिल सकता है? समझने के लिए महत्वपूर्ण तत्व क्या हैं?

उत्तर

25

2001? वाह, समय बदल गया है। वह क्या था? जावा 1.3?

सबसे पहले, भाषा विशेषताएं:

  • जेनेरिक्स: जावा जेनरिक 5.0 रिलीज में 2004 में मूल रूप से वाक्यात्मक चीनी के रूप में आप संग्रह में से बाहर वस्तुओं से उन सभी डाले करना बंद करने के लिए कहा,;
  • एनोटेशन: जावा में भी 5. दृढ़ता ढांचे, वसंत और अन्यत्र में बड़े पैमाने पर उपयोग किया जाता है;
  • टाइपएफ़ एनम्स: जावा 5 ने एक एनम प्रकार जोड़ा, जो मूल रूप से एक वर्ग (प्रकार) है;
  • समवर्ती: जावा 5 में व्यापक समवर्ती उपयोगिताएं शामिल हैं, इसलिए बहुसंख्यक बहुत बदल गया है; और
  • आवेषण: जावा 1.4 में एक अत्यधिक अंतर्निहित भाषा सुविधा जोड़ा गया। यदि आप अपना प्रोग्राम चलाते हैं तो सक्षम होने पर, संपत्ति विभिन्न स्थितियों की जांच कर सकती है और यदि वे सत्य नहीं हैं तो बम आउट कर सकते हैं। तथ्य यह है कि जब आप अपना प्रोग्राम चलाते हैं तो आप उन्हें चालू या बंद कर सकते हैं डायग्नोस्टिक्स के लिए बहुत अच्छा है।

हालाँकि, उपरोक्त भी बड़े बदलाव नहीं हैं। इस दशक के शुरुआती हिस्से में, जावा ने कट्टरपंथी वास्तुशिल्प और दार्शनिक परिवर्तन किए थे।

2001 में बड़ी चीजें ईजेबी, स्विंग और सर्वलेट/जेएसपी थीं। उनमें से कोई भी वास्तव में अब नहीं है (कम से कम सीधे नहीं)।

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

पहले जे 2 ईई दिनों में एक सामान्य पैटर्न सेवा लोकेटर था। अब इसे बड़े पैमाने पर एक विरोधी पैटर्न के रूप में देखा जाता है। आप दृष्टिकोण की इस तरह की वकालत इन दिनों आप एक का इतिहास, एक रैंक शौकिया, एक बेवकूफ या तीनों का कोई संयोजन के रूप में देखा जाएगा चारों ओर जाना तो

public MyClass() { 
    this.dataMember = ServiceLocator.locate("some service"); 
} 

: मूल रूप से आप इस तरह कोड देखना चाहते हैं।

निर्भरता इंजेक्शन, अपने सबसे सरल रूप में, वास्तविक कार्यान्वयन के संबंध में कक्षाओं में आवश्यक व्यवहार को इंजेक्ट करेगा। इस प्रकार का अलगाव भ्रामक रूप से शक्तिशाली और गहरा बदलाव है कि सूर्य (अभी भी) वास्तव में टप नहीं कर रहा है। यह इकाई परीक्षण को भी काफी बढ़ाता है।

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

ईजेबी 2001 में बड़ा था। अब इतना नहीं है। यह एक्सएमएल कॉन्फ़िगरेशन के दुःस्वप्न के रूप में देखा गया था (सही ढंग से), अनुप्रयोग सर्वरों में अंतर जो उन्हें बड़े पैमाने पर गैर पोर्टेबल (या यदि आप पसंद करते हैं तो गैर-मामूली पोर्टेबल) बनाते हैं और वे ऐसे हेवीवेट समाधान (प्री-3.0) हैं जो वे करते हैं वास्तव में बहुत से अनुप्रयोग नहीं हैं।

ईजेबी 3.0 ने निर्भरता इंजेक्शन (सॉर्ट) और पीओजेओ (सादे पुरानी जावा ऑब्जेक्ट्स) की एनोटेशन की अधिक वसंत-जैसी दृष्टिकोण ली है।

2001 में सर्वलेट्स और जेएसपी बड़े थे। स्ट्रेट्स तब शुरू हुए या उसके तुरंत बाद और कुछ साल पहले तक बड़े थे। अब यह अन्य आधुनिक वेब ढांचे (जैसे स्ट्रूट्स 2 - नाम के बावजूद स्ट्रैट्स 1 के साथ वास्तविक संबंध नहीं है) - वसंत एमवीसी, सीम और इसी तरह से) से परे है।

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

वेबलॉगिक और वेबस्पेयर 2001 में जितना बड़ा नहीं था। जेबॉस में अभी भी बहुत गति है लेकिन इन दिनों मेरी पसंद के ऐपर्सवर सूर्य का ग्लासफ़िश v2 या v3 प्रीलूड है।

आईडीई भी बदल गए हैं। 2001 में जेबिल्डर बड़ा था। अब केवल तीन ही हैं: ग्रहण, नेटबीन्स और इंटेलिजे (लोकप्रियता के उस क्रम में probalby लेकिन मेरी प्राथमिकता IntelliJ है, जो गुच्छा का एकमात्र वाणिज्यिक भी है)।

+0

मैं एक स्विंग डेवलपर हूं और आपकी पोस्ट ने मुझे रोया – willcodejavaforfood

+0

निश्चित रूप से यह तथ्य नहीं था कि आप स्विंग डेवलपर जिसने आपको रोया? :) – cletus

+1

jsp अब बड़ा नहीं है ?? जेएसएफ ने इसे अभी तक नहीं बदला है – tehvan

4

मैं आपको ब्लॉग पढ़ने के लिए दृढ़ता से प्रोत्साहित करता हूं। यह आमतौर पर गति तक पहुंचने का सबसे अच्छा तरीका है।

https://stackoverflow.com/questions/48701/what-is-the-best-blog-for-java-development

प्लस इस अतः धागा देखो: Learning Java

+0

धन्यवाद, एसओ थ्रेड जो आप लिंक करते हैं वह मूल रूप से मेरा प्रश्न है, बहुत उपयोगी है। – Fredriku73

+0

ब्लॉग लिंक अब उपलब्ध नहीं है – Anshu

3

सदस्यता लें और The Java Posse podcast को सुनने के।

+0

धन्यवाद, यह उत्कृष्ट जानकारी है, क्योंकि मैं प्रतिदिन 2x40 मिनट बस यात्रा करता हूं :) – Fredriku73

1

cletus एक आश्चर्यजनक जवाब दिया है, लेकिन मैं दृढ़ता से

जावा से सहमत नहीं पर डेस्कटॉप मूल रूप से मृत

वास्तव में है, यह जिंदा तुलना में अधिक है:] ग्रहण आईडीई सिर्फ एक डेवलपर उपकरण से कहीं अधिक है। Eclipse.org पर एसडब्ल्यूटी/जेएफएएस/ग्रहण आरसीपी फ्रेमवर्क देखें - इसके साथ, आप स्वयं ग्रहण जैसे अनुप्रयोगों का निर्माण कर सकते हैं। टेक्स्ट एडिटर्स, ग्राफिकल आरेख संपादकों, मॉडलिंग टूल्स, रिपोर्ट्स .. मैं खुद ग्रहण तकनीकों के साथ नहीं रह सकता ... उनमें से कुछ ने इसे वसंत में बनाया है और अगले जावा संस्करण में भी मूल रूप से समर्थित होने की योजना बनाई है (ओएसजीआई जैसे मॉड्यूल)। स्विंग को भूल जाएं, डेस्कटॉप ऐप्स इन दिनों आरसीपी तरीके से विकसित किए जा रहे हैं।

कुछ जानकारी http://wiki.eclipse.org/index.php/Rich_Client_Platform पर और dzone.com पर ग्रहण क्षेत्र पर पाई जा सकती है।

जावा अब डिफ़ॉल्ट रूप से जावास्क्रिप्ट के लिए समर्थन और aditionally अजगर, रूबी आदि जैसी भाषाओं की एक संख्या है के रूप में Jython, JRuby इसकी पारिस्थितिकी तंत्र के लिए "पोर्टेड" किया गया है।ग्रोवी नामक एक नई भाषा भी है और इसकी प्रमुख परियोजना grails (जो स्प्रिंग और हाइबरनेट का उपयोग करती है)।

जीडब्ल्यूटी (जावास्क्रिप्ट कनवर्टर के लिए जावा + विजेट्स का सेट) ध्यान प्राप्त कर रहा है। एक्लिप्स आरएपी नामक एक उभरती हुई परियोजना भी है जिसका लक्ष्य आरसीपी सामान को वेब में लाने का है।

जेबॉस और ग्लासफ़िश के अलावा, आपको जेटी में रुचि हो सकती है - एक बेहद हल्के लेकिन शक्तिशाली विकल्प।

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

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