EndBASIC 0.10: Core language, evolved█

After three months of early-morning hacking, I’m pleased to announce that EndBASIC 0.10 is now available—right on time for some holiday-time experimentation!

This release marks a huge milestone because it makes the language usable for real-world development.

You see, when I started this project over two years ago, I wrote a rudimentary interpreter for something that resembled BASIC and then launched EndBASIC 0.1. Since then, I have been piling onto those insufficient foundations by adding flashy features such as a web interface, a cloud file sharing service, and a hybrid text/graphics console. These features have been well-received in every demo I’ve given but… the feedback that always came back was the same: “Give me some sort of functions or subroutines!”, or “This is no BASIC without GOTO!”.

And these criticisms were right. Trying to write any sort of non-trivial program in EndBASIC was a daunting and frustrating experience. I had tried to simplify coding to the foundations of structured programming, but without a way to perform unstructured jumps (aka go-tos) or define custom functions… it was impossible to factor out common code, which is a need for the vast majority of programs that exceed a screenful of text. There were also usability deficits such as the lack of line numbers in error messages, which made it incredibly difficult to debug any failing program.

The situation had to change, and change it has in EndBASIC 0.10.

Main changes

EndBASIC 0.10 is a humongous release that comes with improvements across the board. Most changes have focused on the core language, but they also spread to the standard library and the user interface. To summarize, these are the main changes in this release:

Quite a few changes, huh? :)

How can I enjoy this?

Here are the usual links to get you started:

Please let me know if you have any questions, feedback, or encounter any issues. There are tons more things I wanted to continue tweaking and fixing before publishing 0.10, but I had to force myself to get it out of the door already. There will always be a next release to fix stuff.

With that, I’ll leave you with a demo to display some holiday greetings, all written in EndBASIC and leveraging the new features in this release 😊

… and if you have made it this far, you can also: