Compatibility
Open your existing VBP projects directly in twinBASIC and continue working with the language and libraries you already know. The goal has always been simple: keep classic BASIC development feeling familiar while quietly removing many of the limitations that have existed for years.
twinBASIC was built specifically with compatibility in mind, allowing many existing projects to load, compile, and run with little to no modification required. VBA-style syntax is naturally supported too, meaning years of existing knowledge and code remain valuable.
One example of how far compatibility has already come is PhotoDemon - a very large and complex open-source VB6 application which can now be opened, compiled, and run inside twinBASIC without any code changes required.
Of course, twinBASIC is still currently in beta, and there is still work ahead. But real-world projects like PhotoDemon demonstrate just how capable the compatibility layer has already become.
This isn't just about preserving old projects. It's about giving them room to grow - with modern language features, better tooling, native 64-bit support, and active ongoing development.
Native 32-bit and 64-bit Compilation
Build true native compiled applications for both 32-bit and 64-bit Windows from the same codebase.
Moving to 64-bit no longer means maintaining separate projects or rewriting large sections of code. twinBASIC is designed to make that transition far less painful while still maintaining compatibility with older environments where needed.
Native Windows-on-ARM support is also planned, allowing applications to run as fully native ARM binaries rather than through emulation.
Further ahead, the long-term vision includes cross-platform support for macOS, Linux, and Android - bringing classic BASIC development to places it's never really been before.
Modern IDE & Debugger
The twinBASIC IDE keeps the fast, direct workflow that classic BASIC developers are used to, while adding many of the features expected from a modern development environment.
You'll find live compiler diagnostics, code folding, semantic syntax highlighting, themes, tabbed editing, and improved navigation throughout the IDE. Larger projects become far easier to work with without losing the simplicity that made classic BASIC development so productive in the first place.
The integrated debugger has also been heavily modernised while keeping the familiar feel of the original BASIC IDEs. Alongside the standard debugging tools developers expect, twinBASIC adds a number of workflow improvements, including:
- Full call stack reporting directly within the debugger panels
- Memory hex inspection panels
- Integrated debug console with persistent history
- Full runtime trace logging
The overall aim is to keep development lightweight and responsive, while giving developers far greater visibility and control when they need it.
Additional Features
Beyond compatibility and native compilation, twinBASIC introduces a huge number of quality-of-life improvements, language enhancements, and modern capabilities that simply weren't available in earlier BASIC environments.
Many of these features are entirely optional, allowing existing projects to remain familiar while giving developers the freedom to gradually adopt newer functionality over time.
Some of the larger enhancements include:
- New built-in controls, like QRCode, WebView2 and CefBrowser (Chromium Embedded Framework)
- Full Unicode support throughout the IDE, language, and runtime
- Modern language features including inheritance, generics, method overloading, type inference, and improved pointer support
- New project types including Standard DLLs, Console applications, Windows Services, and even Kernel drivers
- Enhanced GUI capabilities with transparency, anchoring, docking, and new built-in controls
- A centralized package server with integrated package publishing
- Fusion technology allowing 64-bit applications to host 32-bit ActiveX controls (and vice versa)
- Direct assembly insertion with Emit()
- Static linking of OBJ and LIB files
- Modern compiler diagnostics and configurable warnings
- Support for defining Interfaces and CoClasses directly in code
twinBASIC also modernises many areas that historically required awkward workarounds in classic BASIC development. Attributes are now visible directly within the editor, COM declarations are far more flexible, and APIs that previously required fragile declarations can often be expressed far more naturally.
The overall goal isn't to turn BASIC into a completely different language. It's to preserve the speed, simplicity, and productivity that made classic BASIC development so popular, while removing many of the limitations developers have been working around for decades.