
Software engineer Bartosz Korczynski has created what he calls “a recreation of the classic Visual Basic 6 (VB 6) IDE and language in C# with Avalonia,” running cross-platform, though he notes that the implementation of the VB6 language is limited and states that it is “purely a toy and for fun project.”

Entitled “Avalonia Visual Basic 6,” the project is open source on GitHub under the MIT License. It is built using Avalonia – a popular cross-platform framework for .NET that was inspired by Microsoft’s WPF (Windows Presentation Foundation). Unlike WPF, Avalonia runs on Windows, macOS, Linux, iOS, Android and in the browser via WebAssembly. Avalonia VB 6 also runs in the browser, though in this guise it cannot load or save projects.
We were able to build and run the project on an Apple Silicon Mac, watching with a mixture of admiration and horror as the venerable IDE came to life looking very much like the original. Admiration, because it is such a detailed and close copy. Horror, because of reminders of the limitations of VB 6. It was quirky, and tended towards spaghetti code when used in large projects.
Microsoft’s VB 6, released in 1998, was the final version of the original Visual Basic – a revolutionary rapid application development environment whose first version was for Windows 3.0 in 1991. At the time, Windows desktop development generally involved advanced programming with C or C++ and a deep knowledge of the Windows API. Visual Basic made it simple to build applications based on a drag and drop form designer and Microsoft’s Basic language, and enabled fast development of line of business applications. The capability of the platform advanced with VB 3 in 1993, which added integrated support for Access databases.
VB 6 applications still run on Windows today. Although the IDE has been out of support since 2008, the runtime remains part of Windows, and the closely-related Visual Basic for Applications (VBA) is a macro language for Microsoft Office including Word and Excel – though Microsoft steers developers towards JavaScript-based Office add-ins that also run in the browser.
Korczynski wrote on LinkedIn that “if recreating old UIs can be considered a hobby, this is my hobby.” Nevertheless, if he or another party could find a way to run VB 6 applications cross-platform, or migrate them to C# for maintenance and enhancement, there would likely be business interest because of the number of applications still in use.
A mini-FAQ from Korczynski explains that the VB6 code is interpreted, but can be compiled to a native executable which does that interpreting. Support for more language features is planned – though perhaps not for the myriad of VBX add-ins on which many production applications also depend.
Microsoft failed to provide a smooth migration path from VB 6 to VB .NET, leaving many applications stuck on what is now an ancient platform. “VB6 IDE doesn’t run nicely on modern Windows – this may pave the way for hundreds of legacy codebases to be edited and compiled more easily,” remarked an optimistic developer on Reddit. Another remarked that “I almost wish this was more than a toy project (no pressure on the dev, just my personal desire), because I still have to interact with a VERY large VB6 code base on a semi-regular basis.”