Move over VB6, there's a new BASIC programming language in town.

twinBASIC: a modern, BASIC programming language, aiming for 100% backwards compatibility with existing VB6/VBA projects.  A complete replacement development environment offering significant new features and improvements over the VB6 IDE.

Painstaking effort has gone into and continues to go into building a solid and well tested compiler, standard library and debugger.  Most significantly, we try to copy every quirk/feature found in the legacy VB6 and VBA compiler.

The first preview version of twinBASIC was unveiled to the public on 9th April 2021.

Over a year later, we have now implemented many new and exciting features, and of course fixed many bugs!

Early releases of twinBASIC ran as a VS Code extension.   As such, we relied on VS Code integration for providing the features that are expected from a modern IDE.  Recently we have released a brand new purpose-built IDE to go alongside the twinBASIC compiler, making the IDE more stable, more performant, and more refined for our needs.  Our VS Code extension will continue to be available via the VS Code marketplace, but development is currently paused as we further enhance our new dedicated IDE.


Over the past year, I think it's fair to say that a lot has happened.  We've fixed hundreds of bugs.  We've added hundreds of requested features.  We've released a new dedicated IDE.  We've started work on Forms and GUI elements.  We've also integrated the latest WebView2 technology, paving the way for creating modern desktop hybrid apps with your favourite BASIC language.

Only one thing is constant: twinBASIC is always pushing forward.

Please come and join us on the twinBASIC journey and help shape the future of classic BASIC.

To keep up-to-date with twinBASIC developments:

WARNING: twinBASIC is under heavy development!
Daily updates are the norm around here!

DOWNLOAD: The new dedicated twinBASIC IDE


twinBASIC DISCORD server

twinBASIC GitHub Issue Tracking

Please note: these videos are little outdated and wil be updated soon.
Here we see the older twinBASIC IDE (running as a VS Code extension).

IDE features

  • Semantic highlighting
  • Intellisense, code completion and signature help
  • Outline view
  • Goto definition
  • Rename refactoring
  • Uses the modern standard LSP protocol

Debugger features

  • Multi-thread debugging capability
  • Callstack window
  • Variables window
  • Watch window
  • Debug console (aka 'Immediate Window')
  • Uses the modern standard DAP protocol

Compiler features

  • Designed to be 100% compatible with existing VB6 and VBA code, simulating all known quirks
  • Compiles to Win32 and Win64 architectures. Mac, Linux and Android compilation planned.
  • Fully based on COM technologies, like the classic versions of Visual Basic
  • Generates very small executables that do not require any runtime library or redistributable components
  • Multi-threading support, and the standard library is fully thread-safe
  • Unicode (UTF8) support throughout (IDE -> parser -> compiler -> standard library)
  • Supports class parameterized constructors (for non-exposed classes)
  • Generics are supported, as seen in VB.NET (but more flexible)
  • Overloading is supported, with overloading rules as per VB.NET
  • New datatypes: LongLong (on Win32 as well as Win64), LongPtr, Decimal
  • New operators: AndAlso, OrElse, <<, >>
  • New assignment operators: +=, -=, *=, \=, /=, ^=, &=, <<=, >>=
  • New statements: Continue For, Continue While, Continue Do, Exit While...
  • Return syntax is supported (as per VB.NET), using this disallows the old GoSub syntax
  • Per-procedure Handles/Implements event syntax as per VB.NET
  • DeclareWide support for using Strings in unicode DLL calls (turns off implicit ANSI conversions)
  • Entire compilation process is multi-threaded for great performance
  • Currently compiles to unoptimized native code, giving better performance than VBA excode (VB6 p-code)
  • Multiple components per source file allowed (within Class / Module blocks)
  • Brand new custom parser (written in C++), built for flexibility and amazing performance
  • Removal of many legacy limitations, such as the size of procedures, number of line continuations
  • Designed with LLVM in mind, so we can soon offer full native compilation for superior runtime performance

Built-in extension libraries

  • (COMING SOON) WebEx: high performance multi-threaded web-server, based on IOCP completion ports. Supports HTTPS with ACME support, and also provides a HTTP client and JSON parsing
  • (COMING SOON) vbWatchdog: a native implementation of vbWatchdog (ErrEx) for fantastic error handling possibilities

Visual Basic (VB) is a trademark of the Microsoft Corporation

Copyright © 2024 iTech Masters (VAT: GB202994606)