क्या यह अभी भी डेस्कटॉप गुई विकास सीखने लायक है? [बन्द है]


18

पिछले कुछ वर्षों से, मैंने जितने भी गंभीर प्रोजेक्ट्स पर काम किया है, वे या तो वेब आधारित हैं, या एक गैर-ग्राफ़िकल उपयोगकर्ता इंटरफ़ेस (सेवाएं, कमांड लाइन स्क्रिप्ट आदि ...) थे। जरूरत पड़ने पर मैं एक WinForms ऐप को एक साथ फेंक सकता हूं या कुछ सरल WPF कर सकता हूं, लेकिन मैंने कभी भी MFC या क्यूटी जैसे निचले स्तर के एपीआई में से कुछ में डिलीवर नहीं किया है।

मैं समझता हूं कि यह स्थिति पर निर्भर करता है, लेकिन सामान्य तौर पर यह अभी भी डेस्कटॉप विकास को अच्छी तरह से सीखने के लिए समय लेने लायक है या क्या यह वेब और मोबाइल उपकरणों पर गति से आगे बढ़ रहे हैं जो इस ज्ञान को कम प्रासंगिक बनाता है? इसके अलावा, क्या आप डेवलपर्स से अपेक्षा करते हैं कि आप डेस्कटॉप गुई विशेषज्ञता के साथ काम करेंगे?


5
डेस्कटॉप एप्लिकेशन डेवलपमेंट करना बहुत अच्छा है, लेकिन नुथ के प्यार के लिए, MFC से परेशान न हों। विंडोज डेस्कटॉप ऐप नौकरियों के लिए आपको 95% की आवश्यकता होगी जो कि WinForms या WPF / XAML है। अन्य 5% कार्य जो आप नहीं करना चाहते हैं।
एडम क्रॉसलैंड

1
@ एडम: +1 के लिए "अन्य 5% नौकरियां जो आप नहीं करना चाहते हैं।" - सच है। :)
बॉबी टेबल्स

जवाबों:


38

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

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


5
+1 यह इंगित करने के लिए कि ये रुझान चक्रों में चलते हैं। हालांकि, मैंने एक ऐसा मामला देखा है जहां एक टर्मिनल ऐप को डेस्कटॉप ऐप के रूप में फिर से लिखा गया था, और उपयोगकर्ता टर्मिनल ऐप के साथ अधिक कुशलता से काम करने में सक्षम थे।
लैरी कोलमैन

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

13
+1, मुझे नफरत है जब लोग यह दावा करना शुरू करते हैं कि डेस्कटॉप मर चुका है, यह हास्यास्पद है।
हनीबल लेक्टर

1
@ जोरी: अधिकांश टर्मिनल हमेशा स्थानीय स्तर पर कम से कम कुछ टुकड़े और टुकड़े कर सकते हैं। जावास्क्रिप्ट की एक निराशाजनक राशि मैंने देखी है कि आईबीएम 3270 (एक उदाहरण के लिए) स्थानीय रूप से भी कर सकती थी।
जेरी कॉफिन

1
@ जॉरी सेब्रिचेट्स - जब जीमेल मुझे किसी कार्य या कैलेंडर आइटम में ईमेल को खींचने और छोड़ने की अनुमति देता है, तो मैं आपसे सहमत हो सकता हूं, लेकिन तब तक, बहुत कम सुविधाएँ।
जेएफओ

11

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


+1: यह मानते हुए कि 'डेस्कटॉप मृत है' और पिजनहोलिंग एप्लिकेशन शुद्ध डेस्कटॉप डेवलपर्स के विपरीत है, "यह कहना कि" वेब ऐप के रूप में कभी अच्छा नहीं हो सकता "। जो आप के साथ काम करना चाहते हैं उसे चुनें, लेकिन इसके सही लाभ / नुकसान को जानने के लिए दूसरे को पर्याप्त जानें।
स्टीवन एवर्स

8

हां, लेकिन उस तरीके से नहीं जैसा आप सोच रहे हैं।

GUI प्रोग्रामिंग कोई अधिक कठिन नहीं है और न ही इसके लिए gui प्रोग्रामिंग इंटरफ़ेस के साथ विशिष्ट कौशल की आवश्यकता है। MFC जैसे सामान के साथ शुरुआती दिनों की तुलना में बटन और विंडो और नियंत्रण को हुक करना बहुत मुश्किल नहीं है और आधुनिक प्रोग्रामिंग वातावरण के साथ बहुत आसान है। GUI प्रोग्रामिंग वह सामान है जिसे सीखना बहुत आसान है जब इसकी मांग की जाती है।

हालाँकि, बटन और टेक्स्ट बॉक्स को हुक करना काफी आसान है, यह जानना कि कब और कहाँ बटन लगाना है , और एक गुई को मानव द्वारा डिज़ाइन करना बहुत मुश्किल है। यह एक बहुत ही मूल्यवान और महत्वपूर्ण कौशल है। हालाँकि, मूल सिद्धांतों बनाम वेब पर लागू होने वाले डिज़ाइन सिद्धांत बहुत समान हैं।

तो सीखें कि अच्छे उपयोगकर्ता इंटरफ़ेस कैसे डिज़ाइन करें जो प्रभावी हैं और उपयोगकर्ताओं को भ्रमित नहीं करते हैं, और आप उन्हें मुफ्त में प्रोग्रामिंग के साथ परिचित करेंगे।


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

5

यह वास्तव में आपकी स्थिति पर निर्भर करने वाला है। मैंने हाल ही में एक फॉर्च्यून 500 कंपनी के लिए काम किया था, जिसके पास वेब एप्लिकेशन को डेस्कटॉप एप्लिकेशन (SmartClient / Click-Once) में बदलने के लिए कई प्रोजेक्ट थे। उनकी विशेष परिस्थितियों में यह बहुत मायने रखता था और उनके द्वारा उपयोग किए जाने वाले मौजूदा ऐप्स से कई प्रयोज्य मुद्दों को समाप्त कर देता था।

यदि आप एक पूर्णकालिक कर्मचारी हैं और आपकी कंपनी आमतौर पर डेस्कटॉप ऐप्स डिज़ाइन नहीं करती है, तो संभवत: इसका कोई मतलब नहीं है कि पूरी तरह से Winforms या WPF पर गति हो। यदि, हालांकि, आप एक सलाहकार हैं और आप अपने ग्राहकों को एक और सेवा प्रदान करने में सक्षम होना चाहते हैं, तो यह हतोत्साहित नहीं कर सकता है।


4

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

डेवलपर-पक्ष: मेरे पिछले 10 वर्षों में, मैंने लगभग केवल गैर-वेब सॉफ़्टवेयर पर काम किया (और मेरे करियर ने कई अलग-अलग डोमेन को स्कैन किया, जैसा कि मैंने एक सॉफ्टवेयर सलाहकार के रूप में काम किया है) और मुझे अपनी नौकरी में कोई भविष्य की वेब प्रवृत्ति दिखाई नहीं देती है।

तो हाँ, यह अभी भी डेस्कटॉप GUI वातावरण सीखना चाहिए


2
वाह, आप इंटरनेट खोज इंजन का उपयोग नहीं करते हैं?
22-09 को JBRWilkinson

1
@JBRWilkinson: नहीं, मैं गोफर पर भरोसा करता हूं। गंभीरता से, सुनिश्चित करें कि मैं पूरे दिन Google का उपयोग करता हूं, लेकिन यह वास्तव में किसी भी डेस्कटॉप टूल या एप्लिकेशन के लिए प्रतिस्थापन नहीं है।
15:79 बजे विजार्ड79

2

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

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

मत भूलो - आपके पास Silverlight और Adobe Flex / AIR जैसी प्रौद्योगिकियाँ हैं जो डेस्कटॉप / वेब अनुप्रयोग के बीच की रेखा को बाधित कर सकती हैं।


वेब विकास के लिए +1 अधिक कठिन है। मैंने एक डेस्कटॉप डेवलपर के रूप में शुरुआत की और नौकरी पर वेब विकास में कदम रखा। यह निश्चित रूप से अधिक जटिल है (जाहिर है यह तुलनीय कार्यों को मान रहा है, जो आसान नहीं है)।
बॉबी टेबल्स

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

ऐसे उपकरणों के साथ चीजें करना हमेशा कठिन होता है जो अधिक सीमित होते हैं, जो इसे "अधिक जटिल" नहीं बनाते हैं। यह एक परेशानी का अधिक बनाता है।
सैम

0

IE9 टीम के अनुसार:

देशी और वेब ऐप्स के बीच अंतर नहीं होना चाहिए। HW त्वरण, तेज JS और साइट पिनिंग इसे बंद कर देता है

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


3
वह कुल बी.एस. मैं एक विलंबता माप ऐप पर काम कर रहा हूं जिसे स्थानीय रूप से बाज़ार डेटा वितरण की विलंबता "वास्तविक समय" को मापने और प्रदर्शित करने के लिए स्थानीय स्तर पर स्थित होना है। इस तरह की चीज़ को कभी भी क्लाउड पर नहीं ले जाया जाएगा।
टिम

यह कुल बीएस है क्योंकि आपको स्थानीय होने के लिए आवेदन के लिए एक हास्यास्पद अस्पष्ट आवश्यकता मिली है?
माइक एम।

@ समय: आप सही हैं कि कुछ ऐप्स हमेशा स्थानीय रहेंगे। यह भी सच है कि अन्य ऐप्स कभी भी स्थानीय नहीं हो सकते हैं (जैसे कि Google अनुवाद)। लेकिन, स्थानीय स्तर पर चलने का मतलब यह नहीं है कि यह बादल से नहीं आता है। Chrome स्थानीय रूप से चलता है लेकिन एक क्लाउड-आधारित ऐप है (आपका "संस्करण" पर थोड़ा नियंत्रण है)। ब्राउज़र कोड (Google NaCl) में मूल कोड निष्पादन को टाई करने के प्रयास हैं, और वेब भाषाओं को मूल एप्लिकेशन (एडोब एयर) में टाई करने का प्रयास है।
जोएरी सेब्रेट्स

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

@ मेरी बात यह है कि आपने एक ऐसा परिदृश्य पाया है जो इसे धारण नहीं करता है। लेखक को इसका एहसास तब होता है जब वह कहता है कि एमओएसटी। आप एक काउंटर-पॉइंट के साथ आए हैं, और यह बहुत अच्छा है। आपके पास कोई भी ऐसा साधन नहीं है जिससे यह साबित हो सके कि पूरी चीज़ का कोई आधार नहीं है। बेशक ऐसे समय होंगे जहां कई कारणों से स्थानीय होना होगा। लेकिन विशाल बहुमत के लिए, कुछ फाइबर ऑप्टिक केबल में फेंक दें और आपके 1200 मील को 10 मिलीसेकंड में क्या पार किया जा सकता है? एक उपयोगकर्ता के रूप में मैं अपने हर एक डेस्कटॉप एप्लिकेशन के साथ ठीक रहूंगा जिसमें एक फॉर्म लोड करने में 10 मिलीसेकंड से अधिक समय लगेगा।
माइक एम।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.