जब टीम भाषा का आधार मिलाया जाता है, तो क्या वी # वीबी.नेट पर देव स्विच करना चाहिए?


14

मैं हाल ही में एक नई विकास टीम में शामिल हुआ जहाँ भाषा की वरीयताओं को .net मंच पर मिलाया जाता है।

  • देव 1: VB.net जानता है, सी # नहीं जानता

  • देव 2: VB.net जानता है, सी # नहीं जानता

  • देव 3: जानता है c # और VB.net, पसंद करता है c #

  • देव 4: जानता है c # और VB6 (VB.net को चुनना आसान होना चाहिए), c # को प्राथमिकता देता है

यह मुझे लगता है कि .net अंतरिक्ष में विचार करने वाले नेता लगभग सार्वभौमिक रूप से सी # देव हैं। मैंने यह भी सोचा कि कुछ 3rd पार्टी टूल्स ने VB.net का समर्थन नहीं किया, लेकिन जब मैंने इसे देखना शुरू किया तो मुझे कोई अच्छा उदाहरण नहीं मिला।

मैं पूरी टीम को सी # पर लाना पसंद करूंगा लेकिन अगर इस मुद्दे को वरीयता से अलग करने का कोई अच्छा कारण नहीं है तो मुझे नहीं लगता कि यह सही विकल्प है।

क्या ऐसे कोई कारण हैं जो मुझे लोगों को VB.net से दूर ले जाना चाहिए?


5
VB के भीतर की क्रियाशीलता आपको C # तक ले जाती है ...
हारून McIver

13
मुझे लगता है कि आपकी विकास टीम में कुछ गंभीर नेतृत्व का अभाव है। आपके प्रबंधक ने इस समस्या से क्यों नहीं निपटा है?

2
आप वीबी .नेट की ओर क्यों बह रहे हैं? किसी भी कौशल के साथ 2 devs से ऊपर आपके आरेख से दोनों C # जानते हैं और अन्य किसी भी .Net को बिल्कुल नहीं जानते हैं। निश्चित रूप से उन लोगों को लाना सबसे अच्छा होगा जो न तो भाषा को सी # के साथ गति करने के लिए जानते हैं क्योंकि दो अन्य डेवलपर्स पहले से ही सी # कौशल का निर्माण करने के लिए हैं?

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

2
अगर मैं गलत नहीं हूँ, तो त्रुटि फिर से शुरू अगला विरासत समर्थन के लिए है। VB.Net में पकड़ने की कोशिश करो ब्लॉक मौजूद है ... क्योंकि यह .Net है।
टोनी अब्राम्स

जवाबों:


2

किसी को भाषा बदलने के लिए मजबूर करने के लिए वास्तव में कोई बाध्यकारी कारण नहीं है जब तक कि किसी के पास ऐसी कोई विशेषता न हो जो आपकी परियोजना (नों) के लिए विशेष रूप से उपयोगी या समय की बचत करने वाला हो। वे दोनों को IL में संकलित करेंगे और समान रूप से प्रदर्शन करेंगे (यह मानते हुए कि Option StrictVB.NET में है ... अन्यथा आप देर से बाध्यकारी होने पर दंड लगा सकते हैं)। बाकी सब कुछ वास्तव में अधिमान्य है (इसे खारिज नहीं करना है, लेकिन यह एक उद्देश्य मीट्रिक नहीं है)।

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


स्थानीय नौकरी लिस्टिंग के बारे में आपने जो कहा है, मैं उससे सहमत हूँ। मुझे लगता है कि एक बात जो अनदेखी करना आसान है, वह है संभावित टैलेंट पूल, और एक भाषा को दूसरे पर चुनने का प्रभाव आपके अन्य हायरिंग प्रयासों पर पड़ सकता है।
jjr2527

7

सौभाग्य से उत्तर सरल है: कोई "सर्वश्रेष्ठ" भाषा नहीं है। सभी .NET लैंग्वेजेस, अपने रूट पर, .NET फ्रेमवर्क द्वारा प्रदान की गई कक्षाओं के सेट से कार्यक्षमता का उपयोग करती हैं। इसलिए, सब कुछ आप VB.NET में कर सकते हैं आप C # में कर सकते हैं, और इसके विपरीत। भाषाओं के बीच एकमात्र अंतर केवल एक वाक्यात्मक है।

C ++, Java और J ++ प्रोग्रामर नॉन-नॉनसेंस, सी # के सिंटैक्स को पसंद करेंगे। विजुअल बेसिक (VB) प्रोग्रामर वे शैतान के साथ रहना पसंद कर सकते हैं जिन्हें वे जानते हैं - विजुअल बेसिक .NET का असंवेदनशील, छद्म प्राकृतिक भाषा दृष्टिकोण। यदि आपके पास VB प्रोग्रामर हैं और वे वास्तविक प्रोग्रामर हैं (विकल्प देखें सख्त) तो आपको वही परिणाम मिलेंगे। VB अधिक वर्बोज़ है .... C # बॉल बस्टर है जो केस सेंसिटिविटी के साथ है।


सच है, दोनों 98% कर सकते हैं कि दूसरे BUT कर सकते हैं ताकि VB के साथ खुद को लटकाने के लिए इतनी रस्सी हो। On Error Resume Nextअकेले मुझे सी # की ओर दौड़ते हुए भेजती थी। Moduleअवधारणा को भी बहुत खतरनाक है। यह static classC # में एक के समान है लेकिन ... इसमें सब कुछ मूल वर्ग के संदर्भ के बिना विश्व स्तर पर सुलभ है और स्वचालित रूप से स्थिर w / o किसी भी अन्य संकेत के लिए ... सिवाय इसके कि मूल वर्ग एक मॉड्यूल है ...!
पॉल सासिक

6
क्षमा करें, लेकिन यह सिर्फ सच नहीं है। उदाहरण के लिए, आप C # में एक अपवाद फ़िल्टर कैसे लिखेंगे? blogs.msdn.com/b/clrteam/archive/2009/08/25/…

@ ल्यूक सी # में अपवाद फिल्टर जोड़ने के लिए, हम वीबी या आईएल में एक फ़ंक्शन का निर्माण कर सकते हैं, फिर इसे सी # में कॉल कर सकते हैं: डी

4
@Anna: इस प्रकार आपके कथन को निरस्त करते हुए कि "सब कुछ आप VB.NET में कर सकते हैं जो आप C # में कर सकते हैं"

2
काफी कुछ चीजें हैं जो आप बस VB.Net में नहीं कर सकते हैं जो आप c # में कर सकते हैं - यह भी देखें: stackoverflow.com/q/2362381/50447
Rowland Shaw

5

ईमानदारी से देव की एक टीम को उसी भाषा का उपयोग करना चाहिए या कम से कम समान भाषाओं को जानना चाहिए।

यह क्रॉस-ट्रेनिंग में सहायता करेगा और एक देव टीम द्वारा निर्मित विभिन्न अनुप्रयोगों में सहायता करेगा।

अंत में VB बनाम C # सभी वरीयताओं की लड़ाई है, लेकिन टीम को उसी पृष्ठ पर होना चाहिए, जिस पर वे उपयोग या समर्थन करने जा रहे हैं।


5

जब टीम भाषा का आधार मिलाया जाता है, तो क्या वी # वीबी.नेट पर देव स्विच करना चाहिए?

डेवलपर को .NET भाषा का उपयोग करना चाहिए जो टीम के लिए मानक है। IMO, एक भाषा होनी चाहिए जिसका उपयोग किया जाता है (जब तक कि एक अत्यंत सम्मोहक मामला नहीं बनाया जा सकता)।

क्या ऐसे कोई कारण हैं जो मुझे लोगों को VB.net से दूर ले जाना चाहिए?

मुझे लगता है कि यहां ज्यादातर लोग C # को पसंद करते हैं लेकिन यह इतना तकनीकी सवाल नहीं है जितना कि एक राजनीतिक या व्यावसायिक निर्णय। .NET भाषा का उपयोग करने के लिए तय करें और फिर इसका उपयोग करें। अब स्पष्ट रूप से विचार करने के लिए कारकों का एक समूह है:

  • क्या कोई मौजूदा कोडबेस है? यह किस भाषा में लिखा गया है?
  • क्या VB.NET डेवलपर्स आसानी से C # उठा सकते हैं? क्या वे चाहते हैं?
  • क्या यह आर्थिक रूप से C # रैंप-अप / प्रशिक्षण में निवेश करने का कोई मतलब है?
  • कोई भी भाषा स्विच मौजूदा डिलिवरेबल्स को कैसे प्रभावित करेगा?

व्यक्तिगत प्राथमिकताओं के बजाय टीम के बारे में सोचने के लिए +1
मार्क जे

4

वास्तव में, VB.NET में कुछ विशेषताएं हैं जो C # में वर्तमान में नहीं हैं: XML शाब्दिक, और LINQ में एग्रीगेट विधि का उपयोग करने के लिए क्वेरी सिंटैक्स।


1
VB.NET में iterators भी नहीं हैं (यानी C # में Yield कीवर्ड)।
atconway

3

आप C # और VB.NET की तुलना करने वाले इन तीन लेखों को देख सकते हैं:

वे सभी दोनों के बीच बहुत तार्किक तर्क और तुलना प्रदान करते हैं। व्यक्तिगत रूप से मैं C # के लिए मतदान करता हूं (मेरी कंपनी ने ASP ASP परियोजनाओं के लिए C # चुना था जब हमने क्लासिक एस्प से संक्रमण किया था)।


2

मैं 2003 में ऐसी ही स्थिति में था, जो अब आप हैं। मैं एक टीम का प्रबंधन कर रहा था जो ASP.NET से ASP.NET की ओर बढ़ रही थी। एएसपी / वीबीएसस्क्रिप्ट से थोड़ा अधिक जटिल प्रवासन पथ के बावजूद हमारी टीम में से अधिकांश को वीबीएसस्क्रिप्ट के साथ डिफैक्टो भाषा के रूप में अनुभव था, लेकिन लगभग आधी टीम ने सी # का पक्ष लिया। अंतत: मैंने VB.NET को चुना, लेकिन रेट्रोस्पेक्ट में मैं वास्तव में चाहता हूं कि मैं C # मार्ग पर चला गया।

उस निर्णय की 5 वर्ष की वर्षगांठ पर मैंने निर्णय लेने के लिए अपने औचित्य के बारे में एक ब्लॉग लेख लिखा और उसी कॉल को करने की कोशिश कर रहे अन्य विकास प्रबंधकों को अपनी दृष्टि का लाभ प्रदान करने का प्रयास किया। यहाँ लेख के लिए एक कड़ी है:

"C # बनाम VB.NET निर्णय पर एक प्रबंधक की पूर्वव्यापी"

लंबी कहानी छोटी, उन लोगों के लिए जो पूरे लेख को नहीं पढ़ना चाहते: मुझे नहीं लगता कि सी # पर VB.NET चुनने के लिए परियोजना बदतर थी, और इसने शायद हमें कम समय में बहुत समय बचा लिया। सबसे बड़ा मुद्दा वास्तव में भर्ती के साथ था। मैं खुशी से किसी भी भाषा में काम करने के लिए C # या VB.NET प्रोग्रामर को काम पर रखूंगा। वे वास्तव में बहुत अलग नहीं हैं। हालाँकि, योग्य है या नहीं, VB.NET के पास एक ऐसा कलंक है जिसके कारण अच्छी संख्या में डेवलपर्स नौकरियों से बचते हैं जहाँ उन्हें पता है कि वे प्राथमिक भाषा के रूप में इसके साथ काम करेंगे।


C # प्रोग्रामर के रूप में मैंने VB.NET का उपयोग करने वाली परियोजनाओं पर काम किया है। लेकिन अधिक बार VB.NET प्रोग्रामर नहीं जानते थे कि वे क्या कर रहे थे, COMP विज्ञान की डिग्री नहीं थी और कोड की 100s लाइनों के साथ तरीके लिखे थे। इसलिए मैंने VB.NET के लिए पूछे गए किसी भी नौकरी विज्ञापन को नजरअंदाज करने के लिए झुक गया।
इयान

1

मैं C # की ओर झुकूंगा क्योंकि यह कम क्रिया है और मेरे अनुभव में इंटरनेट पर बहुत अधिक प्रचलित है। मैं यह भी तर्क दूंगा कि C # या VB.NET सीखने में आसान और त्वरित है, इस बिंदु पर जहां यह नगण्य और महत्वहीन है। दूसरी ओर .NET फ्रेमवर्क विशाल और लगातार विकसित होने वाला प्राणी है। Mastering .NET में कई साल लगते हैं, लेकिन C # या VB.NET में महारत हासिल करने में कुछ महीने या उससे कम समय लग सकता है


0

मुझे लगता है कि @Anna Karin के पास एक अच्छा बिंदु है, इसलिए आपको पुस्तकालयों के बारे में चिंता करने की ज़रूरत नहीं है। कम से कम, मैं किसी एक को याद नहीं कर सकता जो सिर्फ c # के साथ काम करता है और vb.net के साथ नहीं।

एक और महत्वपूर्ण बिंदु यह है कि यह एक ही टीम के सदस्य के बीच कोड जांच को और अधिक कठिन बना देगा यदि वे विभिन्न भाषाओं के साथ काम कर रहे हों। मुझे लगता है कि संचार में घर्षण को कम करने के लिए सबसे अच्छा विचार कुछ कमोम भाषा का उपयोग है।


0

जबकि मैं पिछले उत्तर से सहमत हूं कि .NET को एक ही फीचर वार होना चाहिए, यह हमेशा ऐसा नहीं होता है, लेकिन यह पर्याप्त है कि अगर आपके पास एक साधारण प्रोजेक्ट है तो यह कोई मायने नहीं रखना चाहिए।

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


0

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


0

मैं कहूंगा कि सभी को समान भाषा का उपयोग करने का एक फायदा यह है कि इसका मतलब यह होगा कि कोई भी डेवलपर कोड के किसी भी हिस्से पर काम कर सकता है।

इसके अलावा, VB.NET और C # केवल .NET के तहत सिंटैक्स द्वारा भिन्न होते हैं। और दोनों भाषाओं में लिखे गए कोड एक ही परियोजना में ठीक हो सकते हैं।


0

मैं C # के साथ जाऊंगा क्योंकि:

  • यह जावा और सी ++ के करीब है (सीएस पाठ्यक्रमों में बहुत बार सिखाई जाने वाली भाषाएं)।
  • VB की तुलना में C # में इंटरनेट पर बहुत से संसाधन हैं (जो मैंने वहां देखा है)।
  • इस परियोजना को बनाए रखने के लिए VB की तुलना में C # बेहतर (जो मैंने अपनी कंपनी में देखा है) से अन्य डेवलपर्स को खोजने / किराए पर लेने की संभावना अधिक है।

0

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


0

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


0

C # का उपयोग करने के कारण:

  • यह आपके दो डेवलपर्स को अब तक खुश कर रहा है, और वे इसे सीखने के बाद अन्य दो को अच्छी तरह से समझ सकते हैं ।
  • आप किसी बिंदु पर अधिक डेवलपर्स को काम पर रखने की योजना बनाते हैं, और "20 साल के वीबी अनुभव" भीड़ से बचना चाहते हैं।
  • आप घुंघराले ब्रेसिज़ पसंद करते हैं।
  • आपको जीवन से प्यार है।

VB.NET का उपयोग करने के कारण:

  • जिन दो देवों को C # पता नहीं है, वे इसे सीखने से मना करते हैं।
  • "कम से कम प्रतिरोध के रास्ते पर कांपना" आपकी कंपनी का आदर्श वाक्य है।
  • एक विशाल मौजूदा VB कोडबेस है जिसे अपडेट नहीं किया जा सकता है।
  • आप एक HP Lovecraft किक पर हैं, और अपने दिन-प्रतिदिन के जीवन में "एल्ड्रिच भयावहता" की कमी को दूर करते हैं।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.