BASIC In Your Browser

If you are a certain age or just like retrocomputers, you probably have a soft spot for good old-fashioned BASIC. If you miss those days but don’t want to install a modern interpreter, you don’t have to. Just load a web page containing the “BASIC Anywhere Machine” from [CJ Veniot]. Worried about it being “in the cloud?” It isn’t? It runs in your browser, and if you are a TiddlyWiki fan, it will even live inside your Wiki, which you can host as you please.

The project has lots of features, including some integration back into TiddlyWiki, which we haven’t tried. But you can use graphics commands, work with the mouse, and do other fun things.

The only peculiarity is that the program pops up in a window that resembles an old Commodore 64 screen. Depending on why you want to use this, that could be an advantage or a disadvantage. You can see a nice plot running from a TiddlyWiki topic in the title image. Here’s the Tiddler:

The code behind the wave

The BASIC Anywhere Machine is highly modified from Google’s wwwBASIC, which is fun, too. Since we’ve covered TiddlyWiki before, we are a little ashamed we didn’t think to marry those two codebases ourselves!

30 thoughts on “BASIC In Your Browser

  1. “”” If you are a certain age or just like retrocomputers, you probably have a soft spot for good old-fashioned BASIC. “””

    Luckily this is *not* the early variant of crippled 8 bitters’ BASIC I was thrown at after having learned the even older original BASIC before.

    That spartan 8 bitters’ BASIC better should have gotten a different name (BADSICK?) because its capabilities not even remotely resembled those of the original BASIC.

    BASIC’s bad reputation comes from BADSICK. BASIC has deserved better than getting its name ruined by those BADSICK implementations.

    1. I feel similar. I started with BASIC-5510, S-BASIC etc. rather than “BASIC V2”.
      And then there was QB 4.5, with its fine IDE. No more line numbers, support for 640×480 VGA graphics and external libraries! Yay! 🤗

      Btw, Turbo Pascal was cool, too!
      That’s what the reasonable dudes used, I suppose.
      A healthy compromise between BASIC programming style and, uh, C.

    2. I’m curious what you consider “the original BASIC”. After using SDS (Scientific Data Systems, later Xerox Data Systems) BASIC, I found Dartmouth BASIC (the actual original BASIC) to be pretty lame. But I guess that’s the biggest problem with BASIC – there’s no ISO standard for it, and everybody who uses “BASIC” considers the first version they used as the benchmark.

      1. “there’s no ISO standard for it, and everybody who uses “BASIC” considers the first version they used as the benchmark.”

        It feels like a shameful insult though to use Commodore Basic as a reference.
        Not all of us Basic programmers were Gonzos writing spaghetti code on a bread bin.

        Basic, in the profesional field, was very good and capable.
        The main idea of Basic was problem-solving, also. In comparison to ALGOL-60, it was very straightforward to use.

        A real Basic was implemented in the Wang 2200 from 1972, for example.
        Basic V2, by comparison, had already been being hated (rightfully!) back when the C64 was new.

        1. “It feels like a shameful insult though to use Commodore Basic as a reference.”

          Especially as it was essentially Microsoft Basic. :)

          The only gripe I can think of is that BASIC 2.0 on the C64 was just crippled too much. BASIC 3.5 (C16/Plus4) was much better. And BASIC 7.0 (C128) was great.

          …for those BASICs that use line-numbers, of course…

          Basically BASIC with line-numbers all suck, every single one. It’s impossible to write any seriously large applications with it. Even if you keep to very strict rules, you still end up with unmaintainable code.

          The language is just very bad at ‘showing intent’. To be honest, even the BASICs that don’t need line numbers are bad at showing intent. Cannot use them to program anything C.L.E.A.N.

          1. Fortran with linenumbers and calculated goto forever!

            FYI, for those who never ran into this particular ‘human-pig-love’ situation.
            Fortran lets you Goto Intvar.
            Where Intvar contains a linenumber!

            I’ve seen things…terrible things.
            NextIterStart = NextIterStart + ReDoHydro

            IIRC If you added that twice. Fuel pipeline logic turned on. There were a bunch of those adders (ReDoHydro, ReDoShadowPrice, ReDoPipes, ReDoParentArea etc). Generally they where = Blocksize * 2 ^ historic order of features being hacked into code.

            Maintaining flags and a top-level switch was too much effort for the original coders. Granting it wasn’t that simple…e.g. ‘parent area’.

            Thank dog it wasn’t my problem. I’d have killed it with fire.

      2. I forgot. There was MBASIC aka BASIC-80 from the CP/M days (late 70s onwards). Why isn’t that being used as reference when we talk about old-school Basic ?
        It’s by Microsoft, too! But it exists as a compiler, too, to create fully functional programs. 🙂

        1. There was MBASIC aka BASIC-80 from the CP/M days (late 70s onwards). Why isn’t that being used as reference when we talk about old-school Basic ?

          no graphics, no sound, maybe? well, there’s asterisks and good ol’ CHR$(7), but other than that…

          1. That’s not completely fair, giving that CP/M didn’t have APIs for that, at the time (GSX appeared later). 😉

            But on the bright side, MBASIC was portable (all 8080/Z80/+ computers running CP/M compatible systems) and worked on any glass terminal or CRT devices, including popular terminals with 80 chars. Hm. Maybe escape sequences could be used to provide a bit of variety here. I’d have to check. 🤷‍♂️

            Sorry about “bashing” the C64 here at bit, it just made angry a bit. To my defense, I was a C128D user for a while and liked that PC. Basic v7 was descent.

            Too bad there was no backport to C64. SIMONS Basic on C64 was okay, though. So not all C64 users grew up with an abysmal Basic, I suppose.

            What I just don’t like is that C64 and its Basic v2 are used by media as a model for the BASIC experience all the time. Or a similarly low-end platform. It’s not fair.

            There are fine BASIC versions of the 80s. Apple Basic, Amiga Basic, GFA Basic, BBC Basic, QuickBasic/Turbo Basic, Acorn’s Basic as an OS for Arthur/Archimedes, MSX BASIC, Atari 400/800 Basic etc.

            By contrast, the stereotypical “home computer” Basic or “8-Bit” Basic is very crude and barely usable. It has the feature set of an Atari 2600 Basic kit, the VC20/C64 or a VTech learning computer. It does not do ambitious Basic users any justice.

            Those who were using BASIC by heart didn’t stuck to such a limited homecomputer basic for long, but got a BASIC compiler, at least. Or a cartridge with a fully functional BASIC interpreter. Or used DATA fields and machine language, as a last resort.

      3. “… no ISO standard …” ?
        ISO/IEC 6373:1984 Data Processing—Programming Languages—Minimal Basic
        ISO/IEC 10279:1991 Information Technology – Programming Languages – Full Basic

    3. All BASIC is BADSICK IMHO. The B even stands for “Beginners”, so it has to be that way. “[B]eginners [A]ll-purpose [S]ymbolic [I]nstruction [C]ode”. Microsoft even has the “[V]isual [B]eginners [A…” version. In spite of that, many of us “of a certain age” did learn a lot of programming using BASIC on 8-bit machines in the 80s listening to 80s music on crystal sets, with teenage angst etc. etc.

  2. Having grown up with QBasic, I wish more than anything I had grown up with C/C++ instead. Iterative, line by line coding without any hint of OOP is how I think about writing code and it helps in Python but is a hindrance for most languages (for my own uses of course).

    Of course I will always be fond of Basic, in a nostalgic way since it is so archaic and inefficient. Heck, to even write a Basic interpreter requires C/C++.

    1. Turbo Pascal 6 and up was nice at the time, too.
      It’s what the clever people used on DOS for a long time.
      That’s how I remember it, at least, when I was into shovelware. C++ was very niche by comparison.

  3. No soft spot here! Really! Once I got a hold of Turbo Pascal and then C (and a formal education in CS), Basic was (and still is) just a bump in the road to much much better languages. So don’t miss it a bit. Python is now the new and better interpreted language for the future for a learning and production language.

    1. “Bump in the road” – exactly. Problem is the damage caused by going over that bump at high speed. You never really recover. So I agree with SETH (above) – “Iterative, line by line coding without any hint of OOP is how I think about writing code” – still have to fight every day to think in OOP when my brain was forever damaged by learning BASIC.

      Edsger Dijkstra famously said “It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.” https://www.cs.virginia.edu/~evans/cs655-S00/readings/ewd498.html

      1. Well, at least I am proof that Edsger was a great guy but didn’t know everything either. :)

        And I guess that Bjarne Stroustrup would say: “It is practically impossible to teach good programming to students that have had prior exposure to C: as potential programmers they are mentally mutilated beyond hope of regeneration”.

        And I’m sure the linked list continues with other people saying the same thing of their predecessors.

        :)

    2. I did start with BASIC (on a Nascom, then C64). Then learned actual structured programming in University (Pascal, C, Modula-2), and even had the first introduction to OOP. And I thought I’d never look back again.

      But then in my first job, I was back to BASIC again. :P The language was called BAAN-C, but had nothing to do with C. I think it was derived from a language called STAR-BASIC (not North Star Basic ;)).

      To be honest, it was actually quite a decent language. The most beautiful thing was that database access was completely integrated in the language.

  4. I think that BASIC was intuitive for people new to programming because it builds on concepts people are already familiar with – following numbered steps, flowcharts, the syntax of arithmetic expressions. It’s a really good language for making a small memory system usable for people who haven’t encountered computers before, and that’s the niche it occupied in the late 70s and early 80s. I’m a great fan of Tiny BASIC and have been developing my own <1K Tiny BASIC as a 50th birthday present for the Intel 8080.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.