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