VB इतना लोकप्रिय क्यों है? [बन्द है]


28

मेरे लिए, विज़ुअल बेसिक अनाड़ी, बदसूरत, त्रुटि-प्रवण और पढ़ने में मुश्किल लगता है। मैं दूसरों को समझाऊंगा क्यों । हालांकि VB.net स्पष्ट रूप से सुविधाओं के मामले में भाषा के लिए एक बड़ी छलांग है, मुझे अभी भी समझ में नहीं आया कि कोई भी VB ओवर में कोड का चयन क्यों करेगा, कहते हैं, C #।

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

क्या कोई भी इन सवालों के जवाब देने में मदद कर सकता है:

  • क्या मुझे VB के साथ कुछ याद आ रहा है? क्या यह सीखना आसान है, या C # की तुलना में "मित्रता" है? क्या ऐसी सुविधाएँ हैं जिनके बारे में मुझे जानकारी नहीं है?
  • वीबी / वीबी.नेट आजतक क्यों इस्तेमाल किया जाता है, खासकर वेब प्रोजेक्ट्स में?

4
आप कैसे जानते हैं कि Microsoft वेब साइट किन वाणिज्यिक साइटों के साथ बनाई गई थी?
samjudson

30
"VB / VB.net को आज इतनी बार क्यों इस्तेमाल किया जाता है," यह पूछने के लिए थोड़ा सा है कि "खच्चरों / ट्रकों को आज परिवहन में क्यों इस्तेमाल किया जाता है?"
डैनियल डारानास

2
सिर्फ पश्चाताप के लिए, मैं खड़ा (भेड़ का बच्चा) सही किया। VB के पास बहुत ही वफादार उपयोगकर्ताओं का एक समुदाय है, जो एक भयानक बहुत कुछ कहता है।

5
यह प्रश्न हटा दिया जाना चाहिए।

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

जवाबों:


47

आईपी ​​पते को ट्रैक करने के लिए जीयूआई (उच्चारण गोइ) बनाने के लिए वीबी का उपयोग किया जा सकता है। इसका उपयोग अक्सर अपराध हल करने में किया जाता है ।



4
वाह। बस। वाह। वह बस मेरा दिन पूरी तरह से भयानक बना दिया।

1
omg वाह ... omg वाह।

2
मैं सीएसआई को फिर से कभी नहीं देखूंगा।
रॉबर्ट हार्वे

3
ज़ूम इन ....... ओके एन्हांस।

42

मुझे लगता है कि यह इस बात पर निर्भर करता है कि आप कहां से आते हैं। प्रोग्रामर के रूप में शुरू करते समय, मुझे लगता है कि VB को उदाहरण के लिए C # से पढ़ना आसान हो सकता है , क्योंकि यह प्रतीकों की तुलना में शब्दों पर अधिक निर्भर करता है, जिससे नियमित लोगों के लिए इसे लेना आसान हो जाता है।

मैं कई वर्षों के लिए VB प्रोग्रामर था और जब .NET आया तब भी मैंने पहले दो वर्षों के लिए VB.NET में काम किया (वास्तव में C # के साथ बिंदु नहीं देखा)। अब मेरे पास मेरे पीछे कुछ साल का C # है और मुझे कभी-कभी पता चलता है कि VB.NET कोड मेरे लिए C # कोड की तुलना में "डिकोड" करने में थोड़ा अधिक समय लेता है। संभवतः क्योंकि यह कुछ संदर्भों के लिए प्रतीकों की तुलना में शब्दों पर अधिक निर्भर करता है ...


5
आप मेरी स्थिति का बिल्कुल वर्णन कर रहे हैं।

6
यहां भी - जब आप इसे सी-स्टाइल सिंटैक्स परिप्रेक्ष्य से देखते हैं तो VB.NET कोड "शोर" से भरा होता है। किसी भी VB- डेवलपर्स के लिए कोई अपराध नहीं। जिस तरह से यह महसूस होता है जब आप C # से VB तक जाते हैं।

2
सहमत, मैं VB.NET नहीं खड़ा कर सकता - वाक्यविन्यास एक कहानी की तरह है ... और हाँ मुझे इसे महीनों तक लगातार उपयोग करना पड़ा है, इसने मुझे पागल कर दिया, मुझे C # वाक्यविन्यास बहुत पसंद है।
दाल

2
सी # प्रोग्रामर नियमित लोग नहीं हैं?
14

@ राइटफोल्ड नोप। VB.net प्रोग्रामर भी सामान्य नहीं हैं। VB.net प्रोग्रामर नियमित लोगों की तुलना में अधिक भयानक हैं और सी # के लिए ... कोई टिप्पणी नहीं। = D VB.net नियम !!!!!!!
बेनामी पेंगुइन

27

नीचे मैंने अपने जवाब को दूसरे धागे में कॉपी किया है :

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

सी-संबंधित भाषा के बारे में वास्तव में मुझे जो बात खटकती है वह है बेवकूफ वाक्य-विन्यास। यह विशुद्ध रूप से सांस्कृतिक है, लेकिन किसी ऐसे व्यक्ति के रूप में जो C ++ में अपने अधिकांश पेशेवर काम करता है, और इस पर काफी कुशल होने के बावजूद, मैं अभी भी वाक्य रचना से बिल्कुल नफरत करता हूं। और न सिर्फ C ++ 'प्यारा सा quirks। नहीं, पूरा पैकेज। क्यों ब्रेसिज़? क्यों अर्धविराम (शायद प्रोग्रामिंग इतिहास के सभी में सबसे बेवकूफ निर्णय)? बेवकूफ सी-स्टाइल का सिंटैक्स क्यों? चर घोषणा के लिए कोई कीवर्ड क्यों नहीं है (वास्तव में, यह सबसे बेवकूफ निर्णय है)?

बस इतनी सी बातें हैं जो वास्तव में मुझे दुखी और क्रोधित करती हैं। VB कोई संत नहीं है, इसकी भाषा में भारी कमियां हैं। लेकिन ऊपर जो कुछ मैंने कहा है उसकी तुलना में कुछ भी नहीं।

मुझे एहसास है कि इन बयानों में से अधिकांश को औचित्य की आवश्यकता है लेकिन मैंने आगे रखा कि यह केवल इसलिए है क्योंकि हम उनके लिए इतने अभ्यस्त हो गए हैं। इसके अतिरिक्त, यहाँ सही जगह नहीं है। यह कहना कि VB पर इसका मुख्य लाभ होने के दौरान C # का सिंटैक्स भी इसका मुख्य नुकसान है।

मैं Myनाम स्थान के कारण VB को पसंद नहीं करता , मैं XML शाब्दिक के कारण इसे पसंद नहीं करता, मैं इसे कमजोर टाइपिंग के कारण पसंद नहीं करता, मैं इसे वैकल्पिक मापदंडों के कारण पसंद नहीं करता, या बहुत बेहतर होने के कारण switchबयान। नहीं, मैं इसे सिंटैक्स के कारण पसंद करता हूं।


उस ने कहा, मुझे यह स्वीकार करना है कि VB अधिक से अधिक इसके वाक्य-विन्यास से आच्छादित हो जाता है। नवीनतम प्रचार लांबा प्रश्नों के साथ पैराड्राइकड पैराड्राइक लगता है और मैं आसानी से स्वीकार करता हूं कि इससे कई चीजें सरल हो जाती हैं। दुर्भाग्य से, लैम्ब्डा के लिए वीबी का सिंटैक्स सी # के साथ प्रतिस्पर्धा करने के लिए बहुत बोझिल है। जरा विचार करें कि Parallel.ForVB में दिखने वाली कॉल को फूला हुआ कैसे माना जाता है - C # की तुलना में, जहां यह प्राकृतिक दिखता है। IMHO, VB डिजाइन टीम गलत दिशा में चली गई है, पठनीयता पर रूढ़िवादी स्थिरता का पक्ष लेती है।


अपने व्यक्तिपरक आरोप का जवाब देने के लिए:

मेरे लिए, विज़ुअल बेसिक अनाड़ी, बदसूरत, त्रुटि-प्रवण और पढ़ने में मुश्किल लगता है।

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

"अनाड़ी, बदसूरत ... और पढ़ने में मुश्किल" सभी क्वालीफ़ायर हैं जिन्हें लगभग सभी भाषाओं पर टैग किया जा सकता है जिनसे आप अपरिचित हैं। सीधे शब्दों में कहें तो कुरूपता भाषा के प्रति आपकी अपरिचितता का प्रत्यक्ष परिणाम है।

किसी भाषा को अच्छी तरह से जानने का मतलब है कोड में पैटर्न को पहचानना। अच्छी तरह से लिखा कोड होगा अभ्यास के virtuel द्वारा सुरुचिपूर्ण दिखाई देते हैं, जबकि बुरा (धीमी गति से, त्रुटि प्रवण) कोड बदसूरत दिखाई देगा। यह इतना सरल है।


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


4
ब्लेक: हाँ, रूबी के लिए पूर्ण अंक। अंत में एक भाषा इसे सही कर रही है। पायथन भी मेरे साथ उच्च स्कोर करता है। फिर भी, मैं सभी मौजूदा सिंटैक्स से आंशिक रूप से असंतुष्ट हूं।
कोनराड रुडोल्फ

2
रूबी चूसता है: पी ... अब जब कि मेरे पास है कि बाहर ... कीवर्ड के आधार पर मेजर सिंटैक्स मतभेदों का असली कारण ब्रेसियर लिखने में आसान हो जाता है। मैं एक विशाल VB (सामान्य रूप से BASIC) प्रशंसक हुआ करता था, लेकिन जब से मैं C # में स्थानांतरित हुआ हूं, मुझे इसमें काम करने में बहुत आसान और तेज लग रहा है।
मैथ्यू Whited

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

1
@ रोबर्ट हार्वे: 1) VB ब्लॉक को निरूपित करने के लिए कीवर्ड का उपयोग करता है, इंडेंटेशन का नहीं। इतना स्पष्टता के लिए। 2) कास्टिंग के बारे में, सी ++ सही ढंग से समाप्त करने का सी-शैली एक लंबे समय के कास्टिंग पहले, क्योंकि यह बहुत नेत्रहीन अगोचर (है चुना नहीं एक अच्छी बात है, एक डाली, बाहर खड़े होना चाहिए के रूप में यह बदल अर्थ विज्ञान और प्रकार उपयोग के संभावित कमजोरियों) परिचय देता है। 3) नहीं। मेरा मतलब था कि हर घोषणा से पहले एक वाक्यविन्यास संकेत । var int xदिमाग़ में आता है। अन्य सभी कथन और ब्लॉक समर्पित कीवर्ड द्वारा पेश किए जाते हैं, चर और तरीकों की घोषणा क्यों नहीं? छी। असंगत और बदसूरत।
कोनराड रुडोल्फ

4
@ कोनराड: मैं मानता हूं कि पहले इसका इस्तेमाल थोड़ा हो रहा था। दार्शनिक अंतर का एक हिस्सा यह हो सकता है कि मैं अब अपनी प्रोग्रामिंग भाषा को अंग्रेजी के एक संस्करण के रूप में नहीं समझता हूं, जैसे मैंने वीबी में प्रोग्राम करने के दौरान किया था। C # में जाने से प्रोग्रामिंग भाषा मैंने कुछ अधिक प्रतीकात्मक (और संक्षिप्त) का उपयोग की है, बिना अपारदर्शी के। उस प्रतीकवाद ने मुझे मानसिक स्वतंत्रता को ऑब्जेक्ट ओरिएंटेशन, संदेश पासिंग और लैम्ब्डा जैसी चीजों के बारे में और अधिक सोचने की अनुमति दी है।
रॉबर्ट हार्वे

15

मेरे लिए, विज़ुअल बेसिक अनाड़ी, बदसूरत, त्रुटि-प्रवण और पढ़ने में मुश्किल लगता है।

मेरे लिए, अंग्रेजी अनाड़ी, बदसूरत, त्रुटि-प्रवण और पढ़ने में कठिन प्रतीत होती है, विशेष रूप से ऐसे लोगों द्वारा लिखी गई है, जिनके पास खराब व्याकरण, खराब वर्तनी, पूंजीकरण और विराम चिह्न के लिए लापरवाह उपेक्षा है, और यह समझने का कोई मतलब नहीं है कि उनके विचारों को कैसे व्यवस्थित किया जाए।

यह सिर्फ इतना नहीं है कि भाषा की वाक्य रचना के कारण विजुअल बेसिक को पढ़ना या अनाड़ी होना मुश्किल है, लेकिन यह आमतौर पर इसलिए होता है क्योंकि प्रोग्रामर वास्तव में अपने विचारों को व्यक्त करने में अच्छा नहीं होता है:

If blah = 10 Then If stuff = "foo" Then t = 1 + k: s = 42: dostuff21

सही है, वह भयानक है। लेकिन अन्य भाषाओं में भयानक कोड लिखना विशेष रूप से मुश्किल नहीं है। जब सही ढंग से लिखा जाता है, तो यह बहुत मायने रखता है भले ही कोड VB में लिखा हो:

If SelectedType = 10 And UserName = "Foo" Then
    CurrentUsers = CurrentUsers + 1
    UserConnectionID = 42
    PerformUserOperation
End If

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

उस ने कहा, मैंने VB3 दिनों से विजुअल बेसिक को नहीं छुआ है, (इसलिए "पुराने" वाक्यविन्यास के साथ उदाहरण) लेकिन सिर्फ इसलिए कि किसी भाषा का दुरुपयोग किया जा सकता है इसका मतलब यह नहीं है कि इसे काफी मजबूत कोड लिखने के लिए सही तरीके से उपयोग नहीं किया जा सकता है । निश्चित रूप से, कुछ कमियां हो सकती हैं, लेकिन उन समस्याओं के आसपास रहने के लिए तैयार दृष्टिकोण भी एक प्रोग्रामर के कौशल को दूसरे पर दिखाता है।

( On Error Resume Nextपूर्व .NET दिनों में VB में अपवादों की कमी की कमियों को दूर करने के लिए अंधाधुंध छिड़काव एक अच्छा-बुरा तरीका है।)


13

VB के खिलाफ आपका अधिकांश तर्क केवल VB-Classic (दूसरा लिंक) या बेहोश या अप्रचलित तर्कों पर आधारित है

  • VBC में भी, आप GoSub ... रिटर्न आदि का उपयोग नहीं करेंगे।
  • इसमें गलत क्या है static? C ++ इसका भी समर्थन करता है।
  • VB10 अंतर्निहित लाइन निरंतरता का परिचय देता है (आपको सी # की तरह अनावश्यक सेमीकोला की आवश्यकता नहीं है)
  • विभिन्न कलाकारों के कार्य C ++ और C # में भी मौजूद हैं। C # 's (object)(expr)-कास्ट-सिंटैक्स और object as typeभी अधिक भ्रामक और असंगत हैं।
  • बुरा क्या है with? आप बहुत ही सहज तरीके से नेस्टेड ट्री स्ट्रक्चर बना सकते हैं जो C # में संभव नहीं है।
  • VB में इवेंट-हैंडलिंग C # की तुलना में बहुत अधिक सुरुचिपूर्ण है। आप WithEventsप्रतिनिधियों, ईवेंटहैंडलर-प्रोक्स आदि को इनिशियलाइज़ किए बिना किसी भी कीवर्ड ( ) द्वारा ईवेंट्स को प्रस्तुत और संभाल सकते हैं । यह वीबी में GUI- प्रोग्रामिंग को और अधिक आरामदायक बनाता है और आपको डिज़ाइनर द्वारा ईवेंट-कोड जनरेट करने की आवश्यकता नहीं है ।
  • वैकल्पिक मापदंडों को नए C # में पेश किया जाता है - इसलिए वे अच्छे लगते हैं।
  • VB.NET है दोनों सख्त और शॉर्टकट-बूलियन ऑपरेटरों।
  • आप करते हैं जब तक आप एक स्क्रिप्ट-भाषा की तरह वीबी चलाने संकलन समय पर वाक्यविन्यास त्रुटियों के लिए जाँच करें।
  • End Ifबस की तुलना में अधिक उपयोगी है }। जब जटिल वाक्यात्मक संरचनाएं होती हैं तो सभी घुंघराले ब्रेसिज़ केवल भ्रमित होते हैं जबकि एक ठोस End ...आपको यह निर्धारित करने में सहायता करता है कि कौन सा ब्लॉक बंद नहीं हुआ है।
  • XML लिटरल्स - XML ​​स्क्रिप्ट अब कोड का एक हिस्सा है, पूरी तरह से intellisense द्वारा समर्थन करता है।

सभी सब में, सिंटैक्स के अलावा VB.NET और C # के बीच कुछ उद्देश्य अंतर हैं। ईजी: GUI- डिजाइनिंग एक बेहतर इवेंट सिस्टम और बेहतर IDE के कारण VB में बहुत अधिक कुशल है, जबकि उदाहरण के लिए एल्गोरिदम को C # में बेहतर रूप से व्यक्त किया जा सकता है क्योंकि सिंटैक्स कंसीलर है।

बाकी सिर्फ आपकी व्यक्तिगत शैली का सवाल है। C- स्टाइल प्रोग्रामर C #, VB (या शायद पास्कल?) के साथ सहज महसूस करते हैं - स्टाइल प्रोग्रामर VB का उपयोग करते हैं।

लेकिन शब्द-आधारित, अधिक स्पष्ट वीबी-सिंटैक्स सी में सभी प्रतीकों की तुलना में शुरुआती के लिए पढ़ना आसान हो सकता है: तुलना करें:

If (a < 15) Xor (b = 2) And Not Condition Then

सेवा मेरे

if ((a < 15) ^ (b == 2) && !Condition())

इसका मतलब यह नहीं है कि एक भाषा दूसरे की तुलना में बेहतर है।

संपादित करें: -----------------------------------------

तर्क के लिए VB त्रुटि-प्रवण होगा। जब आप Option Strict Onइसे C # की तरह सख्त उपयोग करते हैं, लेकिन हमें ऐसी गलतियाँ करने की अनुमति नहीं देता है:

// VB would initialize with zero (C/C++ doesn't)
int countZeros;
// No confusion with loop bounds with For x = 1 To Length
for (int i = 1; i <= length; i++) {
    // Never confusing == with = 
    if (data[i] = 0) 
        countZeros++;
}

1
C # काउंटर्स (प्रारंभिक स्कोप में) को इनिशियलाइज़ न करने के लिए और अगर स्टेटमेंट में डेटा [i] के लिए वैल्यू असाइन करने के लिए एक संकलित त्रुटि देगा। मैं तुम्हें C / C ++ अपनी टिप्पणी में संदर्भित पता है, लेकिन मेरा मानना है कि ओ पी सी # करने के लिए :) वीबी की तुलना की गई थी

1
मेरी राय के लिए, VB10 C # 10 बड़ा समय धड़कता है!
शमी

मुझे सभी भाषाएँ पसंद हैं: LISP, C, VB, PHP, आप इसे नाम देते हैं।
systemovich

+1 और मैं जोड़ूंगा कि VB का स्विच स्टेटमेंट C # की तरह बेकार नहीं है।
जोएल ब्राउन

12

ऐतिहासिक रूप से VB विकास पर्यावरण कुछ प्रकार के अनुप्रयोगों (जैसे GUI ऐप्स) के निर्माण का एक त्वरित और प्रभावी तरीका था। जिसके कारण यह बहुत लोकप्रिय विकल्प था। मुझे लगता है कि वीबी अपने हेयडे (जैसे वीबी 6) के दौरान सबसे अधिक इस्तेमाल की जाने वाली भाषा थी।

उस तरह के स्थापित आधार के साथ, यह शायद ही आश्चर्य की बात है कि इसमें अभी भी बहुत काम चल रहा है।


2
+1 afaics VB6 और विशेष रूप से VS IDE ने प्रवेश के लिए एक बहुत (बहुत) कम अवरोध प्रदान किया जिसने सभी समस्याओं और संभावनाओं के साथ नए कोडर्स का निर्माण किया

7

यह सब C # अस्तित्व में आने से पहले शुरू हुआ था

~ 1999 में वापस, हमारे पास विजुअल स्टूडियो 5/6 था। यदि आप विंडोज का उपयोग करते हुए एक स्वतंत्र सॉफ्टवेयर विक्रेता या कॉरपोरेट थे और उन्हें एक ऐसे एप्लिकेशन की आवश्यकता थी जो लिखा हो, जैसे कि कर्मचारियों पर खर्च किए गए कर्मचारियों के समय को ट्रैक करना, आपके पास कुछ विकल्प थे:

  1. Visual Basic में प्रपत्र।
  2. दृश्य C ++ में MFC, ATL या Win32।
  3. फॉर्म 97/2000 में।
  4. एएसपी वेबसाइट।
  5. जावा एप्लेट।

उस समय, हम डॉट-कॉम बबल के फटने से ठीक पहले थे, इसलिए जो भी (4) या (5) के साथ अच्छा था, जो कुछ भी अद्भुत डॉट-कॉम पर स्टॉक विकल्पों पर बातचीत करने के लिए रवाना हुए, वे आकर्षित हुए।

(3) में लॉकिंग और समग्र मापनीयता के मुद्दे थे, लेकिन मैंने बहुत से एक्सेस-संचालित समाधानों को देखा, जो आवश्यकतानुसार समर्थन कार्यों को चलाने के लिए खोल देगा।

ताकि वीबी और वीसी ++ के साथ हमें छोड़ दिया जाए:

वीबी में फॉर्म संपादक, उस समय, उत्पादकता के लिए उत्कृष्ट था। आप अपने घटकों को ड्रैग-ड्रॉप कर सकते हैं - न केवल बटन, लेबल और टेक्स्ट बॉक्स बल्कि पूर्ण ग्रिड, एक्सेल शीट या IE उदाहरण जैसे पुन: प्रयोज्य घटकों के टूल 'OLE नियंत्रण'। वायर-अप पर्दे के पीछे किया गया था - सब कुछ ऑब्जेक्ट-जैसा था और आप इवेंट हैंडलर जोड़ने के लिए बस डबल-क्लिक की गई चीजें। यह दृश्य C ++ में बहुत कठिन था। उस समय विजुअल स्टूडियो डेवलपर सपोर्ट टीम के सदस्य के रूप में, मुझे याद है कि विजुअल बेसिक सपोर्ट कॉल्स ज्यादातर किस घटक का उपयोग करने के लिए या कुछ तरीकों से उनके एप्लिकेशन को ऑप्टिमाइज़ करने के लिए सबसे अच्छा था। यह लगभग कभी नहीं था 'मैं एक्स, वाई और जेड उपयोगकर्ता इंटरफ़ेस सुविधाओं के साथ एक आवेदन कैसे करूं'।

विजुअल C ++ में एक समृद्ध यूआई का निर्माण एक अलग चुनौती थी। यद्यपि संवाद और एसडीआई / एमडीआई रूपों के लिए विजुअल एडिटर सपोर्ट था, लेकिन यह काफी सीमित था। OLE Controls (ActiveX) को MFC या Win32 में एम्बेड करने का समर्थन एक काली कला थी, हालांकि ATL में थोड़ा आसान था। घटनाओं या मालिक-ड्रा जैसी सरल चीजों को वायर करना बहुत दर्दनाक था, घटकों में कस्टम घटनाओं के लिए आवश्यक कनेक्शन बिंदुओं को अकेले छोड़ दें।

हां, वीसी ++ के पास निष्पादन की गति, डिबग-क्षमता और लचीली रूपरेखा / पुस्तकालय / यूआई विकल्प थे, लेकिन आईडीई समर्थन सभी जमीनों को कवर नहीं कर सका, इसलिए विजार्ड्स, व्यापक एमएफसी वर्ग पदानुक्रम और 90-दिन जैसी चीजों के साथ सबसे आम संचालन को संबोधित किया। / 2-मुक्त-घटनाओं का समर्थन लाइनें।

IIRC, VB के साथ भेज दिया गया एप्लिकेशन पैकर, आपके ऐप, VB रनटाइम और नवीनतम सामान्य नियंत्रण DLL को पैकेज कर सकता है और आपको एक स्टैंडअलोन EXE इंस्टॉलर की आपूर्ति कर सकता है जिसे आप सीडी में डाल सकते हैं और ग्राहकों को प्राप्त कर सकते हैं। इनमें से कोई भी 'जो msvcrtXX.dll और mfcxx.dll आपने स्थापित किया है?', जिसने MFC डेवलपर्स को त्रस्त कर दिया था।

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

जब विजुअल J ++ और विज़ुअल इंटरदेव VS6 में हिट हुए, तो यह स्पष्ट था कि विज़ुअल बेसिक IDE ने विजुअल C ++ एक पर कुछ लड़ाई जीती थी, जो कि IMHO के लिए उचित थी। यह बिल्कुल भी आश्चर्य की बात नहीं थी कि विज़ुअल स्टूडियो .NET के पास नई COOL C # भाषा के लिए VB- जैसे फ़ॉर्म संपादक थे ।

नए जावा / सी / सी ++ - जैसे यूबी डिज़ाइनर के साथ युग्मित भाषा, जो इस समय सभी लोगों के लिए वीबी लोगों द्वारा आनंद लिया गया था, ने सी ++ लोगों के लिए एक नया प्रवासन मार्ग दिया जो अब MFC / ATL / Win32 के साथ किया गया था। VB 3/4/5/6 लोगों के लिए, जिन्हें VB.net में 100% पिछड़े संगतता की कमी पसंद नहीं थी, इसने एक परिचित वातावरण में एक नई भाषा सीखने का अवसर प्रदान किया।


VB इस तरह के एक व्यापक उत्पाद की संभावना के कारण था कि Microsoft की उत्पत्ति के साथ कुछ करना है, बेसिक उनके प्रमुख डेवलपर उत्पाद होने के साथ, लेकिन मेरे पास इस समय कोई उद्धरण नहीं है।


6

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


6

VB.NET सीखना आसान है, आप सही हैं, और मेरी राय में, यह C # की तुलना में आसान है। यह पहला बिंदु है कि वीबी इतना लोकप्रिय क्यों है। एक और, और सबसे बड़ी बात, मुझे लगता है, डेवलपर्स की एक विशाल शत्रुता है, जिन्होंने वीबी 6 और इस भाषा के पुराने वर्जन के साथ काम किया है और उनके लिए वीबी.नेट के साथ एप्लिकेशन विकसित करना आसान है, ताकि नई भाषा सीख सकें।


6

जैसा कि अन्य ने कहा है, भाषा सिंटैक्स पर आपका सौंदर्यपूर्ण निर्णय इस बात पर निर्भर करता है कि आप पहले क्या जानते थे। एक दशक से अधिक समय तक, ऐसा लगता है कि यह सी-लुक-अलाइक प्रतियोगिता रही है, जिसमें "ब्लॉक", "->" के लिए घुंघराले लटके हुए हैं, परोक्ष (पर्ल, php) के लिए, फ़ंक्शन कॉल तर्क के लिए कोष्ठक, // के लिए टिप्पणियाँ, और लाइन के प्रत्येक छोर पर एक अर्धविराम। कुछ लोगों ने यह भी सोचा कि इस 'पेनसे यूनिक' के लिए धन्यवाद, यदि आप एक भाषा जानते हैं, तो आप उन सभी को जानते हैं, जो वास्तव में हास्यास्पद है। लेकिन इसने C ++ / Java लोगों के बीच यह विचार पैदा किया कि केवल सही वाक्यविन्यास सौंदर्य है और कुछ भी COBOL को क्लोन करने का प्रयास है।

कुछ साल पहले मैं माणिक, और अब अजगर में बदल गया, और मैं किसी भी अधिक बदसूरत अर्धविराम, घुंघराले ब्रेसिज़ और अन्य कचरा अर्थहीन पात्रों को खड़ा नहीं कर सकता। स्रोत कोड का मतलब मनुष्यों द्वारा पढ़ा जाना है। जब मैंने दृश्य स्टूडियो में कोशिश की, तो मैंने V # को C # पर चुना। मुझे संदेह है कि कुछ प्रोग्रामर्स ने अपने जावा जैसे सिंटैक्स के साथ सी # को सिर्फ "गंभीर दिखने" के लिए चुना है, लेकिन चलो, बहुत ही विशेषताएं हैं ... अपनी आंखों को आराम दें।


4

यदि आप .NET के बारे में बात कर रहे हैं, तो, वहाँ एक बहुत आसान है जो मैं सोच सकता हूँ:

विजुअल स्टूडियो में VB.NET के संपादक, C # के सिंटैक्स त्रुटियों को पकड़ने में बहुत बेहतर है।

हालाँकि, C # के संपादक को VS2008 SP1 में भारी सुधार मिला, फिर भी कुछ वाक्यविन्यास त्रुटियां हैं, जब तक आप प्रोग्राम को संकलित करने का प्रयास नहीं करते हैं, तब तक संपादक की कुछ गलतियाँ नहीं होती हैं।


उस पृष्ठभूमि का संकलन वास्तव में VS2005 में बड़े VB प्रोजेक्ट्स को बहुत धीमी गति से संपादित करता है। किसी भी मामले में, यही कारण है कि ReSharper क्या है;)
लुकास

यह सिर्फ पृष्ठभूमि संकलन नहीं है, ऑटो-फॉर्मेट और कोड क्लीनअप टूल संकलन को ट्रिगर करने के लिए ब्लॉक को स्थानांतरित करने से पहले बहुत सी चीजों को ठीक करते हैं। यह 21/29 पर c #
बिल

4

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

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

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


3

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


3

VB.NET का एक लाभ C # पर है (जो C # 4 के साथ गायब हो जाएगा), डिफ़ॉल्ट और नामित पैरामीटर है, VSTO का उपयोग करते समय बहुत अच्छी बात है।


और, उस मामले के लिए, "गतिशील" - VBs के लिए सी # कुछ देने के लिए मौजूदा देरी / प्रेषण बंधन।
मार्क ग्रेवेल

1
यह तथाकथित लाभ हमेशा मेरे लिए समस्याग्रस्त रहा है - उस पर मेरा पढ़ा हुआ यह है कि C # में अधिभार है जो समान व्यावहारिक परिणाम प्राप्त करने का एक सुरक्षित तरीका है।

2
ओवरलोड्स का नकारात्मक पक्ष यह है कि जब आप jsut कुछ डिफ़ॉल्ट मान सेट करना चाहते हैं तो वे अधिक विसरित और भ्रामक होते हैं। आप ओवरलोड की जटिल श्रृंखलाओं के साथ समाप्त हो सकते हैं जो संकलक द्वारा विधि को सीधे हल किए जाने के बजाय नेस्टेड विधि कॉल में संकलित करता है।
मैथ्यू Whited

3

VB / VB.NET, RAD (रैपिड एप्लिकेशन डेवलपमेंट) श्रेणी का है। आप टूलबॉक्स और कम कोड से सिर्फ ड्रैग-ड्रॉप नियंत्रण के साथ एप्लिकेशन विकसित कर सकते हैं।


आप ASP.net + C # कॉम्बो के बारे में एक ही बात कह सकते हैं, नहीं?

हां, ज्यादातर विजुअल स्टूडियो आधारित लैंगग्यूज करते हैं।

खैर, VB (नहीं .net) की उम्र में कोई C # आदि नहीं था, इसलिए VB उस समय केवल एक महान चीज थी। बाद में VB उपयोगकर्ता VB.NET में चले गए। VB <> VB.NET वैसे भी।

3

खैर, मुझे लगता है कि आपको क्लासिक VB और VB.NET के बीच अंतर करना होगा।

मुझे लगता है कि VB.NET बहुत लोकप्रिय नहीं है , लेकिन विजुअल बेसिक "क्लासिक" अभी भी 1 है। इसका कारण यह है कि विंडोज ऐप बनाना बहुत आसान है। इसकी तुलना C ++ / Mfc में एक विंडोज ऐप से करें, जो इस समय लगभग एकमात्र विकल्प था।

इसी कारण डेल्फी एक समय में बहुत लोकप्रिय था।


मैं मानता हूं कि VB.net क्लासिक VB की तरह लोकप्रिय नहीं है। कुछ देवता जो अपने कोड आधार को VB.net में स्थानांतरित नहीं कर सकते थे, वे C # के स्थान पर ख़राब हो सकते हैं।
JBRWilkinson

3

VB बहुत ही वर्बोज़ है और C # की तुलना में आसान यो का उपयोग किया जाता है जो कि केस सेंसिटिव है। एक नौसिखिया प्रोग्रामर के लिए इसका सबसे अच्छा प्रारंभिक बिंदु।


3

कुछ नाम है:

  • उपयोग में आसानी
  • परिचित नाम (बुनियादी पहले लोकप्रिय कंप्यूटर प्रोग्रामिंग भाषाओं में से एक था)
  • Microsoft मार्केटिंग को कम न समझें

3

मुझे लगता है कि इसका एक कारण यह है क्योंकि पुराने एस्प प्रोग्रामर .NET में जा रहे हैं जैसा कि मैंने किया है कि हम पहले से ही VB से बहुत परिचित हैं क्योंकि VB स्क्रिप्ट सबसे अधिक भाग के लिए उपयोग की जाने वाली भाषा ASP है। मुझे लगा कि .NET में VB में लिखने में कम समय लगता है क्योंकि मुझे पहले से ही पता था कि VB कैसे बोलना है। VB भी C # की तुलना में कम रोता है। मैं दोनों में पढ़ / लिख सकता हूं, लेकिन मैं VB को पसंद करता हूं क्योंकि अगर आप एक नए प्रोग्रामर हैं तो दोस्त बनाना आसान है।


2

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

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


2

मैं व्यक्तिगत रूप से जिस तरह से घटनाओं को 'हैंडल' कीवर्ड के साथ vb.net में संलग्न करता हूं ... वीबी के साथ काम करते समय आईडीई / विज़ुअल स्टूडियो / भी अधिक उत्तरदायी है और स्वचालित रूप से अधिकांश अंत-इफ्स और जैसे हैंडल करता है ... C # बहुत अधिक स्पष्ट और स्वच्छ है (IMHO, मैंने दोनों के साथ काफी काम किया है)


मैं खुद को घटनाओं की सदस्यता लेना पसंद करता हूं, न कि सभी जादुई पर्दे के पीछे का सामान जो "हैंडल" और वीएस डिजाइनर के साथ चलता है।
लुकास

2

4.0 ढांचे के अनुसार, सी # की तुलना में वीबी की कमी के लिए केवल कुछ मुट्ठी भर चीजें हैं, और रिवर्स भी सच है। अर्थात्:

  1. सबसे उल्लेखनीय यह है कि VB.NET में Yieldकीवर्ड नहीं है , लेकिन यह जल्द ही नए async ढांचे के साथ VB.NET पर आ रहा है।
  2. कोई unsafeकीवर्ड नहीं है । मैंने इसे कभी जरूरी नहीं पाया है, लेकिन निश्चित रूप से कुछ लोग हैं जो हैं।
  3. मल्टी-लाइन स्ट्रिंग्स नहीं हैं। मल्टी-लाइन स्ट्रिंग्स को लाइनों के पार + (या विरासत और) ऑपरेटरों का उपयोग करके पूरा किया जाता है। या, उन्हें XML शाब्दिक सिंटैक्स का उपयोग करके पूरा किया जा सकता है Dim s = <s>My string... multiple lines...</s>.Value:। यह बहुत अच्छा नहीं है, लेकिन अगर आप चुस्त नहीं हैं और वास्तव में मल्टी-लाइन तार चाहते हैं तो यह काम करता है। और, आप <%= myVar %>सिंटैक्स का उपयोग करके इसके साथ स्ट्रिंग इंटरपोलेशन कर सकते हैं जो अच्छा है।
  4. इसके बराबर कोई चर स्कूप नहीं है dynamic। डायनामिक वैरिएबल VB के साथ लंबे समय से मौजूद हैं Option Compare Off, लेकिन वह फ़ाइल स्कोप है, इसलिए यह उतना अच्छा नहीं है dynamicक्योंकि इसमें dynamicकेवल उस तरह से घोषित चर की गुंजाइश सीमित है।
  5. VB में एक लम्बर्ड सिंटेक्स की कमी है। लैम्ब्डा हैं, लेकिन आपको उपयोग करना है Function(x)या Sub(x)

VB.NET में कुछ विशेषताएं हैं कि C # नहीं:

  1. एक्सएमएल शाब्दिक, जो केवल एक्सएमएल ही नहीं, सभी प्रकार की चीजों के लिए भी उपयोगी है।
  2. किसी भाषा में केस-इंसेंटिविटी बिल्ली की म्याऊ है। कई अन्य भाषाएं इसकी अनुमति नहीं देती हैं, लेकिन कोडिंग की गति में क्या फर्क पड़ता है, जब आप टाइप कर रहे होते हैं तो शिफ्ट कुंजी को हिट नहीं करना पड़ता है और आपके कोड को आपके इच्छित तरीके से ऑटो-स्वरूपित किया जाता है।
  3. अक्सर अनावश्यक Selectखंड को Linq प्रश्नों से छोड़ा जा सकता है।
  4. Nothingकीवर्ड ज्यादा से ज्यादा उपयोगी है nullकि सब कुछ (यहां तक कि मूल्य प्रकार) में करने के लिए सेट किया जा सकता है Nothingऔर यदि आप डिफ़ॉल्ट मिलता है। defaultकीवर्ड की कोई आवश्यकता नहीं है ।
  5. VB.NET को लगातार Visual Studio में संकलित किया जाता है ताकि आपको त्रुटियां तुरंत दिखाई दें। C # की तरह पूरे दिन CTRL-SHIFT-B नहीं मारना।

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


मेरे लिए, VB.NET बहुत क्रिया है। आपको मैन्युअल रूप से बहुत सारे बॉयलरप्लेट कोड को प्रिंट करना होगा, और ReSharper वास्तव में मदद नहीं करता है। मैं 3 साल के लिए पहले से ही Paraller में C # / VB.NET में कोडिंग कर रहा हूं।
हेडिन

VB वास्तव में लंबे खोजशब्दों के कारण क्षैतिज रूप से क्रिया है। यद्यपि आप अक्सर उन्हें टाइप नहीं करते हैं, क्योंकि IDE उन्हें आपके लिए रखता है। लेकिन IMHO C # घुंघराले ब्रेसिज़ के कारण अक्सर लंबवत होता है। VB के कुछ अन्य लाभ: ब्रेस स्टाइल पर बहस करने से बचें क्योंकि VB में केवल एक ही शैली है; (जीभ गाल में चली जाती है) सेमीकॉलन और ब्रेस बायलरप्लेट टाइप करने के कारण दाहिने हाथ की छोटी उंगली को विकसित करने से बचें।
मार्कजे

1
@ मर्कज: मुझे यह दिलचस्प लगता है कि जिस तरह से सी # समर्थकों की आलोचना AndAlso[यह नहीं समझते कि जब यह "डबल-एम्परसेंड" की तुलना में छोटा है] लेकिन इस तथ्य को अनदेखा करें कि If-Then/Else/EndIfतीन पंक्तियों के साथ-साथ नियंत्रित बयानों को भी लिया जाता है, जबकि सी # समतुल्य कम से कम चार लेता है। और संभवतः छह, ब्रेस सम्मेलनों पर निर्भर करता है, जब तक } else {कि कोई एक पंक्ति के रूप में नहीं लिखता ।
सुपरकैट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.