शुद्ध जावा वेब ब्राउज़र, क्या यह व्यावहारिक है? [बन्द है]


29

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


5
दिलचस्प सवाल क्योंकि HotJava नामक एक वेब ब्राउज़र एक प्रारंभिक जावा डेमो ऐप था।
user16764

3
यह सिर्फ एक डेमो ऐप नहीं था, यह 90 के दशक के उत्तरार्ध / 2000 के शुरुआती व्यावसायिक सन जावा रणनीति का एक महत्वपूर्ण हिस्सा था, और उन्होंने इसे बहुत कठिन भागीदारों के लिए आगे बढ़ाया। उसी युग के आसपास सूर्य से जावा विषमताओं की सूची में जोड़ें: JavaOS / JavaStation।
जस्टिन

3
तकनीकी रूप से, जावा में Android, Chrome और FF के Android संस्करण नहीं लिखे जाएंगे? FF की कोशिश नहीं की गई है, लेकिन एक अच्छा उपकरण दिया गया है, क्रोम और ओपेरा बहुत अच्छी तरह से काम करते हैं।
TC1

2
@ TC1 मुझे लगता है कि वे Android मूल विकास किट के साथ C \ C ++ में लिखे गए हैं।
वेस्ले विज़र

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

जवाबों:


44

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

तथापि।

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

संक्षेप में, एक उद्योग-शक्ति वेब ब्राउज़र का निर्माण बहुत कठिन है, और यही कारण है कि इस क्षेत्र में केवल कुछ ही सफल कहानियां हैं। प्रोग्रामिंग भाषा का इसके साथ अपेक्षाकृत कम लेना है, हालांकि तकनीकी और सामाजिक रूप से C और C ++ एक फायदे में हैं।


11

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

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

व्यक्तिगत रूप से, मैं सोचता हूं कि क्या यह संभव है या व्यावहारिक है (ज्यादातर) गलत दिशा में देखना और सोचना है। सवाल यह नहीं है कि क्या इस तरह की परियोजना के लिए जावा अव्यवहारिक है। सवाल यह है कि क्या जावा के पास इस तरह के प्रोजेक्ट को सही ठहराने के लिए पर्याप्त फायदे हैं।

सरल तथ्य यह है कि वेबकिट (आपके उदाहरण का उपयोग करने के लिए) कोड का एक बड़ा, जटिल टुकड़ा है। यहां तक ​​कि अगर हम मानते हैं कि जावा इतना अधिक अद्भुत है कि हम आधे आकार और जटिलता के साथ ऐसा ही कर सकते हैं, तो परिणाम अभी भी एक बहुत बड़ा, जटिल टुकड़ा है (इसी तरह V8, आदि)

मुझे लगता है कि काम की उस राशि को डुप्लिकेट करने से पहले, ज्यादातर लोग इसकी तुलना में थोड़ा अधिक आश्वासन चाहते हैं: "हमें लगता है कि हमारे उत्पाद के प्रतिस्पर्धी होने की संभावना है।"

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

इसके अलावा, मुझे लगता है कि परिवर्तन की संभावना बहुत कम है। मैं मुश्किल से इसे देख रहा हूँ अगर ओरेकल (या संभवतः आईबीएम) ने फैसला किया कि यह जावा के प्रतिस्पर्धात्मक रुख को बनाए रखने के लिए उपयोगी था (बनाम एक स्पष्ट उदाहरण के लिए) Microsoft .NET, लेकिन यह संदिग्ध प्रतीत होता है जब तक कि .NET जावा के मुख्य बाजार को धमकी देना शुरू नहीं करता है।

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


1
मुझे उस हॉटजवा लिंक के माध्यम से पढ़ने पर मेरी नाक में पुरानी किताबों की महक मिली
मारियो

2
यह भी याद रखें कि HotJava दिनों में उपलब्ध पुस्तकालयों, डेवलपर अनुभव और गति (कभी-कभी 10-15x मंदी) के मामले में जावा कमजोर था। आज, यह प्रत्येक क्षेत्र में काफी विपरीत है। अब भी जावा प्रोसेसर है (क्या आप जावा ब्राउज़र को जावा प्रोसेसर पर क्लाइंट कह सकते हैं? पलक) मुझे लगता है कि हॉटजवा बस बी / सी जावा प्लेटफ़ॉर्म में विफल हो गया था तब पर्याप्त नहीं था ।
निक पी

5

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

अगला सवाल, मान लें कि आपके पास JBrowser लिखने का एक कारण है, "क्या जावा का उपयोग करना कार्य को आसान या कठिन बनाता है?" क्रोम बनाते समय Google ने इसे मुख्य रूप से C / C ++ में लिखा था, इस तथ्य के बावजूद कि वे एक बहुत ही समर्थक जावा शॉप हैं। यह काफी संभावना है कि वे मानते हैं कि जावा के लाभ समय पर शुद्ध लाभ नहीं लाने वाले थे।


2

जावा 8 के हिस्से के रूप में जेवीएम में आने वाले नैसोर्न (जेवीएम पर जेवीएम की जगह राइनो) के साथ, यह प्रख्यात है। हालाँकि, जैसा कि अन्य ने नोट किया है - एक आधुनिक वेब ब्राउज़र के लिए बहुत कुछ है और अगर आपको Java ऐप :-) के भीतर ब्राउज़िंग क्षमताओं को होस्ट करने की आवश्यकता है, तो WebKit को एम्बेड करना आसान प्रतीत होता है।


1

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

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


0

मुझे कहना है कि मैं यहाँ थोड़ा पक्षपाती हूँ, लेकिन यहाँ मैं जाता हूँ। मुझे C / C ++ प्रचारक पसंद नहीं हैं, मुझे पता है कि वहाँ कुछ अविश्वसनीय अच्छे इंजीनियर अनुप्रयोग हैं, लेकिन इसका सिर्फ एक उपकरण है, अक्सर मुझे आभास हुआ, बहुत से लोग केवल समाधान के लिए C / C ++ का उल्लेख कर रहे हैं और फिर एक बिंदु ( http://www.paulgraham.com/avg.html बल्ब विरोधाभास देखें)। मैं तथ्यों को देखने की कोशिश करता हूं: जावा तेजी से सी / सी ++ है, लेकिन इसलिए अधिक मेमोरी की आवश्यकता है। या मुझे बताएं कि आप जावा कोड लिख सकते हैं जो कि C / C ++ जितना तेज है, लेकिन यह प्रोग्राम अधिक मेमोरी का उपभोग करेगा। मुझे उम्मीद है कि हम इस पर सहमत हो सकते हैं।

यदि आप उत्पादकता को देखते हैं, तो आप C ++ समाधानों की तुलना में कुछ समस्याओं के लिए जावा समाधान (एंटरप्राइज़ जावा) अपेक्षाकृत आसान बना सकते हैं। एक वेब ब्राउज़र कुछ पूरी तरह से अलग है। मैं दो / तीन महापौर आवश्यकताओं को देखता हूं:

  • इसमें विशाल विनिर्देशों, HTML, जावास्क्रिप्ट आदि के अनुरूप होना है। इसमें 2D ड्राइंग एपीआई जैसी समस्याएं शामिल हैं। या ओएस सिस्टम कॉल (ड्राइंग प्रिमिटिव के रूप में) से टेक्स्ट या फ़ॉन्ट प्रतिनिधित्व ("रेंडरिंग") कैसे प्राप्त करें। कैरो (C) और अन्य प्रयासों जैसे gezira (www.youtube.com/watch?v=P97O8osukZ0, https://github.com/damelang/gezira ) जैसे पुस्तकालयों पर एक नज़र
  • यह धाराप्रवाह "महसूस" करना है, जिसका अर्थ है कि निश्चित संचालन केवल एमएस को निष्पादित करना है।
  • यह आज के 'ब्राउज़र युद्धों' में प्रतिस्पर्धा करने के लिए एक यूआई कॉन्सेप्ट तैयार करता है जो एक अनूठा अनुभव बनाता है, जो काफी चुनौतीपूर्ण है।

योग करने के लिए: हाँ, आप लगभग किसी भी प्रोग्रामिंग भाषा में ब्राउज़र बना सकते हैं, आज के सी ++ स्टीमशिप की तुलना में लगभग समान परिणाम। लेकिन ऐसा करने के लिए आपको काफी असाधारण राशि की आवश्यकता होगी। मैं नहीं जानता कि (लाखों में) कितना है, मैं उस पर भी अनुमान नहीं लगाना चाहूंगा। हो सकता है कि हमें यह लब्बोलुआब यह आये: लोग उच्च स्तरीय भाषाओं में अनुकूलन करना पसंद नहीं करते हैं, या शायद ऐसे लोगों को प्राप्त करने के लिए सस्ता है जो C / C ++ में ऑप्टिमाइज़ करना पसंद करते हैं क्योंकि बहुत सारे हैं (अन्य भाषा विशेषज्ञों की तुलना में जो ऑप्टिमाइज़ कर सकते हैं एक समान स्तर)।


2
मुझे वोट डाउन करने का प्रलोभन दिया जा रहा है क्योंकि आपने अपना उत्तर कई पैराग्राफ में नहीं तोड़ा है। कृपया कुछ सफेद स्थान के साथ पाठ की अपनी दीवार को तोड़ दें।
गिल्बर्ट ले ब्लैंक

2
वैसे मैं मोबाइल से लिखता हूं, और यह सबसे अच्छा है जो मैं मोबाइल इंटरफेस के साथ कर सकता हूं, क्षमा करें
AndreasScheinert

1
लैपटॉप के पास गया और उसे ठीक किया।
एंड्रियासचिनर्ट

2
"या मुझे बताएं कि आप जावा कोड लिख सकते हैं जो C / C ++ जितना तेज़ है लेकिन यह प्रोग्राम अधिक मेमोरी का उपभोग करेगा। मुझे उम्मीद है कि हम इस पर सहमत हो सकते हैं।" नहीं, हम नहीं कर सकते, कम से कम सभी मामलों में नहीं। जावा आपको मेमोरी आवंटन के विभिन्न पैटर्न के लिए कई कस्टम मेमोरी मैनेजर को लागू नहीं करने देगा। जब आप यह तय कर लें कि यह आवश्यक नहीं है, तो आप सरणी सीमा जाँच को बंद नहीं कर सकते, आपको बस यह आशा करनी होगी कि जब आवश्यक नहीं होगा तो JIT पहचान लेगी। ये मुद्दे अधिकांश कार्यक्रमों में नहीं आते हैं, लेकिन वे उन अनुप्रयोगों में महत्वपूर्ण हो सकते हैं जिन्हें प्रदर्शन के हर अंतिम नैनोसेकंड की आवश्यकता होती है।
चार्ल्स ई। ग्रांट

1
आपके दोहराए गए तर्क यहां कचरा संग्रहण के कुछ प्रदर्शन निहितार्थ हैं। मैं इस से सहमत हूँ। लेकिन यह सिर्फ एक पहलू है।
एंड्रियाशेचिनर्ट

0

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

तो, क्या यह संभव है? संभावित। क्या यह प्रतिस्पर्धी होगा? पूरी तरह से - अत्यधिक-अनुकूलित, प्लेटफ़ॉर्म-निर्भर कोड में कुछ महत्वपूर्ण गति लाभ होने की संभावना है।

हालांकि यह केवल अटकलें हैं।


-1

जावा में लिखे गए जावा वेब ब्राउज़र की व्यवहार्यता के बारे में, शायद गलत सवाल पूछा गया था।

मुझे पहिया को फिर से आविष्कार करने और पूर्ण-विकसित ब्राउज़र लिखने की कोई आवश्यकता नहीं है, जब अधिकांश मौजूदा मुफ्त हैं और अमीर हैं।

यह कहा कि मैं क्या (हम?) की तलाश में होना चाहिए "कुछ" काफी अच्छा है कि वेब पेजों को पढ़ने के लिए सभी बकवास (फिर से विज्ञापन, वीडियो, GIF) के बिना ढेर हो जाता है।

Google अपने सभी विज्ञापनों और इस तरह का मुख्य अपराधी है।

यह पता करने के लिए कि मैंने एक जावा ब्राउज़र लिखा है जो अपने HTML 3.2 कार्यान्वयन के साथ जावा HTMLEditorKit का उपयोग करता है और पाठ के रूप में एक वेब पेज पढ़ता है, सभी जावास्क्रिप्ट कोड, स्टाइल कोड, लिंक, मेटा डेटा (अपने ऑटो के साथ जलन का दूसरा स्रोत) को स्ट्रिप्स करता है पुनः लोड) और जावास्क्रिप्ट के माध्यम से निर्धारित कुछ विशेष पात्रों और छवि लिंक को ठीक करने का प्रयास करता है। हाइपरलिंक्स और नेविगेशन काम करते हैं। LA Times, NY Times, Il Corriere.it, ElPais.es, LeMonde.fr जैसे सामानों को पढ़ने के लिए। यहां तक ​​कि बिंग और Google खोजों के माध्यम से आते हैं। आखिरकार या पूछे जाने पर मैं इसे मुफ्त में उपलब्ध कराऊंगा। यह ज्यादा नहीं है लेकिन यह एक शुरुआत है।


-4

यकीन है कि यह किया जा सकता है। और यह भी समझ में आता है। कोई भी ब्राउज़र अस्पष्ट कारणों के लिए पूर्ण w3c मानकों का समर्थन नहीं करता है। Css3 समर्थन की ओर से ब्राउज़र कंपनियाँ मानकों का समर्थन नहीं करती हैं। -moz- * और -webkit- * कभी भी मानक का हिस्सा नहीं होगा। इसलिए पूर्ण मानकों के अनुरूप ब्राउज़र को उन्हें अनदेखा करना चाहिए। W3c से सबसे बड़ी गलतियों में से एक प्रतिपादन विनिर्देशों की कुल कमी है। तो एक ही मानकों के अनुरूप वेब पेज हर ब्राउज़र में अलग दिखाई देगा, एक ग्राफिकल डिजाइन दुःस्वप्न। एक और w3c विफल स्पीड की कमी है। 5 साल चर्चा और अभी भी html5 के लिए केवल एक मसौदा मानक? तब आपका संगठन किसी भी गंभीर नवाचार को रोक रहा है।

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


1
यदि यह कटाक्ष है, तो यह स्पष्ट रूप से पर्याप्त नहीं है। और न ही आप जो सुझाव दे रहे हैं, उसके साथ अपरिहार्य नुकसान को इंगित करते हैं। यदि यह व्यंग्य नहीं है , तो मैं आपको यह अध्ययन करने के लिए प्रोत्साहित करूंगा कि कैसे मानक बनाए जाते हैं।

हाँ यह व्यंग्य है, लेकिन अंग्रेजी मेरी मूल भाषा नहीं है और न ही यह व्यंग्य है क्योंकि केवल एक मसौदा देने के लिए 5+ साल लगने वाले मानक व्यवहार में एक मानक के रूप में पूरी तरह से उपयोग करने योग्य नहीं हैं।
विक्की रोनेन

यहाँ नहीं है, और न ही यह प्रश्न को संबोधित करता है। व्यंग्यात्मक रूप से भी नहीं।
स्क्रैवी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.