Eniko Fox

@eniko@mastodon.gamedev.place

Been thinking about how to implement try/catch in my VM only to realize it's literally just spicy on error goto, like, remember that one from qbasic?

It's just a label to jump to whenever an error is detected, which is just the catch block. So all I gotta do is check for an error after operations that can cause an error and then jump to the handler address if one is set, otherwise unwind the call stack and try again

July 9, 2025 at 10:01:08 PM

Honestly qbasic was an amazing language in so many ways. Truly ahead of its time. And I'm not even joking here qbasic owns*

*except for all the parts that are bad like the syntax and how there are no unsigned integers and how integer overflow is always an error and...

Qbasic has no null and so eliminates the billion dollar mistake entirely and needed no manual memory management OR garbage collection

I cannot describe properly how fucking cool that is. Nobody's ever done anything like that since

I mean I guess rust kinda did this but you can't say nice things about rust or it'll go to their heads

gotos are a decent answer to quite a few problems, a lot of the issues people had with them was the abuse of the feature to create even bigger amounts of spaget. For example functions are essentially gotos, just with some implicit stack manipulation. There are plenty gotchas in my example but my point is goto isn't too different to following function/method calls

Replying to someone

I think you're still a teenager when I found out there was a difference between qbasic and quickbasic

isn't the difference that qbasic is interpreted while quickbasic is also compiled?

Yeah, but I remember some language changes too.

Replying to someone

Of all the languages I know, I think the only ones that I would less like to try to write complex software in again than QBasic, would be the database languages: T-SQL, PL/SQL, PL/pgSQL.

Elk Logo

Welcome to Elk!

Elk is a nimble Mastodon web client. You can login to your Mastodon account and use it to interact with the fediverse.

Expect some bugs and missing features here and there. Elk is Open Source and we're actively improving it as a community project. Join us and let's build it together!

If you'd like to report a bug, help us testing, give feedback, or contribute, reach out to us on GitHub and get involved.

To boost development, you can sponsor the Team through GitHub Sponsors. We hope you enjoy Elk!

Anthony Fu三咲智子 Kevin DengPatakTAKAHASHI ShuujiDaniel RoeJoaquín Sánchez

The Elk Team