विज़ुअल बेसिक
(विज़ुअल बेसिक) ( 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 - से व्युत्पन्न लैंग्वेजों से अलग हैं: ! सिंगल के लिए, लॉन्ग के लिए &, इन्टिजर के लिए %, स्ट्रिंग के लिए $ और करेन्सी के लिए @), या फिर की फ्रेज 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 इंटरफेस हो गया। स्क्रिप्टिंग में प्रयोग करने के लिए Microsoft (माइक्रोसॉफ्ट) ने Visual Basic (विज़ुअल बेसिक) के व्युत्पादों को विकसित किया है। विज़ुअल बेसिक को स्वयं व्यापक रूप से BASIC से विकसित किया गया है और तत्पश्चात इसे .NET प्लेटफॉर्म संस्करण के साथ प्रतिस्थापित किया गया है।
कुछ व्युत्पाद लैंग्वेज हैं:
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 (विज़ुअल बेसिक) संस्करणों की आलोचनाओं में सम्मिलित हैं: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" (फॉर्म) लोड करता है: Private Sub Form_Load()  MsgBox "Hello, World!"  End Sub
.