2009-09-28 13 views
7

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

एक बात यह है कि एक वेबसाइट या वेब-आधारित एप्लिकेशन डिज़ाइनर को जावा आधारित समाधान के साथ जाने के लिए एक ठोस जवाब नहीं मिल रहा है, वर्तमान में बाजार पर अन्य विकल्पों पर। जावा कौन से विकल्प प्रदान करेगा कि एक डिज़ाइनर को एक परियोजना के आधार पर मूल कोडिंग भाषा के रूप में जावा का चयन करना होगा?

इस पूछताछ से आने वाले किसी भी रचनात्मक उत्तरों के लिए धन्यवाद।

संपादित करें: यदि अन्य कारकों के बराबर हैं तो मुझे चेतावनी शामिल करनी चाहिए, उदाहरण के लिए यदि जावा, हार्डवेयर, जावा में डेवलपर कौशल इस तरह की परियोजनाओं के लिए होना चाहिए, और आगे।

उत्तर

4

इस पर भी विचार करें: जावा ऐप सर्वर पर चलने लगता है जहां एक सतत वैश्विक प्रोग्राम चल रहा है, और अलग-अलग अनुरोधों को अलग करने के लिए अलग-अलग धागे/प्रक्रियाएं उत्पन्न होती हैं। हालांकि, अगर किसी कारण से मुख्य वैश्विक वीएम क्रोक हो जाता है, तो आपका पूरा ऐप नीचे जा सकता है। पाठ्यक्रम का लाभ यह है कि आपको आवेदन/सिस्टम स्तर संसाधन प्राप्त होते हैं जिन्हें आप सभी अनुरोधों में निरंतर प्रारंभ और उपयोग कर सकते हैं

PHP जैसे अन्य वातावरण मूल रूप से प्रत्येक अनुरोध के लिए पूरे पर्यावरण को फाड़ते हैं और पुनर्निर्माण करते हैं। आप डेटाबेस का उपयोग कर अनुप्रयोग स्तर डेटा दृढ़ता में कोड कर सकते हैं, लेकिन आप इसे मुफ्त में नहीं प्राप्त करते हैं। दूसरी तरफ, यदि ऐप डेटा प्रोसेस करते समय एक PHP प्रक्रिया क्रोक हो जाती है, तो यह पूरे सिस्टम को नहीं मार पाएगी, क्योंकि पूरे पर्यावरण को अगले अनुरोध के लिए अभी फेंक दिया गया है/पुनर्निर्मित किया गया है।

2

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

(सही बॉक्स से बाहर, जावा स्मृति के बहुत सारे चाहता है। लेकिन एक व्यस्त सिस्टम पर जावा चल रहे सभी कोड का केवल एक प्रतिलिपि है।)

भी जावा के साथ छड़ी करने के लिए कुछ नीरस कारणों, विशिष्ट के लिए कर रहे हैं साइटों। उन्हें बैक-ऑफिस एकीकरण या मौजूदा कोड के कुछ अन्य बड़े टुकड़े की आवश्यकता हो सकती है।

+5

किसी भी भाषा में एक खराब लिखित ऐप असफल हो जाएगा। पर्ल और memcached का उपयोग, हम एक महीने में 9 मिलियन से अधिक पृष्ठदृश्य सेवा करते हैं, न कि क्योंकि पर्ल schwa है, लेकिन क्योंकि हमारी साइट के वास्तुकला और बुनियादी ढांचे अच्छी तरह से डिजाइन किए गए हैं। – BryanH

+0

मैं निश्चित रूप से सहमत हूं। – DigitalRoss

+0

@DigitalRoss, मैंने कुछ टाइपों को हटाने के लिए अपनी पोस्ट संपादित की है, ऐसा लगता है कि आपके संपादन ने उन्हें –

13

मुख्य कारक यह है कि आपके डेवलपर क्या हैं। यदि आपके पास जावा डेवलपर्स का समूह है, तो जावा के साथ जाएं।

+6

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

+2

यदि आप परवाह करते हैं कि आपके डेवलपर किस भाषा में हैं, तो आपके पास शायद उस महान डेवलपर नहीं हैं। एक महान डेवलपर को सही नौकरी के लिए सही उपकरण मिल जाएगा और इसका उपयोग करें। – Zak

2

डेवलपर्स चुने हुए भाषा से परिचित नहीं हैं, तो विकास के समय में सीखने की अवस्था शामिल करना सुनिश्चित करें।

+1

कॉक-अप को ठीक करने के लिए समय समेत। –

1

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

उदाहरण के लिए, अगर हमारे ग्रंटमास्टर रॉक कोल्हू चलाने के लिए घर में निर्मित जावा लाइब्रेरी थी, तो यह स्वाभाविक रूप से ग्रुपमास्टर को नियंत्रित करने के लिए आवश्यक ऐप बनाने के लिए जावा का उपयोग करने के लिए समझ में आ जाएगा।

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

अन्यथा कोई कठोर और तेज़ नियम नहीं है; प्रत्येक भाषा की अपनी ताकत और कमजोरियां होती हैं। तथ्य यह है कि आप जावा के बारे में यह सवाल पूछ रहे हैं, मुझे बताता है कि आप इससे परिचित नहीं हैं।

मैं सुझाव देता हूं कि आप आगे बढ़ें और जावा में एक ऐप या तीन बनाएं - तो आपको पता चलेगा। :)

2

अधिकांश भाग के लिए, सबसे अच्छी तकनीक वह है जिसे आप पहले से उपयोग कर रहे हैं।

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

बेशक, अपवाद हैं; यदि आप अप्रचलित कुछ का उपयोग कर रहे हैं और/या भविष्य में (क्लासिक एएसपी की तरह) समर्थित नहीं है, या आपके पास कोई विरासत प्रणाली नहीं है, तो अब कुछ नया उपयोग करने का समय है।

1

वेब प्रोग्रामिंग के लिए आज उपलब्ध विभिन्न तकनीकों की क्षमताओं के बीच बहुत कम अलगाव है।

जावा एक समय में डिफ़ॉल्ट विकल्प था क्योंकि यह प्रतिस्पर्धी प्रौद्योगिकियों की क्षमताओं को पार कर गया था, लेकिन यह अब सत्य नहीं है।

माइक्रोसॉफ्ट उत्तर तेजी से परिपक्व हो गया है; क्लासिक एएसपी के दिनों के साथ अब तक चला गया है। अब अब सभी क्षमताओं और प्रोग्रामिंग की आसानी प्रदान कर रहे हैं जो जावा ने पेश किया है।

PHP और रूबी जैसी नई भाषाएं आ गई हैं या अधिक मुख्यधारा बन गई हैं, और आपकी प्रोग्रामिंग आवश्यकताओं के आधार पर वैध विकल्प भी हैं।

इसलिए कई अन्य लोग यह कह रहे हैं कि यह आप किस भाषा या आपके डेवलपर्स से परिचित हैं।

+4

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

3

पिछले कई पोस्टरों से सहमत है, लेकिन एक संभावित विचार रनटाइम गति है।

यदि आप एक बहुत ही बुनियादी LAMP स्टैक सर्वर का उपयोग कर रहे हैं, तो PHP4 या निचला, पायथन या पर्ल चला रहे हैं, यदि आप प्री-संकलन सेट नहीं करते हैं, तो आपकी सभी स्क्रिप्ट को रनटाइम पर फिर से संकलित करना होगा। यह उच्च तीव्रता अनुप्रयोगों के लिए सर्वर पर अत्यधिक तनाव पैदा कर सकता है। यदि आप ऐसी स्थिति में हैं जहां आप एलएएमपी के लिए प्री-कंपाइलिंग सक्षम नहीं कर सकते हैं, लेकिन आप जावा के लिए कर सकते हैं (अधिकांश जावा सर्वरों को इसकी आवश्यकता होती है), तो यह चिंता का होना चाहिए। नुकसान यह है कि हर बार जब आप इसे संपादित करते हैं तो आपको अपने वेब एप्लिकेशन के बड़े हिस्से को फिर से संकलित करना पड़ सकता है। मुझे एहसास है कि आजकल यह एक मुद्दा कम और कम हो रहा है, लेकिन इसकी जांच करने के लिए कुछ है।

1

विचार करने का एक और पहलू, ओपन सोर्स लाइब्रेरीज़ की विशाल पर्यावरण प्रणाली का उपयोग करने की क्षमता है।

PHP, पर्ल या रुबी जैसी भाषाएं ऐसे lib बाज़ार स्थान (लगभग) में निर्मित हैं। नेट उस अर्थ में बंद है। दूसरी ओर जावा से पुस्तकालयों का एक बहुत बड़ा, एंटरप्राइज़ ग्रेड इको-सिस्टम है और समुदायों से भी सीखना है।

1

व्यावहारिक रूप से मैं मौजूदा मानव बुनियादी ढांचे का लाभ उठाने के बारे में लोगों से सहमत हूं।

तकनीकी रूप से, जावा गैर-मानक वेब चीजों के लिए काफी अच्छा है - जैसे AJAX (जीडब्ल्यूटी, डीडब्लूआर, धूमकेतु वसंत में दिमाग), मोबाइल (जहां आपको आमतौर पर बहुत से सत्र डेटा और कम फ्रंट एंड ब्लिंग की आवश्यकता होती है) , वास्तव में सरल चीजें जो अत्यधिक भार के तहत रखी जा रही हैं (यह निश्चित रूप से अपाचे mod_XXX को हर बार उछाल देगी, व्यापक रूप से व्यापक उपयोग में एकमात्र चीज देशी कोड है)।

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