जावा के भविष्य के बारे में ब्रायन गोएट्ज़ से बात करें

दो दिन पहले, नीदरलैंड में एक सम्मेलन में, मैं ब्रायन गोएट्ज़ के साथ बोलने के लिए भाग्यशाली था, जिसने जावा, प्रोजेक्ट कॉइन, कंसीडर, फोर्क-जॉइन और लैम्ब्डा एक्सप्रेशन के भविष्य के बारे में प्रस्तुतियाँ दीं। मैंने उनसे Oracle, मोबाइल जावा द्वारा सन के अधिग्रहण के बारे में सवाल पूछा और हाल ही में ओरेकल के लिए प्रेस में किस तरह का दबाव रहा है। नीचे इस दिलचस्प दिन पर मैंने जो कुछ भी सीखा उसका संक्षिप्त विवरण है।



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



शुरू करने के लिए, जावा के नए संस्करण को दो रिलीज में विभाजित किया जाएगा, जावा 7 और जावा 8. जावा 7 में कई चीजें शामिल होंगी जो "पहले से ही सबसे अधिक भाग के लिए की जाती हैं," जावा 8 में "वे चीजें शामिल होंगी जो अभी भी खड़ी हैं। कड़ी मेहनत करने के लिए। ” तो, विकास योजना इस प्रकार है:



जावा 7:



InvokeDynamic

प्रोजेक्ट सिक्का

ClassLoader आर्किटेक्चर को अपग्रेड करें

URLClassLoader को बंद करने की विधि

नवीनीकरण और संग्रह ( Fork-Join सहित)

यूनिकोड 6.0

स्थानीय सुधार

NIO 2

टीएलएस 1.2

ईसीसी

Jdbc 4.1

पारदर्शी और आकार का विंडोज

हैवीवेट / लाइटवेट घटक मिश्रण

स्विंग: निम्बस और जेलेयर

XML-Stack (JAXP, JAXB & JAX-WS) पर अपडेट करें

जावा 8:

जेवीएम का संशोधन

प्रोजेक्ट लंबा

जावा प्रकारों पर एनोटेशन

प्रोजेक्ट सिक्का भाग 2

झूले JDatePicker



अनुमानित रिलीज की तारीख: जावा 7 - 2011 के मध्य में कहीं; जावा 8 - 2012 में कुछ समय।



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



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



ब्रायन ने एक छोटी परी और अपने कंधों पर छोटे शैतान के साथ पुरानी कहानी का मजाक उड़ाया, जो फिल्मों में प्रदर्शित हुई। ओरेकल में, स्थिति अलग है - आपके पास एक कंधे पर बैठे एक छोटे स्वर्गदूत हैं, और दूसरे पर एक छोटा वकील है।



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



ओरेकल पर दबाव के बारे में पूछे जाने पर, ब्रायन ने मुझे समझाया कि लब्बोलुआब यह है कि ओरेकल मीडिया को बहुत कुछ नहीं बताता (या बिल्कुल नहीं बताता है)। प्रेस विज्ञप्ति को ध्यान से माना जाता है। इसलिए, कई मामलों में (उदाहरण के लिए, जेवीएम की एप्पल की अस्वीकृति), मीडिया इस मुद्दे पर केवल एक दृष्टिकोण प्रदान करता है, और ओरेकल इस पर प्रतिक्रिया नहीं देता है। लोगों को लगता है कि सब कुछ खराब है, वे एक वाणिज्यिक कंपनी और - वॉयला के रूप में ओरेकल की इस उचित प्रतिष्ठा को जोड़ते हैं - यह समाचार साइट पर एक और आलोचनात्मक लेख है। ब्रायन ने मुझे विश्वास दिलाया कि ओरेकल वास्तव में जावा में दिलचस्पी रखता है, हालांकि, शर्त छोटी अवधि में नहीं बल्कि भविष्य में ध्यान केंद्रित करते हुए पैसा पाने पर है। आखिरकार, जावा की तुलना में ओरेकल के लिए बेहतर क्या हो सकता है, जो वास्तव में, अब दुनिया में सबसे लोकप्रिय प्रोग्रामिंग भाषाओं में से एक है? कई वर्षों के लिए, पहली गंभीर प्रगति हुई है।



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

//Old-style code: Collections.sort(people, new Comparator() { public int compare(Person x, Person y) { return x.getLastName().compareTo(y.getLastName()); } }); //Lamda expressions & SAM-conversion: Collections.sort(people, #{ Person x, Person y -> x.getLastName().compareTo(y.getLastName()) }); //Better Libraries: Collections.sortBy(people, #{ Person p -> p.getLastName() }); //Type Inference: Collections.sortBy(people, #{ p -> p.getLastName() }); //Method References: Collections.sortBy(people, #Person.getLastName); //Extension Methods: people.sortBy(#Person.getLastName);
      
      





जैसा कि आप देख सकते हैं, लैम्ब्डा अभिव्यक्तियों के अलावा, कई अलग-अलग संभावनाएं होंगी जो एक प्रोग्रामर लैम्ब्डा एक्सप्रेशन के इष्टतम उपयोग को प्राप्त करने के लिए उपयोग कर सकता है। लैंबडा एक्सप्रेशन मल्टी-कोर मशीनों के लिए प्रोग्रामिंग को आसान बना देंगे। इस पहलू में, फोर्क-जॉइन फ्रेमवर्क बहुत उपयोगी होगा।



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



अंत में, मैंने iPhone और iPad जैसे Apple उपकरणों पर जावा के बारे में पूछा। जवाब उतना ही रहस्यमय था जितना कि यह उम्मीद दे रहा था। उन्होंने कहा कि लैरी और स्टीव अच्छे दोस्त हैं ...



यहीं पर हमारा अंत होता है। ब्रायन गोएत्ज़ के साथ एक दिन, और मुझे आपको बताना होगा - सबसे पहले, जब मैंने ओरेकल को सूर्य खरीदने के बारे में सुना, तो मैं बहुत अधिक लोगों की तरह भयभीत था। केवल पैसे की परवाह करने वाला बड़ा बुरा बॉस, जावा को नष्ट कर देगा। लेकिन समय के साथ, जैसा कि आधिकारिक घोषणाएं और योजनाएं दिखाई देने लगीं, मैंने चीजों को अधिक सकारात्मक रूप से देखना शुरू किया। फिर भी पहरे पर, लेकिन कम पक्षपातपूर्ण। फिर, जावाऑन के बारे में लेख पढ़ने के बाद, मैंने यह सोचना शुरू कर दिया कि ओरेकल का सन का अधिग्रहण जावा के लिए भी फायदेमंद होगा। और अंत में, ब्रायन के साथ सम्मेलन के बाद, मुझे इस पर यकीन है। यह जावा के लिए उपयोगी होगा। अंत में, मुझे किसी ऐसे व्यक्ति के साथ बात करने का मौका मिला जो वास्तव में जानता है कि क्या हो रहा है, और अब मुझे पूरा यकीन है कि ओरेकल जावा प्लेटफॉर्म के स्तर को बनाए रखने और बढ़ाने की कोशिश करेगा!




All Articles