nuBASIC 2.0
nuBASIC 2.0
nuBASIC is a programming language from the BASIC family, released under the MIT License.
My love for BASIC began when I was eight years old, programming for fun on my Commodore 64. That early curiosity grew into a lasting passion — and, in time, into a BASIC interpreter of my own.
In 2013 I presented nuBASIC as a non-trivial example in an advanced C++ course I was teaching. By a happy coincidence, that was almost exactly fifty years after John G. Kemeny and Thomas E. Kurtz introduced BASIC. More than a decade later, the project is still alive and still evolving.
Over the years, nuBASIC has grown from a small interpreter into a complete programming environment: structured programming, classes and inheritance, richer object-oriented support, modules, graphics, debugging tools, and a native Windows IDE. I still return to it from time to time — to fix bugs, modernize the codebase, and keep it running on today's operating systems.
Its latest milestone, nuBASIC 2.0 (June 2026), is the most significant release in the project's history — the version in which nuBASIC became an object-oriented language. Earlier releases offered structured programming and Struct records, but no classes; 2.0 introduces a full class model from the ground up, with single inheritance and virtual dispatch (MyBase for explicit base calls), Public/Protected/Private access control, constructors and RAII destructors, static methods, first-class New expressions, and true object reference semantics. Around this new core, the language also gained a main() entry point and namespaced modules — together making nuBASIC a small but genuinely modern BASIC.
The toolchain matured in step: native library calls let BASIC reach into C libraries, the debugger became more capable, and there's optional Visual Studio Code integration. The release even ships WinRayCast — an experimental Windows pseudo-3D engine for building Wolfenstein 3D-style first-person games directly from BASIC.
Explore the release: https://github.com/eantcal/nubasic/releases/tag/v2.0.0
Explore nuBASIC through its documentation and examples:
Wiki — full language reference, graphics API, IDE guide, interpreter internals, and build instructions
User Guide — complete guide in a single document
Examples — ready-to-run .bas programs covering games, graphics, fractals, animations, and more
Source Code — C++20, Windows/Linux/macOS IDE, open source under the MIT License
Legacy
Installers for Windows on Chocolatey
For Windows users, nuBASIC is readily available through the Chocolatey package manager.
To install nuBASIC, simply execute the following command in your command line or PowerShell:
C:\> choco install nubasic
If you're looking to upgrade your existing nuBASIC installation, use this command instead:
C:\> choco upgrade nubasic
For more detailed information about the nuBASIC package on Chocolatey, including version history and installation instructions, visit https://chocolatey.org/packages/nubasic
Free and open source, released under the MIT License
Easy to learn — approachable enough for a curious child, yet capable for real programs
Complete procedural language with the full set of structured-programming constructs
Modern BASIC additions: SELECT CASE, line continuation, C-style hexadecimal literals, and a main() entry point
Object-oriented programming (new in 2.0): classes, single inheritance, virtual methods with MyBase, Public/Protected/Private access, constructors and RAII destructors, static methods, New expressions, and true object reference semantics
Namespaced modules with Syntax Modern, plus legacy syntax for classic BASIC-style programs
Native library calls on Windows x64, Linux x86_64, and macOS via Declare Function … Lib …
Built-in 2D graphics, plus the experimental WinRayCast pseudo-3D engine for Wolfenstein 3D-style FPS games on Windows
Integrated debugger: Continue, Step Into, Step Over, Step Out, Pause/Break, and Run to Cursor
Optional Visual Studio Code extension with syntax highlighting, Run/Stop commands, and debugger integration
Native IDE for Windows and Linux
Cross-platform: 32- and 64-bit Windows, Linux, and macOS
Built-in help, with documentation in English and Italian
Bundled examples: Tetris, Mine Hunter, Breakout, Calculator, Tic-Tac-Toe, native API calls, and the WinRayCast FPS demo
Tiny build for embedded systems
See also https://www.eantcal.eu/home/nubasic.