2010-01-05 16 views
7

विंडोज/लिनक्स प्लेटफ़ॉर्म पर, मैं एक सामान्य कंप्यूटर उपयोगकर्ता के रूप में, जावा में लिखे गए किसी भी सॉफ़्टवेयर को लगभग नहीं ढूंढ सका।क्या कोई जावा कर्नेल/डेस्कटॉप अनुप्रयोग है?

  • दो ऑपरेटिंग सिस्टम (Windows और लिनक्स) सी
  • दो वेब ब्राउज़र (IE और Firefox) सी के साथ ++ लिखा जाता है के साथ लिखा जाता है।
  • दो वेब सर्वर (आईआईएस और अपाचे) सी ++ के साथ लिखे गए हैं।
  • अधिकांश डेटाबेस प्रबंधन प्रणाली सी/सी ++ के साथ लिखी जाती है।

और मैं सॉफ्टवेयर है कि डेस्कटॉप अनुप्रयोग area.It पर जावा के साथ लिखा गया था नहीं पा सके लगता है कि प्रोग्रामर बल्कि जावा से पार मंच विजेट (क्यूटी, wxWidgets आदि) का उपयोग करना पसंद करेंगे।

मेरा प्रश्न हैं:

  1. क्यों जावा गिरी आवेदन करने के लिए उपयुक्त नहीं है, तो कारण अपनी सुस्ती, यह सी/सी की तुलना में धीमी कितनी बार ++ है है?
  2. जावा प्रोग्रामर एक सतत और उत्कृष्ट एपीआई लाइब्रेरी प्रदान करने के बावजूद डेस्कटॉप एप्लिकेशन करने के लिए सी/सी ++ क्यों पसंद करते हैं। मुझे लगता है कि इसे अधिकांश डेस्कटॉप एप्लिकेशन (जैसे कार्ड गेम) विकसित करने के लिए सी/सी ++ के बजाय जावा का उपयोग करके कम कोड की आवश्यकता होनी चाहिए एप्लिकेशन को अन्य प्लेटफॉर्म पर आसानी से तैनात किया जा सकता है।
  3. क्या उपयोगकर्ता के पहलू से जावा के साथ कोई प्रसिद्ध अनुप्रयोग किया गया है (इसका मतलब है कि हम इसे हर दिन उपयोग करते हैं)?

धन्यवाद।

+0

@ 3) एक जर्मन एमपी 3 ऑनलाइन वितरक (mp3.saturn.de) हाल ही में नीचे नहीं आया क्योंकि हर कोई क्रिसमस के लिए कुछ संगीत डाउनलोड करना चाहता था; वे जावा का उपयोग करते हैं, जैसा कि मैंने पाया .. http://mp3.saturn.de/servlets/2452685121528 डिस्पैच /34/jspforward?file=.%2Findex.jsp&page=frontpage/मंगल ग्रह पर जावा: http: //www.sun। com/aboutsun/media/features/mars.html – miku

+0

"क्या वहां प्रसिद्ध जावा डेस्कटॉप एप्लिकेशन हैं" के लिए, यह http://stackoverflow.com/questions/521110/examples-of-good-java-desktop-plplications का डुप्लिकेट है – Jonik

उत्तर

6

1.
जावा कर्नेल विकास के लिए अच्छा नहीं है। मुख्य कारण नियंत्रण है। यह सिर्फ गति के बारे में नहीं है (हालांकि यह इसका एक हिस्सा है)। जावा प्रोग्रामर को स्मृति पर समान मात्रा में नियंत्रण नहीं देता है, वास्तव में उनके कोड को कैसे निष्पादित किया जाता है। सी/सी ++ में, आप आमतौर पर अनुमान लगा सकते हैं बिल्कुल जो आपके कोड के आधार पर असेंबली कोड बनाएगा। जावा में ऐसा नहीं है।

नोट: यह सी का सच है, और सी ++ के भागों में से भी: आप सी ++ में उच्च स्तर की कार्यक्षमता का एक बहुत का उपयोग कर रहे हैं, तो आप स्पष्ट रूप से नियंत्रण का एक ही नुकसान है। लेकिन सी ++ किसी भी तरह से जाने का विकल्प देता है।

2.
C/C++ कई कारणों से डेस्कटॉप के लिए जावा की तुलना में अधिक किया जाता है। शायद उनमें से कुछ ऐतिहासिक हैं (वे अधिक के लिए लंबे समय तक उपयोग किए गए हैं), शायद उनमें से कुछ "देखो और महसूस" की समस्या है, जिसका मूल रूप से अर्थ है कि जावा प्रोग्राम जावा प्रोग्राम की तरह दिखते हैं, और अधिकांश कार्यक्रमों की तरह नहीं उपयोगकर्ता की मशीन पर (समाधान हैं, लेकिन यह लगभग सभी जावा प्रोग्रामों के बारे में सच साबित होता था, जिसने प्रोग्रामर को दूर रखा)।

लेकिन मुझे लगता है कि समझने की सबसे महत्वपूर्ण बात यह है कि सी और सी ++ आज भी जीयूआई के लिए बहुत कम उपयोग किए जाते हैं। जाहिर है, वे अभी भी उपयोग किए जा रहे हैं, लेकिन कई प्रोग्रामर अन्य भाषाओं जैसे सी # और दूसरों के लिए आगे बढ़ रहे हैं।

3.
आप प्रसिद्ध डेस्कटॉप अनुप्रयोगों के बारे में बात कर रहे हैं, मुझे लगता है कि सबसे प्रसिद्ध (निश्चित रूप से प्रोग्रामर के लिए) ग्रहण है। यह वास्तव में एक बहुत अच्छा एप्लीकेशन भी है, और निश्चित रूप से शानदार दिखता है, जो आपको दिखाता है कि जावा अच्छे प्राकृतिक दिखने वाले डेस्कटॉप ऐप्स के लिए उपयोग किया जा सकता है।

मुझे किसी अन्य के बारे में वास्तव में पता नहीं है।

+2

# 3 के संबंध में - अन्य उदाहरणों के लिए, http://stackoverflow.com/questions/521110/examples-of-good-java-desktop- एप्लिकेशन देखें। व्यक्तिगत रूप से मैं कह सकता हूं कि इंटेलिजे आईडीईए एक शानदार डेस्कटॉप जावा ऐप है। – Jonik

1

क्यों जावा कर्नेल अनुप्रयोग करने के लिए उपयुक्त नहीं है? यदि कारण इसकी नींद है, तो यह सी/सी ++ से कितनी धीमी है?

यह वास्तव में एकमात्र कारण नहीं है या नहीं। ऑपरेटिंग सिस्टम जैसे कर्नेल अनुप्रयोगों को कर्नेल तक पहुंच की आवश्यकता होती है और मशीन जिस तक जावा पहुंच सकता है वह आभासी है।

क्यों प्रोग्रामर C/C++ डेस्कटॉप अनुप्रयोग करने के लिए के बावजूद जावा प्रदान करता है एक सुसंगत और उत्कृष्ट एपीआई लगता library.I यह होना चाहिए कम कोड C/C++ के बजाय जावा का उपयोग कर सबसे डेस्कटॉप अनुप्रयोग (जैसे कार्ड खेल को विकसित करने की आवश्यकता है पसंद करते हैं) और विकसित आवेदन आसानी से अन्य प्लेटफॉर्म पर तैनात किया जा सकता है।

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

देशी पुस्तकालयों के साथ काम करने से आप मेजबान प्रणाली के साथ सहज एकीकरण की अनुमति देता है।

फिर भी, मुझे लगता है कि सभी सामान्य भागों और जावा में किसी एप्लिकेशन के मूल को लिखना संभव है और फिर होस्ट में ठीक से हुकिंग के लिए कुछ मूल कोड जोड़ें।

इस तरह आईडीई की नेटबीन, ग्रहण और आइडिया की तरह लिखा गया है।

ब्राउज़र और अन्य प्रमुख अनुप्रयोगों के बारे में, कारण सी ++ में हैं, न केवल इसकी गति है बल्कि तथ्य यह है कि वे दशकों से विरासत कोड हैं।

बस एक हालिया उदाहरण का उल्लेख करने के लिए। Google क्रोम, वेबकिट, सैकड़ों हजारों लाइनों से बहुत सारे कोड प्राप्त करता है। आप कह सकते हैं वे सिर्फ ब्राउज़र के "क्रोम" था (उस तरह एक आसान बात थी)

किसी भी प्रसिद्ध उपयोगकर्ता पहलू से जावा के साथ किया अनुप्रयोग हैं (इसका मतलब है कि हम इसे हर दिन का उपयोग करें)?

क्या तुमने कभी जीमेल LimeWire के बारे में सुना है?

+0

हालांकि मैंने कुछ भी * किसी भी * दुनिया में किसी भी चीज़ के लिए * * पी – OscarRyz

2

मैं आपके "कर्नेल एप्लिकेशन" के उपयोग पर सवाल करता हूं, मुझे लगता है कि ऐसा कोई शब्द नहीं है। या तो कुछ कोड ऑपरेटिंग सिस्टम कर्नेल का हिस्सा हैं, इस मामले में आमतौर पर ओएस की भाषा में लिखा जाना चाहिए, या यह एक एप्लीकेशन है, जिस स्थिति में ओएस का समर्थन करने वाली किसी भी भाषा में लिखा जा सकता है।

अब बहुत अधिक उपयोग किए जाने वाले, शायद "आवश्यक" अनुप्रयोग हैं, जो कुछ लोग ब्राउज़र, डीबीएम आदि जैसे "मूल" अनुप्रयोगों को कॉल कर सकते हैं। हो सकता है कि आप किस बारे में बात कर रहे हों।

अधिकांश अनुप्रयोगों में एक दृश्य इंटरफ़ेस होता है। सभी सी/सी ++ कार्यक्रमों में एक नज़र और अनुभव है जो कम या ज्यादा आम और साझा (कुछ सामान्य टूलकिट) है, और ऑपरेटिंग सिस्टम में सेटिंग्स के माध्यम से कुछ हद तक संशोधित किया जा सकता है। जावा (आमतौर पर) "स्वयं" दिखता है और महसूस करता है, और यह आम तौर पर अन्यथा आम दिखने से बहुत अलग दिखता है; बहुत से लोग इसे बदसूरत मानते हैं।

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

जावा में कुछ डेटाबेस इंजन लिखे गए हैं। डर्बी दिमाग में आता है, और मुझे लगता है कि एचक्यूएल। लेकिन यह सॉफ्टवेयर उपयोगकर्ता बहुत कुछ नहीं देख रहे हैं। इसी प्रकार, वेब अनुप्रयोग सर्वर जेटी और टोमकैट जावा में लिखे गए हैं, और निश्चित रूप से एंटरप्राइज़ एप्लिकेशन सर्वर जैसे वेबस्पेयर, वेबलोगिक, जेबॉस, ग्लासफ़िश। लेकिन फिर, ये उपयोगकर्ता ऐप्स नहीं हैं।

+0

(ए) * भाषा * कर्नेल और उपयोगकर्ता मोड दोनों में ओएस के लिए अप्रासंगिक है। अंत में यह बस मशीन कोड निष्पादन है। बेशक, यदि आप कर्नेल में जावा चाहते हैं, तो आपको कर्नेल में एक JVM की आवश्यकता होगी, लेकिन सैद्धांतिक रूप से यह संभव है (हालांकि शायद एक बहुत अच्छा विचार नहीं है)। (बी) एसडब्ल्यूटी एक जावा जीयूआई टूलकिट देशी विजेट्स का उपयोग कर रहा है। स्विंग वहां एकमात्र खिलाड़ी नहीं है और याद रखें कि जीटीके और क्यूटी उदाहरण के लिए सी/सी ++ टूलकिट हैं जो खुद को प्रतिपादित करते हैं। – Joey

+0

ठीक है, आप निश्चित रूप से हैं। कुछ विवरणों पर चमकते हुए मैंने वास्तव में गलत जानकारी पेश की - क्षमा करें! एसडब्ल्यूटी, यद्यपि: जावा डेस्कटॉप ऐप्स पर्याप्त दुर्लभ हैं, लेकिन जावा एसडब्ल्यूटी डेस्कटॉप ऐप्स, ग्रहण की गणना नहीं कर रहे हैं ... हैं? –

+0

इसे बहुत कुछ नहीं देखा है। Google वेब टूलकिट स्थानीय होस्टेड मोड के लिए इसका उपयोग करता है लेकिन इसके अलावा ... पता नहीं। http://en.wikipedia.org/wiki/Standard_Widget_Toolkit# अनुप्रयोग कुछ उदाहरणों को सूचीबद्ध करता है, यद्यपि। बहुत अधिक उद्धृत वीज स्पष्ट रूप से एसडब्ल्यूटी भी है। – Joey

7
  1. कम से कम कुछ ऑपरेटिंग जावा, अर्थात् JNode, JOS और JX में लागू प्रणालियां हैं। निश्चित रूप से आप उस ओएस को नहीं देख पाएंगे जिसने जावा में उस भाषा में लागू होने से पहले अपना इतिहास शुरू किया था। इसके अलावा एक ऑपरेटिंग सिस्टम कर्नेल के लिए प्रबंधित भाषाओं के खिलाफ एक लंबे समय तक पूर्वाग्रह लगता है; Singularity जैसी कुछ शोध परियोजनाएं हैं जो इस तरह के दृष्टिकोण की व्यवहार्यता का प्रयास करती हैं लेकिन हम उस बिंदु के पास कहीं भी नहीं हैं जहां यह "सामान्य" उपयोग के लिए तैयार है। हालांकि, आपको हमेशा एक कर्नेल "कोर" की आवश्यकता होगी जो असेंबली या अन्य निम्न-स्तरीय भाषा में किया जाता है जो आपको उन हिस्सों तक पहुंच प्रदान करता है जो आपके पास सामान्य रूप से नहीं होते हैं। लेकिन इसे बहुत छोटा रखा जा सकता है।

  2. चाहे जावा एपीआई सुसंगत या उत्कृष्ट हो, बहस योग्य हो सकता है, लेकिन कई वातावरणों के लिए पसंदीदा भाषाएं या तो सी (यूनिक्स-पसंद ज्यादातर, विंडोज एपीआई के कई हिस्सों) हैं, ऑब्जेक्टिव-सी (मैक ओएस जैसे डेरिवेटिव एक्स) या सी ++ (विंडोज़, केडीई, क्यूटी पर COM- आधारित प्रोग्रामिंग)।इसका मतलब यह नहीं है कि अन्य भाषा में ऐसा नहीं कर सकता है लेकिन दस्तावेज़ीकरण आमतौर पर मानता है कि आप पसंदीदा भाषाओं में चिपके रहते हैं। जाहिर तौर पर गिनती का एक और बड़ा कारक यह है कि आपको लक्ष्य प्रणाली पर एक JVM की आवश्यकता होगी। जावा के साथ मूल रूप से जहाजों का एकमात्र ऑपरेटिंग सिस्टम मैक ओएस एक्स है। इसलिए आप उपयोगकर्ताओं को अतिरिक्त निर्भरताओं से परेशान करेंगे। माइक्रोसॉफ्ट जैसे निगम भी पर भी बहुत अनिच्छुक हैं पर विचार करते हुए तीसरे पक्ष के सॉफ़्टवेयर को जारी करते हुए उनका विंडोज़ पर कोई नियंत्रण नहीं है, इसलिए आप कभी भी ओएस के साथ एक जेवीएम जारी नहीं करेंगे। (हाँ, वहां एक बार जावा 1.1 एक था, आईआईआरसी लेकिन उन दिनों लंबे समय तक चले गए थे और संभवतः वापस नहीं आएंगे।)

  3. अधिकांश जावा डेवलपर शायद दिन से कम से कम एक का उपयोग करते हैं उदाहरण के लिए, एक्लिप्स और नेटबीन्स उदाहरण के लिए जावा में लिखे गए हैं। कुछ अन्य सॉफ्टवेयर विकास उपकरण हैं, जैसे कि Maven या Ant। एक और लोकप्रिय कार्यक्रम उदाहरण के लिए वीज़ (पूर्व में अज़ूरियस) बिटटोरेंट क्लाइंट है। लेकिन कम से कम मेरे लिए वर्तमान में कई जावा डेस्कटॉप एप्लिकेशन नहीं हैं जो मैं साप्ताहिक आधार पर भी उपयोग करता हूं।

    यह वेब अनुप्रयोगों के लिए बिल्कुल अलग है, हालांकि, आप वास्तव में यह नहीं बता सकते कि वे बाहर से क्या लिखे गए हैं।

+0

+1, उत्कृष्ट और पूरी तरह से इलाज! –

+1

जेएनओडी (http://www.jnode.org) जावा ओएस का एक बेहतर उदाहरण है जो कि जेओएस में * वास्तव में काम करता है *। –

+0

धन्यवाद, इसे जोड़ा गया। मैंने कभी उनमें से किसी की कोशिश नहीं की है लेकिन बेहद याद किया गया है कि कुछ थे। तो यह मुख्य रूप से एक त्वरित खोज यात्रा थी। – Joey

4

जावा में लिखा सबसे प्रसिद्ध अनुप्रयोगों में से एक शायद Vuze (पूर्व अज्युरियस के रूप में जाना जाता है), विंडोज और लिनक्स के लिए एक बिटटोरेंट ग्राहक है।

+0

मुझे यह कभी नहीं पता था। क्या आपके पास कोई लेख या सबूत है जो यह सच साबित करता है? –

2
  • जावा आधारित ओएस: JX, JNode
  • जावा आधारित ब्राउज़र: Lobo
  • जावा आधारित वेब सर्वर: Tomcat, Geronimo, Glassfish ...
  • जावा डीबीएस: Derby, HSQLDB, H2, Db4o ...

क्यों जावा गिरी करने के लिए उपयुक्त नहीं है आवेदन? अगर इसका कारण धीमा है, तो सी/सी ++ से कितनी बार धीमी है?

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

आज, जावा तुलनीय सी/सी ++ के रूप में तेज़ है।

प्रोग्रामर डेस्कटॉप एप्लिकेशन करने के लिए सी/सी ++ क्यों पसंद करते हैं [...]?

क्योंकि माइक्रोसॉफ्ट जावा का समर्थन नहीं करता है (कम से कम नहीं कहता है, सी #)।

क्या उपयोगकर्ता के पहलू से जावा के साथ किए गए कोई प्रसिद्ध अनुप्रयोग हैं (इसका मतलब है कि हम इसे हर दिन उपयोग करते हैं)?

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

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

+0

एफवाईआई, क्यूटी जंबी को नोकिया द्वारा बंद कर दिया गया है: http://qt.nokia.com/about/news/preview-of-final-qt-jambi-release- उपलब्ध – HostileFork

+0

@AaronDigulla क्या आप कुछ स्रोत समर्थन के लिए एक लिंक दे सकते हैं आपका तर्क है कि * 'आज, जावा तुलनीय सी/सी ++ के रूप में तेज़ है।' *? यह दिलचस्प है। – user3150201

+0

@ user3150201: इस बात को साबित करने वाले कई मानक हैं। एक सिंहावलोकन के लिए: http://stackoverflow.com/questions/145110/c-performance-vs-java-c और http://en.wikipedia.org/wiki/Java_performance। आम तौर पर बोलते हुए, आप किसी भी भाषा में खराब कोड लिख सकते हैं। लेकिन एक अच्छा प्रोग्रामर कोड लिख सकता है जो जावा और सी/सी ++ पर समान रूप से अच्छा प्रदर्शन करता है। –

0
  1. जावा गिरी कार्यक्रमों लिख क्योंकि जावा प्रोग्राम के बजाय एक आभासी मशीन अंतर्निहित ओएस देशी रूप अंतर्गत चलाने के लिए तैयार कर रहे हैं के लिए उपयुक्त नहीं है। वर्चुअल मशीन के तहत, हम क्या कर सकते हैं उच्च सुरक्षा के बदले में सीमित किया जाएगा। जबकि गति शायद ही कोई मुख्य मुद्दा है।

  2. मुझे अन्य डेवलपर्स के लिए यकीन नहीं है, लेकिन मेरा व्यक्तिगत अनुभव यह है कि जावा को "एक बार लिखने, कहीं भी चलाने" के लिए दावा किया जाता है, इसके तहत जेवीएम के कुछ असंगत व्यवहार हैं विभिन्न ओएसएस। उन असंगतताओं को दूर करने के लिए, डेवलपर्स को अद्वितीय प्रोग्राम अनुभव देने के लिए अपने कार्यक्रमों में कामकाज करना पड़ सकता है। सबसे बुरे मामले में, इसे केवल JVM को संशोधित किए बिना ठीक नहीं किया जा सकता है।नतीजतन, सी/सी ++ पुस्तकालयों के साथ क्रॉस-प्लेटफार्म बेस करना कम दर्दनाक हो सकता है क्योंकि आपके द्वारा लिखे गए सभी घटकों का नियंत्रण होगा।

  3. वीज़ नामक एक विचित्र ग्राहक है (एज़ूरियस होता था) जो काफी प्रसिद्ध आईएमओ है। आप here देख सकते हैं।

0

क्या आपने लिमवायर के बारे में सुना है?

+1

जावा में किए गए पूर्ण 3 डी सॉफ़्टवेयर भी हैं। आप निश्चित रूप से अपने प्लेटफ़ॉर्म को स्वतंत्र रूप से "एमएस" की परिभाषा के अनुसार सिस्टम प्रोग्राम बनाने के लिए जावा का उपयोग करने की उम्मीद नहीं कर सकते हैं: सभी विंडोज सिस्टम में चलाने में सक्षम होने के कारण) –

+0

अब आप इसका जिक्र करते हैं, मुझे बस याद आया Runescape। बहुत लोकप्रिय एमएमओआरपीजी, और यह एक 3 डी जावा एप्लेट है। –

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