Table of Contents for Programming Languages: a survey
BASIC
Cheatsheet of BASIC commands:
http://www.dartmouth.edu/basicfifty/commands.html
Statement types:
- LET: Introduces an assignment statement
- PRINT
- READ: Assigns values to variables from internal data
- DATA: Introduces internal data
- GOTO
- IF
- FOR
- NEXT: Terminates a FOR
- GOSUB: Does a GOTO to a subroutine
- RETURN: Returns from the end of a subroutine
- DEF: Introduces programmer-defined functions
- DIM: Allows dimensioning arrays
- REM: comments
- STOP: Same as reaching the END statement
- END: this is on the last line of the program
- INPUT: accept alphanumeric characters typed in by a user
Links:
Implementations and variants
- web-based BASIC interpreter: http://www.quitebasic.com/
- http://www.vintage-basic.net/ (written in Haskell)
- 1978 MS Basic for 6502: http://www.pagetable.com/?p=774
- TI-BASIC https://en.wikipedia.org/wiki/TI-BASIC
- used on many Texas Instruments graphing calculators (some high end newer calculators such as the TI-nspire is also programmable with Lua). TI-BASIC is very different on Z80 and 68k (more recent higher-end) TI calculator models. Control flow includes if-then-else, for, while, repeat, goto (with explicit labels, not line numbers). Some variants have a gosub-like functionality, others don't, though "it is possible to call programs from within each other and share variables between programs". Data types include integers, real numbers, complex numbers, strings, lists (1D), matrices, and equations or symbolic expressions (differs between Z80 and 68k). Introduction: http://tibasicdev.wikidot.com/starter-kit , http://tibasicdev.wikidot.com/sk:summary-basics , http://tibasicdev.wikidot.com/sk:summary-games
- Arduino BASIC
- MMBasic originally for Maximite. "requires a 32 bit microcontroller and uses about 94KB of program space (flash memory) and as little as 16KB RAM"
- QuickBasic? and QB64: https://www.qb64.org/ http://www.qb64.net https://hackaday.com/2018/02/22/quickbasic-lives-on-with-qb64/
- FreeBasic? https://www.freebasic.net/ (see also [1] )
- QBasic and GW-BASIC [2]
- Blitz Basic
- bootBASIC interpreter in 512 bytes
- https://en.wikipedia.org/wiki/Tiny_BASIC
- BBC Basic
- GWBASIC
- web-based BASIC interpreter: https://jamesl.me/atto/
- http://gambas.sourceforge.net/en/main.html
- https://www.xojo.com/
- engine basic
- ubasic
- baZic Basic interpreter for the Z-machine
- https://github.com/richpl/PyBasic
- qb.js: An implementation of QBASIC in Javascript. Also describes the implementation method a bit.
- https://woodrush.github.io/blog/posts/2022-01-12-sectorlisp-io.html (two implementations, one taking the BASIC program as a QUOTE in Lisp, and one implementing a BASIC REPL "with the instructions LET, IF, GOTO, PRINT, REM, and the infix operators +, -, %, and <=. Integers are expressed in unary as a list of atoms, such as (1 1 1)."
- EndBASIC?
Visual Basic variant

Opinions:
- "I loved VB6. Of all the languages and IDE's I've ever used, I've never been more efficient in any other one... VB.NET was a great stepping stone, but after switching to C# I never looked back." [3]
- "I used to think this too, but everything you can do in VB6 you can do in powershell, and do it better. Try/Catch, windows forms..." [4]
- "Quickly and easily design and make a GUI program with n real training? VB6 got me into programming as a kid. I mostly use python for stats stuff. I sorta understand how to run up a GUI using tkinter, but it seems like a huge pain... VS isn't intuitive - it's a firehouse of information and I feel like you need training to use it. That is a bummer." [5]
- "HyperCard? occupies the same spot for me that VB6 seems to occupy for you. Today for stuff I'd have used that for in the 90s, I just stand up a quick little web app and text or email a link...Unless I want to throw my cute GUI in an app store, it needs to be web-based now." [6]
- "I downloaded Xojo and kicked the tires. It was absolutely cool to see that an environment like this lives on. It really does feel like a successor to VB6." [7]
- " I loved VB. I don't think I've ever been as productive as I was in VB - I could literally knock together a complete desktop application in an afternoon." [8]
- " 100% this to a tee! In the mid to late aughts I knocked out soo many junky little desktop apps that scratched very specific business itches we had at work." [9]
- " Delphi is still around and just as fast to knock something together in. I switched from VB4 to delphi when that was released and never used VB again. " [10]
- " And if you can't afford Delphi, Lazarus is okay, not as well documented, but works well, and the price is right. ($0.00) " [11]
- " VB the _language_ obviously has its limitations and frustrations, but VB the _tool_ will be missed. It seems like every alternative mentioned here adds a lot of additional friction for writing simple, one-off utilities. I don't always want to dink around with the Visual Studio installer to make sure the right version of the MSVC or .NET libraries are installed, or fiddle with code to get a GUI layout to look nice, etc. Having the IDE, compiler and GUI designer in one big coherent monolith had its advantages. " [12]
- " Try Gambas. It is the spiritual successor of VB6. " [13]
- " I understand that nostalgia. You might enjoy playing with gambas: http://gambas.sourceforge.net/en/main.html Or maybe Xojo: https://www.xojo.com/ I think Xojo was known as "RealBASIC?" in the late 90s/early 00s and was really in the same spirit (but more cross platform) as VB6. HyperCard? occupies the same spot for me that VB6 seems to occupy for you. Today for stuff I'd have used that for in the 90s, I just stand up a quick little web app and text or email a link. That's in no small part because nearly all of my wife's computing is done on an iThing and not on a computer that she could readily download and run something on. Unless I want to throw my cute GUI in an app store, it needs to be web-based now. " [14]
Notes
BASIC is many people's first language: http://www.c2.com/cgi/wiki?FirstLanguageLearned
"One thing that made Basic easy to learn was that the primitive IDE (editor, interpreter environment, etc.) was built into the language so that on a different machine one did not need to learn a new editing language/interface. See TeleType? examples. I once walked into a consumer electronics store as a teen and found out that the demo computer ran Basic. Without even knowing the brand, I was able to edit in a goofy little program that said something like:, "You are stupid" over and over in a semi-random pattern" -- [15]
"BASIC included a relatively small instruction set, removed all unnecessary syntax, and was designed to support short turn around times between composition and execution of programs, which collectively made it more accessible to novices. " -- Using Commutative Assessments to Compare Conceptual Understanding in Blocks-based and Text-based Programs
Links