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 (विज़ुअल बेसिक) संस्करणों की आलोचनाओं में सम्मिलित हैं:


इतिहास
प्रदर्शन और अन्य विषय
अभिलक्षण
व्युत्पत्तिक लैंग्वेज