In principle, you can express every program idea within BASIC 2.0.Pedro Lambrini wrote:Is all this work on Exbasic simply an academic excercise (not to diminish your work!) or is there real benefits to using this instead of Basic 2.0? As I'm starting to write Basic programs after decades in the wilderness I'm just a little curious.
BASIC extensions shine, where that algorithm either would run too slow in BASIC, or would need comparatively a lot of statements. If that function could be expressed with a short name, maybe with some parameters, BASIC extensions add this to the pool of available commands.
The speed advantage is there, because the same algorithm now is executed in machine language within the extension. The space advantage is a two-folded sword - within the BASIC listing you now only see the new command, with arguments as necessary. Of course the ML translation within the extension now needs space as well, typically in the same order is if the command had been expressed as subroutine within the BASIC program.
Some BASIC extensions try to be all-rounders, remedying many (sometimes only perceived) deficiencies of BASIC 2.0 regarding program flow structures (adding IF ... THEN ... ELSE, REPEAT ... UNTIL, DEF PROC, CALL: like Waterloo BASIC), easing screen manipulation, and sound (ExBASIC has some commands there), programming help (RENUMBER, AUTO, function keys: Programmers' Aid), or bitmapped graphics (Super Expander).
Others gain their usefulness by being specialised on a single task, but within small and compact code, like MINIGRAFIK does for hires graphics.
Greetings,
Michael