My father, who hung up his coding hat in the '80s, recently entered the golden years of retirement.<p>One day, he mused about the simplicity and educational value of BASIC and wondered if there was a way to share its charm using today's technology.<p>Specifically, he was looking for an Android application that could run BASIC so he could "teach programming while drinking coffee with [his] friends".<p>Thus, BabaBASIC was born—a hat tip to 'Babá', the Greek term for "dad", and a reminder of who sparked this journey.<p>The first iteration of this was made over a 10-hour all-nighter using existing open-source libraries.<p>I ended up forking the BASIC-like implementation to make it more byte-for-byte compatible with QBasic 4.5, which is what my father used back in the 90s to teach me programming.<p>This is the first thing I have ever made of which he approves.
I love this so much. I got my start on QBasic and made hundreds of games between 12 and 19 years old. I eventually left it behind, but always had a fond spot in my heart for it.<p>Last year, when I was going to rebuild my personal website, someone on Twitter challenged me: “Build it in QBasic, you coward”. I was like “haha…wait, can I?”<p>And I did! It runs on QB64 on a DigitalOcean droplet.<p>Here’s the source:<p><a href="https://github.com/jamonholmgren/jamon.dev">https://github.com/jamonholmgren/jamon.dev</a><p>Check app.bas for the QBasic code.<p>I may eventually release a CLI and library that lets people spin up a QB64 website in little time.
This is nice, I'd like to know the changes you made.<p>I started a discussion on GitHub, I think the killer feature of QBasic and even more so QuickBasic was the help and reference.<p>Even the ASCII table was fun to look at and go grab characters, you could imagine something analogous for Unicode.<p>Similarly for all the stuff in there working out modern equivilents.<p>The annoying stuff was how much hassle it was to do extra things like handle the mouse pointer via assembly, it would be good if this has extensions for touch etc all documented.
Awesome! QBasic was my first programming language, long obsolete by the time I discovered it but I had no idea. Had a lot of fun. Fond memories of browsing Pete's QB site.<p>My favorite programs from those days are both games. Mysterious Song[0], a JRPG, and Monospace[1], a horizontally scrolling shmup.<p>[0] <a href="http://www.petesqbsite.com/sections/zines/qbgamer/issue1/re_msong.html" rel="nofollow noreferrer">http://www.petesqbsite.com/sections/zines/qbgamer/issue1/re_...</a><p>[1] <a href="http://www.petesqbsite.com/reviews/action/mono.html" rel="nofollow noreferrer">http://www.petesqbsite.com/reviews/action/mono.html</a>
Mid 90s qbasic was how I learned to program!<p>My friend and I extended the nibbles / snake game ... I wonder if I can get it to run on your qbasic implementation:<p><a href="https://github.com/ronyeh/nibbles">https://github.com/ronyeh/nibbles</a>
> I couldn't find anything that I felt comfortable recommending to him, so I pulled an all-nighter and made this.<p>All-nighters for an employer are one thing, but I have fond memories of exploration and discovery in computing while burning the midnight oil. There is something about programming that just excites the mind in a way that causes time to fly.<p>I hope your dad enjoys his new BASIC app! Really cool of you.
> My father, who hung up his coding hat in the '80s, recently entered the golden years of retirement.<p>Totally off topic but what I would give for (a) my father being the kind of father I want to maintain contact with and (b) to share a common interest with me, someone that I could talk to about tech. You're a lucky person!
I learned with but hated QB, GW-B and MSX-B. Why? Because I could not make an "fast" executable (.exe) and the compilers those days (on those platforms) we're al costly and impossible for me to come by as a kid.<p>Man you should have seen my eyes light up when someone should me a full opensource, Linux, computer boot up! I CAN STUDY/MODIFY EVERYTHING! Muahuahaha.<p>It was a good learning tool, but not as good as LOGO (with the Turtle), of which I later made a clone (KTurtle, part of nearly all Linux distros).<p><a href="https://apps.kde.org/nl/kturtle/" rel="nofollow noreferrer">https://apps.kde.org/nl/kturtle/</a>
So cool! When I was at GitLab I modified a CI runner to execute the script section of the CI YAML in VICE, a Commodore BASIC emulator. No particular reason and it wasn't useful for anything, but it was pretty fun. <a href="https://gitlab.com/jyavorska/c64exec" rel="nofollow noreferrer">https://gitlab.com/jyavorska/c64exec</a>
Worth noting that you can also run the original qbasic in dosbox.<p>That's handy if you want to run old qbasic code, since typically that code expects to be able to poke hardware registers to do anything beyond what the built in bits of basic can do (for example, adding mouse support or playing sounds beyond beeps).
This is fantastic. What happens if you peek/poke a random memory address though? ;)<p>I grew up on QB 4.5 and was one of the few kids on the block to have access to Microsoft PDS 7.1 which added some crazy (for BASIC) features like inlining assembly.<p>Also, recently watched Stranger Things and was super pleased to see Sean Aston uses BASIC to brute force an access code. Fingers crossed for a basic revival.<p><a href="https://specularrealms.com/2021/04/21/strangest-things" rel="nofollow noreferrer">https://specularrealms.com/2021/04/21/strangest-things</a>
I made a super cheesy version of BASIC you can run in a browser. It just does a search and replace from BASIC to JavaScript.<p><a href="https://gabrielsroka.github.io/webpages/BASIC.html" rel="nofollow noreferrer">https://gabrielsroka.github.io/webpages/BASIC.html</a><p>Src<p><a href="https://github.com/gabrielsroka/gabrielsroka.github.io/blob/master/webpages/BASIC.html">https://github.com/gabrielsroka/gabrielsroka.github.io/blob/...</a>
You could also use B4A (<a href="https://www.b4x.com/b4a.html" rel="nofollow noreferrer">https://www.b4x.com/b4a.html</a>), which compiles BASIC into Java bytecode and has an interface builder -- as well as versions available for iOS, Arduino, and desktop Java. Only the iOS one requires a payment, the others are 100% free.<p>The IDE runs on Windows. The whole thing was developed by one guy who is very active answering questions and providing lots of sample code.
I learned programming on QBASIC in the 90's, aged 11 or so. My brother and I had dabbled with GW-BASIC, which a more knowledgeable friend used to draw cool-looking rainbows and whatnot on the screen. That same friend taught me the "IF... THEN..." construct and a new world opened up to me. QBASIC's built-in help manual was a key resource in getting up-to-speed.
For everyone who wanted a QuickBASIC 4.5-like documentation feature, there's an early version now on the testing channel: <a href="https://play.google.com/apps/testing/io.atha.quickbasic">https://play.google.com/apps/testing/io.atha.quickbasic</a>
Cool stuff! Growing up in the 80s, my first programming language was BASIC on a Commodore 64.<p>This came in handy when I did a commercial apprenticeship in the early 90s, as there was QBasic on the PCs we had and it was a great tool to kill time when there was nothing interesting to do. So I’ll always have some fond memories of QBasic.
What a wonderful and heartwarming story! Until that last sentence… I’m so sorry. At the risk of sounding too personal, I imagine many of us here can relate to that with someone in our family.<p>Coming from someone of a similar age who also started with QBASIC, I hope your dad realizes soon what a talented kid he has.
My first game was a version of Space Zap by Midway on a Timex Sinclair 1000 in Sinclair Basic. Recreated in on a Commodore 64 and then in QBasic on an early IBM at work. I still use the Model M keyboard from the IBM to this day.
Looks interesting :)<p>My first introduction to programming was BASIC on some 8-bit home computer. Sometimes I wonder what had happened if I had started with Pascal or Scheme instead.<p>I think a lot of developers own their carrier to BASIC being so accessible.
I'm a huge fan. I used to volunteer on allexperts.com to help people with QBasic stuff, before the dawn of stackoverflow and other probably more searchable places.<p>This is wonderful, and i'll have to check it out!
Very cool! Check out this software and games archive: <a href="http://qbasic.de/" rel="nofollow noreferrer">http://qbasic.de/</a>
This isn't as much about the project itself, but I just wanted to say that it sounds like you have a very special relationship with your dad. Cherish it!
I learned on BASIC for the Tandy 102<p>Then moved to QuickBASIC for the Mac<p>Then TurboPascal<p>Then C (via C++, taught by a FORTRAN programmer)<p>BASIC will <i>always</i> hold a sweet spot in my heart :)
Impressive project! I remember a friend showed how to render some "demo" style graphics (not a fractal, I believe it was some kind of line-based art) on our pentium. First time I thought the PCs might be the bane of the Amiga (we had an Amiga 2000).<p>On the subject of Android - is it just me, or are there no good, FOSS, off-line capable repls for Android? Ideally I'd want ruby - but anything in the python/js/lisp vein that feels like a repl and is FOSS would be of interest?
> This is the first thing I have ever made of which he approves.<p>So sad. People from this kind of upbringings are usually very good at "intrinsic motivation".