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

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

BASIC (बेसिक) प्रोग्रामिंग लैंग्वेज की तरह Visual Basic (विज़ुअल बेसिक) को भी इस तरह डिजाइन किया गया कि इसे सीखने और प्रयोग करने में आसानी हो। यह लैंग्वेज प्रोग्रामरों को केवल सरल GUI ऐप्लिकेशंस बनाने की क्षमता ही प्रदान नहीं करता बल्कि इसके द्वारा जटिल ऐप्लिकेशंस भी विकसित किए जा सकते हैं।
VB में प्रोग्रामिंग कई सारी क्रियाओं का संयोजन है। ये क्रियाएं हैं: दृश्य रूप से कॉम्पोनेंट्स या कंट्रोल्स को एक फॉर्म पर व्यवस्थित करना, उन कॉम्पोनेंट्स के ऐट्रीब्यूट्स और ऐक्शंस को निर्धारित करना और फंक्शंस के रोल को और मजबूत करने के लिए कोड की अतिरिक्त लाइनें लिखना.
चूंकि कॉम्पोनेंट्स के डिफॉल्ट ऐट्रिब्यूट्स और ऐक्शंस परिभाषित रहते हैं, इसलिए प्रोग्रामर को एक साधारण प्रोग्राम लिखने के लिए कोड्स की बहुत ज्यादा लाइनें लिखने की ज़रुरत नहीं होती.
शुरूआती संस्करणों में हालांकि प्रदर्शन क्षमता से जुड़ी समस्याओं को अनुभव किया गया, लेकिन ज्यादा तेज कंप्यूटरों और नेटिव कोड कम्पाइलेशन की सहायता से यह समस्या कोई बड़ी बात नहीं रह गई है।
हालांकि संस्करण 5 के बाद से प्रोग्रामों को नेटिव कोड एक्ज़िक्यूटेबल्स में कम्पाइल किया जा सकता है पर अब भी उन्हें (प्रोग्रामों को) तकरीबन 1MB आकार के रनटाइम लाइब्रेरियों के उपस्थिति की ज़रुरत होती है। यह रनटाइम, Windows 2000 (विंडोज़ 2000) और बाद के विंडोज़ के संस्करणों में 'बाइ डिफॉल्ट' शामिल रहता है, लेकिन 95/98/NT जैसे [[Microsoft Windows
(माइक्रोसॉफ्ट विंडोज)|Windows (विंडोज़)]] के पुराने संस्करणों के लिए इसका एक्ज़िक्यूटेबल के साथ वितरण करना ज़रूरी होता है।
फॉर्म्स का निर्माण ड्रैग-ऐंड-ड्रॉप तकनीकों का प्रयोग करके किया जाता है। फॉर्म (विंडो) पर कंट्रोल्स (जैसे - टेक्स्ट बॉक्स, बटन, इत्यादि) रखने के लिए एक उपकरण का प्रयोग किया जाता है। कंट्रोल्स के साथ इवेंट हैंडलर्स और ऐट्रिब्यूट्स जुड़े होते हैं। जब कंट्रोल बनाया जाता है तो इसके साथ डिफॉल्ट वैल्यू भी दिए जाते हैं, लेकिन इसे प्रोग्रामर के द्वारा बदला जा सकता है। कई ऐट्रिब्यूट वैल्यूज रन टाइम के दौरान बदले जा सकते हैं जो कि यूज़र ऐक्शंस या एनवायरनमेंट में बदलाव पर निर्भर करता है। उदाहरण के लिए, कंट्रोल की स्थिति में बदलाव लाने के लिए कोड को फॉर्म रिसाइज़ इवेंट हैंडलर में डाला जा सकता है ताकि यह (कंट्रोल) फॉर्म पर केन्द्रित रह सके, फॉर्म को भरने के लिए फैल सके, इत्यादि. कोड को टेक्स्ट बॉक्स में कीप्रेस के लिए इवेंट हैंडलर में डालने से प्रोग्राम, डाले गए टेक्स्ट के केस को खुद-ब-खुद अनुवादित कर सकता है, या यहां तक कि कुछ कैरेक्टर्स को अन्दर डाले जाने से भी रोक सकता है।
Visual Basic (विज़ुअल बेसिक) से एक्ज़िक्यूटेबल्स (EXE फाइल्स), एक्टिव-एक्स कंट्रोल्स, या DLL फाइल्स बनाए जा सकते हैं, लेकिन मुख्य रूप से इसका प्रयोग Windows (विंडोज़) ऐप्लिकेशंस और डेटाबेस सिस्टम्स के इंटरफेस तैयार करने के लिए किया जाता है। पॉप-अप कार्यक्षमता प्रदान करने के लिए कम क्रियाशीलता वाले डायलॉग बॉक्स का प्रयोग किया जा सकता है। कंट्रोल, ऐप्लिकेशन की मूल क्रियाशीलता प्रदान करता है जबकि प्रोग्रामर्स उपयुक्त इवेंट हैंडलर्स में और अधिक लॉजिक डाल सकते हैं। उदाहरण के लिए, एक ड्रॉप-डाउन संयोजन बॉक्स स्वतः अपनी सूची दिखा देता है जिससे की यूजर किसी भी एलिमेंट का चयन कर सकता है। जब एक आइटम का चयन होता है तो एक इवेंट हैंडलर 'कॉल' होता है जो तब प्रोग्रामर द्वारा लिखे गए अतिरिक्त कोड को एक्ज़िक्यूट कर किसी ख़ास काम को अंजाम देता है। कौन सा कार्य-विशेष शुरू किया गया यह इस बात पर निर्भर करता है कि कौन से एलिमेंट का चयन किया गया था, जैसे कि एक संबंधित लिस्ट को भरना.
ऐसा भी हो सकता है कि एक Visual Basic (विज़ुअल बेसिक) कंपोनेंट में कोई यूज़र इंटरफेस हो ही नहीं, इसके बजाय यह (कंपोनेंट) दूसरे प्रोग्रामों को कंपोनेंट ऑब्जेक्ट मॉडल (COM) के माध्यम से एक्टिव-एक्स ऑब्जेक्ट्स उपलब्ध कराता है। इस विशेषता के कारण सर्वर-साइड प्रोसेसिंग या एक ऐड-इन मॉड्यूल संभव हो जाता है।
यह एक गार्बेज कलेक्टेड लैंग्वेज है जिसमें गार्बेज कलेक्शन रेफरेंस काउंटिंग के द्वारा किया जाता है। इसमें यूटिलिटी ऑब्जेक्ट्स की एक विशाल लाइब्रेरी होती है और एक आधारभूत ऑब्जेक्ट ओरिएंटेड सपोर्ट होता है। चूंकि डिफॉल्ट प्रोजेक्ट टेम्पलेट में ज्यादा सामान्य कम्पोनेंट्स शामिल रहते हैं, इसलिए प्रोग्रामर को कभी-कभार ही अतिरिक्त लाइब्रेरिज़ को निर्दिष्ट करने की आवश्यकता होती है। कई अन्य प्रोग्रामिंग लैंग्वेजों से अलग, Visual Basic (विज़ुअल बेसिक) आम तौर पर 'केस सेंसेटिव' नहीं होता (यह छोटे और बड़े अक्षरों में कोई भेद नहीं करता), हालांकि यह कीवर्ड्स को एक मानक केस विन्यास में परिवर्तित कर देता है और वैरिएबल नेम्स के केस को सिम्बल टेबल के अन्दर मौजूद एंट्री (प्रविष्टि) के केस के अनुरूप बना देता है। बाइ डिफॉल्ट स्ट्रिंग्स की तुलना केस सेंसिटिव होती है, पर इसे इच्छानुसार 'केस इनसेंसिटिव' भी किया जा सकता है।
विज़ुअल बेसिक कम्पाइलर को अन्य Visual Studio (विज़ुअल स्टुडियो) लैंग्वेजों (C, C++) के साथ शेयर किया गया है, लेकिन IDE में बंधनों के कारण कुछ 'टारगेट्स' (विंडोज़ मॉडल DLL's) और थ्रेडिंग मॉडल्स की रचना संभव नहीं है।

इतिहास

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 इंटरफेस हो गया।

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

1.0 से लेकर 6.0 तक के Visual Baisc (विज़ुअल बेसिक) के सभी संस्करण निवृत्त हो चुके हैं और Microsoft (माइक्रोसॉफ्ट) अब उनमें से किसी को सपोर्ट नहीं करता. Visual Basic 6 (विज़ुअल बेसिक 6) प्रोग्राम्स अभी भी Vista (विस्टा), [[Windows Server 2008
(विंडोज सर्वर 2008)|Windows Server 2008 (विंडोज़ सर्वर 2008)]] और Windows 7 (विंडोज़ 7) तक के Windows विंडोज़ के संस्करणों पर रन कर सकता है और रनटाइम इन संस्करणों पर Microsoft (माइक्रोसॉफ्ट) द्वारा सपोर्टेड हैं। विज़ुअल बेसिक 6 के लिए डेवलपमेंट और मेंटेनेंस डेवलपमेंट (विकास और अनुरक्षण), [[Visual Studio 6.0
(विजुअल स्टूडियो 6.0)|विज़ुअल स्टुडियो 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