विज़ुअल बेसिक

**(विज़ुअल बेसिक)** ( **VB**), Microsoft (माइक्रोसॉफ्ट) द्वारा इसके COM प्रोग्रामिंग मॉडल (प्रतिरूप) के लिए विकसित किया गया तीसरी-पीढ़ी का इवेंट-ड्राइवेन प्रोग्रामिंग लैंग्वेज और इंटिग्रेटेड डेवलपमेंट एनवायरनमेंट (**IDE**) है। ग्राफिकल डेवलपमेंट की अपनी विशेषताओं और BASIC (बेसिक) परिवार का सदस्य होने के कारण VB को प्रोग्रामिंग लैंग्वेज सीखने और प्रयोग करने की दृष्टि से अपेक्षाकृत सरल माना जाता है।

Visual Basic (विज़ुअल बेसिक) की व्युत्पत्ति BASIC (बेसिक) से हुई। यह ग्राफिकल यूज़र इंटरफेस (GUI) के रैपिड ऐप्लिकेशन डेवलपमेंट (RAD), डेटा ऐक्सेस ऑब्जेक्ट्स, रिमोट डेटा ऑब्जेक्ट्स, या ऐक्टिव-एक्स (ActiveX) डेटा ऑब्जेक्ट्स के द्वारा डेटाबेस के ऐक्सेस और ऐक्टिव-एक्स (ActiveX) कंट्रोल्स और ऑब्जेक्ट्स के निर्माण को सक्षम बनाता है। स्क्रिप्टिंग लेंग्वेज, जैसे कि VBA और VBScript (VBस्क्रिप्ट) के सिंटैक्स (वाक्य विन्यास) तो वैसे विज़ुअल बेसिक (Visual Basic) के जैसे ही है पर उनके प्रदर्शन में अंतर है।

एक प्रोग्रामर Visual Basic (विज़ुअल बेसिक) के साथ दिए गए कॉम्पोनेंट्स (संघटक भागों) का प्रयोग करके किसी ऐप्लिकेशन को इकठ्ठा कर सकता है। विज़ुअल बेसिक में लिखे गए प्रोग्राम Windows API (विंडोज़ API) का भी प्रयोग कर सकते हैं, लेकिन ऐसा करने के लिए एक्स्टर्नल फंक्शन डिक्लेयरेशंस की आवश्यकता होती है।

आख़िरी बार 1998 में इसका छठा संस्करण रिलीज़ किया गया था। Microsoft (माइक्रोसॉफ्ट) का विस्तारित समर्थन मार्च 2008 में समाप्त हो गया जिसके बाद Visual Basic.NET (विज़ुअल बेसिक.नेट) (जो अब केवल विजुअल बेसिक के नाम से जाना जाता है) इसका नामज़द उत्तराधिकारी बना। यह एक प्रोग्रामिंग भाषा है

## लैंग्वेज की विशेषताएं

BASIC (बेसिक) प्रोग्रामिंग लैंग्वेज की तरह Visual Basic (विज़ुअल बेसिक) को भी इस तरह डिजाइन किया गया कि इसे सीखने और प्रयोग करने में आसानी हो। यह लैंग्वेज प्रोग्रामरों को केवल सरल GUI ऐप्लिकेशंस बनाने की क्षमता ही प्रदान नहीं करता बल्कि इसके द्वारा जटिल ऐप्लिकेशंस भी विकसित किए जा सकते हैं।
VB में प्रोग्रामिंग कई सारी क्रियाओं का संयोजन है। ये क्रियाएं हैं: दृश्य रूप से कॉम्पोनेंट्स या कंट्रोल्स को एक फॉर्म पर व्यवस्थित करना, उन कॉम्पोनेंट्स के ऐट्रीब्यूट्स और ऐक्शंस को निर्धारित करना और फंक्शंस के रोल को और मजबूत करने के लिए कोड की अतिरिक्त लाइनें लिखना.
चूंकि कॉम्पोनेंट्स के डिफॉल्ट ऐट्रिब्यूट्स और ऐक्शंस परिभाषित रहते हैं, इसलिए प्रोग्रामर को एक साधारण प्रोग्राम लिखने के लिए कोड्स की बहुत ज्यादा लाइनें लिखने की ज़रुरत नहीं होती.
शुरूआती संस्करणों में हालांकि प्रदर्शन क्षमता से जुड़ी समस्याओं को अनुभव किया गया, लेकिन ज्यादा तेज कंप्यूटरों और नेटिव कोड कम्पाइलेशन की सहायता से यह समस्या कोई बड़ी बात नहीं रह गई है।

हालांकि संस्करण 5 के बाद से प्रोग्रामों को नेटिव कोड एक्ज़िक्यूटेबल्स में कम्पाइल किया जा सकता है पर अब भी उन्हें (प्रोग्रामों को) तकरीबन 1MB आकार के रनटाइम लाइब्रेरियों के उपस्थिति की ज़रुरत होती है। यह रनटाइम, Windows 2000 (विंडोज़ 2000) और बाद के विंडोज़ के संस्करणों में 'बाइ डिफॉल्ट' शामिल रहता है, लेकिन 95/98/NT जैसे Windows (विंडोज़) के पुराने संस्करणों के लिए इसका एक्ज़िक्यूटेबल के साथ वितरण करना ज़रूरी होता है।

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

Visual Basic (विज़ुअल बेसिक) से एक्ज़िक्यूटेबल्स (EXE फाइल्स), एक्टिव-एक्स कंट्रोल्स, या DLL फाइल्स बनाए जा सकते हैं, लेकिन मुख्य रूप से इसका प्रयोग Windows (विंडोज़) ऐप्लिकेशंस और डेटाबेस सिस्टम्स के इंटरफेस तैयार करने के लिए किया जाता है। पॉप-अप कार्यक्षमता प्रदान करने के लिए कम क्रियाशीलता वाले डायलॉग बॉक्स का प्रयोग किया जा सकता है। कंट्रोल, ऐप्लिकेशन की मूल क्रियाशीलता प्रदान करता है जबकि प्रोग्रामर्स उपयुक्त इवेंट हैंडलर्स में और अधिक लॉजिक डाल सकते हैं। उदाहरण के लिए, एक ड्रॉप-डाउन संयोजन बॉक्स स्वतः अपनी सूची दिखा देता है जिससे की यूजर किसी भी एलिमेंट का चयन कर सकता है। जब एक आइटम का चयन होता है तो एक इवेंट हैंडलर 'कॉल' होता है जो तब प्रोग्रामर द्वारा लिखे गए अतिरिक्त कोड को एक्ज़िक्यूट कर किसी ख़ास काम को अंजाम देता है। कौन सा कार्य-विशेष शुरू किया गया यह इस बात पर निर्भर करता है कि कौन से एलिमेंट का चयन किया गया था, जैसे कि एक संबंधित लिस्ट को भरना.

ऐसा भी हो सकता है कि एक Visual Basic (विज़ुअल बेसिक) कंपोनेंट में कोई यूज़र इंटरफेस हो ही नहीं, इसके बजाय यह (कंपोनेंट) दूसरे प्रोग्रामों को कंपोनेंट ऑब्जेक्ट मॉडल (COM) के माध्यम से एक्टिव-एक्स ऑब्जेक्ट्स उपलब्ध कराता है। इस विशेषता के कारण सर्वर-साइड प्रोसेसिंग या एक ऐड-इन मॉड्यूल संभव हो जाता है।

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

विज़ुअल बेसिक कम्पाइलर को अन्य Visual Studio (विज़ुअल स्टुडियो) लैंग्वेजों (C, C++) के साथ शेयर किया गया है, लेकिन IDE में बंधनों के कारण कुछ 'टारगेट्स' (विंडोज़ मॉडल DLL's) और थ्रेडिंग मॉडल्स की रचना संभव नहीं है।

## अभिलक्षण
विज़ुअल बेसिक में निम्नलिखित विशिष्टताएं हैं जो C - से व्युत्पन्न लैंग्वेजों से अलग हैं:
* C लैंग्वेज में उपलब्ध मल्टीपल असाइनमेन्ट इसमें संभव नहीं है। A = B = C का मतलब यह नहीं है कि A, B और C के मान बराबर हैं। "Is B=C?" का बूलियन परिणाम A में संग्रहित होता है। इसलिए A में संग्रहित परिणाम, फॉल्स (0) या ट्रू (-1) हो सकता है।
* बूलियन कॉन्सटैंट True का संख्यात्मक मान -1 होता है। ऐसा इसलिए हैं क्योंकि बूलियन डेटा टाइप 16-बिट के साइन्ड इंटीजर के रूप में संग्रहित रहता है। इस संरचना में -1, 16 बाइनरी 1s (बूलियन वैल्यू True) और 0, 16 0s (बूलियन वैल्यू False) के रूप में निरूपित रहता है। यह जाहिर हो जाता है जब 0 वैल्यू वाले 16-बिट के साइन्ड इंटीजर पर Not ऑपरेशन करने पर इन्टीजर वैल्यू -1 रिटर्न होता है, दूसरे शब्दों में True = Not False। इसमें अंतर्निहित यह विशेष कार्य क्षमता ख़ास कर तब और उपयोगी हो जाती है जब किसी इंटीजर के अलग-अलग बिट्स पर लॉजिकल ऑपरेशंस, जैसे कि And, Or, Xor और Not का निष्पादन किया जाता है। True की यह परिभाषा, 1970 के दशक के शुरूआत में Microsoft BASIC (माइक्रोसॉफ्ट बेसिक) के कार्यान्वयन के समय से ही BASIC (बेसिक) के साथ सुसंगत है और उस समय के CPU इंस्ट्रक्शंस (निर्देशों) की विशेषताओं से भी सम्बंधित हैं।
* इसमें लॉजिकल और बिटवाइज़ ऑपरेटर्स एकीकृत रहते हैं। यह C-से व्युत्पन्न कुछ लैंग्वेजों (जैसे कि Perl (पर्ल)) से भिन्न है, जिनमें लॉजिकल और बिटवाइज़ ऑपरेटर्स अलग-अलग होते है। यह भी BASIC की एक पारंपरिक विशेषता है।
* इसकी एक और खासियत है, वैरिएबल एरे बेस. इसमें 'एरेज़' को Pascal (पास्कल) और Fortran (फोरट्रान) में - यानी 'अपर' (ऊपरी) और 'लोअर' (निचली) बाउंड्स (सीमाओं) का निर्धारण करके डिक्लेयर किया जाता है। इसमें ऑप्शन बेस स्टेटमेंट का प्रयोग कर डिफॉल्ट लोअर बाउंड का निर्धारण भी संभव है। Visual Basic (विज़ुअल बेसिक) कोड को पढ़ने के लिए ऑप्शन बेस स्टेटमेंट का प्रयोग उलझन पैदा कर सकता है। इससे बचने का सबसे अच्छा उपाय यही है कि एरे के लोअर बाउंड को हमेशा स्पष्टतया निर्धारित किया जाए. यह लोअर बाउंड 0 या 1 तक सीमित नहीं है क्योंकि इसे डिक्लेयरेशन द्वारा भी निर्धारित किया जा सकता है। इस तरह से, लोअर और अपर बाउंड दोनों प्रोग्राम किए जा सकते हैं। अधिकतर सबस्क्रिप्ट-लिमिटेड लैंग्वेजों में, एरे के लोअर बाउंड को बदला नहीं जा सकता.यह असामान्य गुण Visual Basic .NET (विज़ुअल बेसिक डॉट नेट) में तो मौजूद है लेकिन VBScript (VBस्क्रिप्ट) में मौजूद नहीं है।
:`OPTION BASE (ऑप्शन बेस)` को 1970 के दशक के उत्तरार्ध में ANSI Minimal BASIC (एन्सी मिनिमल बेसिक) के मानक के तौर पर ANSI द्वारा पेश किया गया था।
* Windows operating system (विंडोज ऑपरेटिंग सिस्टम) और Component Object Model (कॉम्पोनेंट ऑब्जेक्ट मॉडल) के साथ अपेक्षाकृत मजबूत एकीकरण (इंटिग्रेशन).
* जब भी `Round (राउंड)` फंक्शन द्वारा रियल संख्याओं को इंटीजर में बदला जाता है तो बैंकर्स राउंडिंग डिफॉल्ट के रूप में काम करता है।
* इंटीजर्स, उन एक्स्प्रेशंस, जिनमें नॉर्मल डिविजन वाले ऑपरेटर (/) रहते हैं, में स्वतः रियल में बदल जाते हैं, इस कारण जब किसी ऑड (विषम) इंटीजर को इवेन (सम) इंटीजर से विभाजित किया जाता है तो सही फल मिलता है जो सहजज्ञान से भी सही लगता है। एक विशिष्ट इंटीजर डिवाइड ऑपरेटर (\) होता है जो ट्रंकेट करने का काम करता है।
* यदि किसी वैरिएबल को डिक्लेयर नहीं किया गया है या किसी टाइप डिक्लेयरेशन कैरेक्टर को निर्दिष्ट नहीं किया गया है, तो वैरिएबल बाइ डिफॉल्ट Variant (वैरिएंट) टाइप का हो जाता है। हालांकि, इसे DeFint (डेफइंट), DefBool (डेफबूल), DefVar (डेफवर), DefObj (डेफऑब्ज), DefStr (डेफस्टर) जैसे Deftype (डेफटाइप) स्टेटमेंट्स के द्वारा बदला जा सकता है। Visual Basic 6.0 (विज़ुअल बेसिक 6.0) में कुल 12 Deftype (डेफटाइप) स्टेटमेंट्स होते हैं। वैरिएबल नेम के साथ किसी प्रत्यय-विशेष (विशेष सफिक्स कैरेक्टर) का प्रयोग कर किसी डिक्लेयरेशन के डिफॉल्ट टाइप को बदला जा सकता है (डबल के लिए #, 
! सिंगल के लिए, लॉन्ग के लिए &amp;, इन्टिजर के लिए %, स्ट्रिंग के लिए $ और करेन्सी के लिए @), या फिर की फ्रेज As (type) के प्रयोग से भी ऐसा किया जा सकता है।VB को इस मोड में भी स्थापित किया जा सकता है जिसमें कि कमांड Option Explicit (ऑप्शन एक्सप्लिशिट) के साथ सिर्फ स्पष्टतया घोषित वैरिएबल्स का ही प्रयोग किया जा सकता है।

## इतिहास

VB 1.0 का अनावरण 1991 में हुआ था। यूज़र इंटरफ़ेस के लिए ड्रैग ऐंड ड्रॉप डिजाइन की उत्पत्ति एक प्रोटोटाइप फॉर्म जेनरेटर से की गई जिसे ऐलन कूपर और उनकी कम्पनी *Tripod (ट्राइपॉड)* ने विकसित किया था।Microsoft (माइक्रोसॉफ्ट) ने Tripod (ट्राइपॉड) को Windows 3.0 (विंडोज़ 3.0) के लिए एक प्रोग्रामेबल फॉर्म सिस्टम में विकसित करने के लिए कूपर एवं उनके सहयोगियों के साथ एक अनुबंध किया। यह अनुबंध कोड नेम *रूबी* (रूबी प्रोग्रामिंग लेंग्वेज के साथ कोई सम्बन्ध नहीं) के अंतर्गत किया गया।

Tripod (ट्राइपॉड) में कोई भी प्रोग्रामिंग लैंग्वेज सम्मिलित नहीं था। Visual Basic (विज़ुअल बेसिक) का निर्माण करने के लिए Microsoft (माइक्रोसॉफ्ट) ने Basic (बेसिक) लैंग्वेज के साथ Ruby (रूबी) को संयुक्त करने का फैसला किया।

Ruby (रूबी) इंटरफेस जेनरेटर ने विज़ुअल बेसिक का "विज़ुअल" भाग प्रदान किया जिसे "Omega" (ओमेगा) डेटाबेस सिस्टम जिसे Microsoft (माइक्रोसॉफ्ट) ने छोड़ दिया था) के लिए डिजाइन किए गए "EB" एम्बेडेड BASIC (बेसिक) ईंजन के साथ मिलाया गया।Ruby (रूबी) ने अतिरिक्त कंट्रोल्स वाले डायनॅमिक लिंक लाइब्रेरिज़ (जिन्हें तब "गिज़मॉस" कहा जाता था) को लोड करने की सुविधा भी प्रदान की, जो बाद में VBX इंटरफेस हो गया।

### समय रेखा (टाइमलाइन)

* परियोजना 'थंडर' का प्रारंभ किया गया।
* Visual Basic 1.0 (विज़ुअल बेसिक 1.0) (मई 1991) को अटलांटा, जॉर्जिया में Comdex/Windows World trade show (कॉमडेक्स/विंडोज़ वर्ल्ड ट्रेड शो) में विंडोज़ के लिए रिलीज़ किया गया।
दाएँ|VB DOS लोगो

* DOS के लिए Visual Basic 1.0 (विज़ुअल बेसिक 1.0) को सितम्बर 1992 में रिलीज़ किया गया। यह लैंग्वेज स्वंय Windows (विंडोज़) के लिए बने Visual Basic (विज़ुअल बेसिक) के साथ पूर्णतया संगत नहीं था, क्योंकि वास्तव में यह Microsoft (माइक्रोसॉफ्ट) के DOS-आधारित BASIC (बेसिक) कम्पाईलर्स) - QuickBASIC (क्विक बेसिक) और BASIC Professional Development System (बेसिक प्रोफेशनल डेवलपमेंट सिस्टम)- का अगला संस्करण था। इस इंटरफेस ने एक्स्टेंडेड ASCII कैरेक्टर्स का "COW" (कैरेक्टर ओरिएंटेड विंडोज़) इंटरफेस में इस्तेमाल कर एक GUI के उपस्थिति की नक़ल की।
अंगूठाकार|दाएँ|300px|विज़ुअल बेसिक फॉर MS-DOS
* Visual Basic 2.0 (विज़ुअल बेसिक 2.0) को नवम्बर 1992 में रिलीज़ किया गया। प्रोग्रामिंग एनवायरनमेंट का प्रयोग करना बहुत आसान था और इसकी गति भी अच्छी थी। विशेष रूप से, इसमें फॉर्म इंस्टैंशिएबल ऑब्जेक्ट्स बन गए; इस तरह क्लास मॉड्यूल के अवधारणाओं की नींव रखी गई जिन्हें बाद में VB4 में पेश किया गया।
* Visual Basic 3.0 (विज़ुअल बेसिक 3.0) को 1993 की गर्मियों में रिलीज़ किया गया और यह 'स्टैंडर्ड' और 'प्रोफेशनल' संस्करणों में उपलब्ध कराया गया।VB3 में Microsoft Jet Database Engine (माइक्रोसॉफ्ट जेट डेटाबेस ईंजन) का संस्करण 1.1 शामिल था जो जेट (या एक्सेस) 1.x डेटाबेस को पढ़ और लिख सकता था।
* Visual Basic 4.0 (विज़ुअल बेसिक 4.0) (अगस्त 1995) ऐसा पहला संस्करण था जो 32-बिट के साथ-साथ 16-बिट विंडोज़ प्रोग्राम की रचना कर सकता था। इसने विज़ुअल बेसिक में नॉन-GUI क्लासेस को लिखने की सुविधा की भी शुरूआत की। VB4 के विभिन्न रिलीज़ों के बीच की असंगतता ने स्थापन और संचालन की समस्याओं को पैदा किया। जबकि Visual Basic (विज़ुअल बेसिक) के पिछले संस्करणों में VBX कंट्रोल्स का प्रयोग किया गया था, इसके बजाय अब Visual Basic (विज़ुअल बेसिक) में OLE कंट्रोल्स का प्रयोग होने लगा (जिसमें फ़ाइल के नाम .OCX के साथ समाप्त होते थे).इनका नाम बाद में एक्टिवएक्स (ActiveX) कंट्रोल्स पड़ा.
* संस्करण 5.0 (फरवरी 1997) के साथ ही Microsoft (माइक्रोसॉफ्ट) ने Windows (विंडोज़) के 32-बिट संस्करण के लिए ख़ास तौर पर Visual Basic (विज़ुअल बेसिक) रिलीज़ किया। जो प्रोग्रामर्स 16-बिट प्रोग्राम्स लिखने को प्राथमिकता देते थे वे Visual Basic 4.0 (विज़ुअल बेसिक 4.0) में लिखे गए प्रोग्राम्स को Visual Basic 5.0 (विज़ुअल बेसिक 5.0) में आयात कर सकते थे। साथ ही Visual Basic 5.0 (विज़ुअल बेसिक 5.0) में लिखे गए प्रोग्राम्स को Visual Basic 4.0 (विज़ुअल बेसिक 4.0) के साथ आसानी से परिवर्तित किया जा सकता है। Visual Basic 5.0 (विज़ुअल बेसिक 5.0) ने कस्टम यूज़र कंट्रोल्स रचने की सक्षमता प्रदान की तथा Windows (विंडोज) के अंदरूनी (नेटिव) एक्ज़िक्यूटेबल कोड को कम्पाइल करने की समर्थता को भी संभव बनाया। इससे कैलकुलेशन-इंटेंसिव कोड एक्ज़िक्यूशन ज्यादा तेज हो गया। एक्टिवएक्स कंट्रोल्स के निर्माण के लिए एक मुफ़्त, डाउनलोड योग्य कंट्रोल क्रिएशन एडिशन को भी रिलीज़ किया गया। इसे Visual Basic (विज़ुअल बेसिक) के एक प्रारम्भिक रूप की तरह भी प्रयोग किया गया: एक नियमित .exe प्रोजेक्ट बनाया जा सकता था और IDE में रन किया जा सकता था; पर कम्पाइल नहीं किया जा सकता था।
* Visual Basic 6.0 (विज़ुअल बेसिक 6.0) (मध्य 1998) का कई क्षेत्रों में सुधार हुआ, जिसमें वेब-आधारित ऐप्लिकेशंस के निर्माण की क्षमता भी शामिल थी। VB6 ने Microsoft (माइक्रोसॉफ्ट) के "नॉन-सपोर्टेड फेज़" में मार्च 2008 में प्रवेश कर लिया है। हालांकि Visual Basic 6.0 (विज़ुअल बेसिक 6.0) डेवलपमेंट एनवायरनमेंट अब 'सपोर्टेड' नहीं है, इसके रन टाइम को Windows Vista (विंडोज़ विस्टा), Windows Server 2008 (विंडोज़ सर्वर 2008) और Windows 7 (विंडोज़ 7) सपोर्ट करते हैं।
* Microsoft Visual Basic 6.0 (माइक्रोसॉफ्ट विज़ुअल बेसिक 6.0) के लिए मुख्यधारा सपोर्ट का अंत 31 मार्च, 2005 में हो गया। विस्तारित सपोर्ट मार्च 2008 में समाप्त हुआ। प्रतिक्रियास्वरूप विज़ुअल बेसिक उपयोगकर्ता समुदाय ने गंभीर चिंता व्यक्त की और इसे जीवित रखने के लिए उपयोगकर्ताओं को सामूहिक रूप से एक याचिका पर हस्ताक्षर करने के लिए प्रेरित किया गया। Microsoft (माइक्रोसॉफ्ट) ने अब तक इस मामले पर अपनी स्थिति बदलने की मांग को खारिज कर दिया है। (लेकिन देखिये) अजीब संयोग वाली बात यह है कि तकरीबन इसी समय (2005), यह खुलासा हुआ कि Microsoft की नई पेशकश, Microsoft AntiSpyware (माइक्रोसॉफ्ट एंटी-स्पाइवेयर) (GIANT Company Software (जाएंट कंपनी सॉफ्टवेयर) परचेज का भाग) के नाम के एंटी-स्पाइवेयर को Visual Basic 6.0 (विज़ुअल बेसिक 6.0) में कोड किया गया था। इसकी जगह लेने वाला- Windows Defender (विंडोज़ डिफेंडर)- का कोड C++ में पुनः लिखा गया।

## व्युत्पत्तिक लैंग्वेज
स्क्रिप्टिंग में प्रयोग करने के लिए Microsoft (माइक्रोसॉफ्ट) ने Visual Basic (विज़ुअल बेसिक) के व्युत्पादों को विकसित किया है। विज़ुअल बेसिक को स्वयं व्यापक रूप से BASIC से विकसित किया गया है और तत्पश्चात इसे .NET प्लेटफॉर्म संस्करण के साथ प्रतिस्थापित किया गया है।

कुछ व्युत्पाद लैंग्वेज हैं:
* Visual Basic for Applications (विज़ुअल बेसिक फॉर ऐप्लिकेशंस) (VBA) को Microsoft (माइक्रोसॉफ्ट) के कई ऐप्लिकेशंस ([Microsoft Office
([माइक्रोसॉफ्ट ऑफिस)|Microsoft Office (माइक्रोसॉफ्ट ऑफिस)]]), तथा SolidWorks (सॉलिडवर्क्स), AutoCAD (ऑटोकैड), WordPerfect Office 2002 (वर्डपरफेक्ट ऑफिस 2002), ArcGIS और Sage Accpac ERP (सेज एक्पेक ERP) जैसे कई थर्ड-पार्टी उत्पादों में भी सम्मिलित किया गया है। जिस तरह से VBA को विभिन्न ऐप्लिकेशंस में कार्यान्वित किया गया है उसमें छोटी-छोटी अनियमितताएं हैं, लेकिन वृहद् रूप से यह VB6 के जैसी ही लैंग्वेज है और समान रनटाइम लाइब्रेरी का उपयोग करती है।
* VBScript (VBस्क्रिप्ट) Active Server Pages (एक्टिव सर्वर पेजेज) के लिए डिफॉल्ट लैंग्वेज है। इसका प्रयोग विंडोज़ स्क्रिप्टिंग और क्लाइंट-साइड वेब पेज स्क्रिप्टिंग में किया जा सकता है। हालांकि इसका सिंटैक्स (वाक्य विन्यास) VB से मिलता है लेकिन यह एक अलग लैंग्वेज है और यह VB रन टाइम के विपरीत vbscript.dll द्वारा एक्ज़िक्यूट होता है।ASP और VBस्क्रिप्ट को ASP.NET के साथ जोड़ कर देखने पर उलझन पैदा हो सकती है।ASP.NET कम्पाइल किए गए वेब पेजों के लिए .NET फ्रेमवर्क का प्रयोग करता है।
* Visual Basic .NET (विज़ुअल बेसिक .NET), Visual Basic 6.0 (विज़ुअल बेसिक 6.0) के बाद Microsoft (माइक्रोसॉफ्ट) का मनोनीत वारिस है और Microsoft (माइक्रोसॉफ्ट) के .NET प्लेटफॉर्म का एक भाग है। विज़ुअल बेसिक .NET, .NET फ्रेमवर्क का प्रयोग कर कम्पाइल और रन होता है। यह VB6 के साथ बैकवर्ड्स कम्पॅटिबल नहीं है। एक स्वचालित रूपांतरण टूल मौजूद होता है लेकिन अधिकांश प्रोजेक्ट्स के लिए पूर्ण स्वचालित रूपांतरण असंभव है।
* StarOffice Basic (स्टारऑफिस बेसिक) StarOffice (स्टारऑफिस) सुइट में सम्मिलित एक इंटरप्रेटर है जो Visual Basic (विज़ुअल बेसिक) के साथ कम्पॅटिबल है। इसे Sun Microsystems (सन माइक्रोसिस्टम्स) द्वारा विकसित किया गया है।
* Gambas (गैम्बस) विज़ुअल बेसिक से प्रेरित एक मुफ्त सॉफ्टवेयर प्रोग्रामिंग लैंग्वेज है। यह विज़ुअल बेसिक का क्लोन नहीं है, लेकिन इसमें विज़ुअल बेसिक प्रोग्राम को Gambas (गैम्बस) में रूपांतरित करने की क्षमता है।

## प्रदर्शन और अन्य विषय
Visual Basic (विज़ुअल बेसिक) के शुरूआती प्रतिरूप (संस्करण 5 से पहले), कोड को सिर्फ P-Code (पी-कोड) या Pseudo code (शिउडो कोड) में संकलित करते थे। Visual Basic (विज़ुअल बेसिक) 5 और 6 दोनों ही कोड को नेटिव या P-Code (पी-कोड) में कम्पाइल कर सकते हैं; यह प्रोग्रामर पर निर्भर करता है कि वह कोड को किस रूप में कम्पाइल करना चाहता है। P-Code (पी-कोड) लैंग्वेज रनटाइम, जिसे वर्चुअल मशीन के रूप में भी जाना जाता है, के द्वारा इंटरप्रेट किया जाता है। वर्चुअल मशीन को पोर्टेबिलिटी और स्मॉल कोड जैसे फायदों के उद्देश्य से क्रियान्वित किया जाता है। तब भी, इससे एक दिक्कत यह है कि रनटाइम द्वारा कोड के इंटरप्रिटेशन की अतिरिक्त परत एक्ज़िक्यूशन को धीमा कर देती है। हालांकि कुछ कोड और अलगोरिदम बनाए जा सकते हैं जो कम्पाइल किए गए नेटिव कोड से ज्यादा तेजी से रन कर सकते हैं।Visual Basic (विज़ुअल बेसिक) ऐप्लिकेशंस के लिए Microsoft Visual Basic (माइक्रोसॉफ्ट विज़ुअल बेसिक) रनटाइम MSVBVMxx.DLL की जरूरत होती है, जहां xx संबंधित संस्करण संख्या है- 50 या 60. MSVBVM50.dll, Windows 98 (विंडोज 98) के बाद के सभी संस्करणों में Windows (विंडोज़) के साथ मानक रूप में आती है जबकि MSVBVM60.dll, Windows 95 (विंडोज़ 95) के बाद के सभी संस्करणों के साथ आती है। हालांकि तब भी, Windows 95 (विंडोज़ 95) मशीन को उस DLL के इंस्टॉलर के साथ शामिल करने की ज़रुरत होती है, जिसकी आवश्यकता प्रोग्राम को पड़ती थी।

VB.NET से पहले के Visual Basic (विज़ुअल बेसिक) संस्करणों की आलोचनाओं में सम्मिलित हैं:

* विभिन्न रनटाइम DLLs- जिन्हें DLL हेल के नाम से जाना जाता है- से संबधित संस्करण संबंधी समस्याएं.
* ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग के लिए खराब सपोर्ट
* Windows API calls (विंडोज़ API कॉल्स) की सहायता के बिना, मल्टी थ्रेडेड ऐप्लिकेशंस के निर्माण की असमर्थता
* यूनिकोड सपोर्ट की कमी
* Windows (विंडोज़) सेवाओं के निर्माण की असमर्थता
* कंसोल ऐप्लिकेशन के निर्माण की असमर्थता
* वैरिएंट टाइप लेंग्वेज, स्ट्रोंगली टाइप्ड प्रोग्रामिंग लैंग्वेजों की अपेक्षा बेहतर प्रदर्शन करते हैं और उनमें स्टोरेज ओवरहेड भी ज्यादा होता है।

## लिगेसी विकास और सपोर्ट

1.0 से लेकर 6.0 तक के Visual Baisc (विज़ुअल बेसिक) के सभी संस्करण निवृत्त हो चुके हैं और Microsoft (माइक्रोसॉफ्ट) अब उनमें से किसी को सपोर्ट नहीं करता. Visual Basic 6 (विज़ुअल बेसिक 6) प्रोग्राम्स अभी भी Vista (विस्टा), Windows Server 2008 (विंडोज़ सर्वर 2008) और Windows 7 (विंडोज़ 7) तक के Windows विंडोज़ के संस्करणों पर रन कर सकता है और रनटाइम इन संस्करणों पर Microsoft (माइक्रोसॉफ्ट) द्वारा सपोर्टेड हैं। विज़ुअल बेसिक 6 के लिए डेवलपमेंट और मेंटेनेंस डेवलपमेंट (विकास और अनुरक्षण), विज़ुअल स्टुडियो 6.0 का प्रयोग करके Windows XP (विंडोज़ XP), Windows Vista (विंडोज़ विस्टा) और Windows 2003 (विंडोज़ 2003) पर संभव है। Visual Basic 6.0 (विज़ुअल बेसिक 6.0) के लिए प्रलेखीकरण, इसका ऐप्लिकेशन प्रोग्रामिंग इंटरफेस और टूल्स, Visual Studio.NET 2002 (विज़ुअल स्टुडियो डॉट नेट 2002) से पहले अंतिम MSDN रिलीज़ में सबसे अच्छे तरीके से शामिल है। MSDN के बाद के रिलीज़ ने .NET डेवलपमेंट पर फोकस किया और विज़ुअल बेसिक 6.0 प्रोग्रामिंग प्रलेखीकरण के कई महत्वपूर्ण हिस्सों को हटा दिया था। इस प्रकार के लिगेसी सिस्टम के लिए डेवलपमेंट, Windows 2003 (विंडोज़ 2003) या Windows XP (विंडोज XP), Visual Studio 6.0 (विज़ुअल स्टुडियो 6.0) और MSDN प्रलेखीकरण के साथ वर्चुअल मशीन का प्रयोग करके किया जा सकता है। Visual Basic IDE (विज़ुअल बेसिक IDE) को विंडोज़ विस्टा पर इंस्टॉल और प्रयोग किया जा सकता है जहां पर यह कुछ सूक्ष्म असंगतियों को प्रकट करता है जो सामान्य सॉफ्टवेयर डेवलपमेंट और मेंटेनेंस में रूकावट नहीं डालते है। अगस्त 2008 से, ऊपर वर्णित Visual Studio 6.0 (विज़ुअल स्टुडियो 6.0) और MSDN प्रलेखीकरण, दोनों, MSDN अभिदाताओं (सबस्क्राइबर्स) द्वारा डाउनलोड करने के लिए उपलब्ध है।

## उदाहरण कोड
लैंग्वेज का एक उदाहरण यहां दिया गया है:

कोड स्निपेट जो एक मैसेज बॉक्स "Hello, World!" (हैलो, वर्ल्ड!) दर्शाता है जैसा कि विंडोज़ *Form* (फॉर्म) लोड करता है:

```vb
Private Sub Form_Load() 
MsgBox "Hello, World!" 
End Sub
```


## सन्दर्भ

## बाहरी कड़ियाँ

* MSDN पर VB 6.0
* MSDN UK पर VB 6.0 
* Visual Basic 6.0 (विज़ुअल बेसिक 6.0) से Visual Basic 2008 (विज़ुअल बेसिक 2008) (MSDN UK) में स्थानान्तरण 
* 
.

श्रेणी:BASIC (बेसिक) कोड के उदाहरण के साथ आर्टिकल्स
श्रेणी:Procedural programming languages (प्रॅसिड्यूरल प्रोग्रामिंग लैंग्वेजेस)
श्रेणी:माइक्रोसॉफ्ट बेसिक
श्रेणी:माइक्रोसॉफ्ट विज़ुअल स्टूडियो
श्रेणी:गूगल परियोजना