hi from usa
-
- Posts: 6
- Joined: Sun Dec 06, 2020 8:51 pm
hi from usa
Hello there,
Very interested in this project... I grew up on TRS 80 BASIC, Apple II LOGO, TI 99/4a BASIC, IBM PC BASICA, etc. There was something different about the design philosophy of those old machines. They were inviting you to come and play around with them down to the bare metal of the hardware itself. Totally different design philosophy than what happens today - except maybe in the Arduino/Raspberry Pi world.
Man its been a while since i wrote anything in BASIC....attached is Yet Another Mandlebrot Set program translated from Python to BASIC for Commander X16 emulator. Most of the lines ended up being REM comments. ... i tried to emulate functions in BASIC which was kind of funny. The user can pixelate easily by changing "SP' variable, for speed. and change the exploration point pretty easy too.
I guess i had a realization... BASIC was easy, for computers of that era... but.. maybe not as easy as some things nowdays. I grew up with BASIC (Donkey.bas, startrek.bas, all the BBS hits), but programming with it now, it feels like an interpreted assembly language, For example there is no "IF.. ELSE' control structure, functions can only have one argument... GOSUB cannot return a value... variable names have two letters only and it won't warn you on longer ones, GOTO is a pretty normal way to break a for loop, number lines are required...and to be honest I never really learned how to do things like arrays of data. wow. Just really different after using all these modern languages. Even QBASIC from the early 90s is very different than C64 Basic.
On the other hand, I do like the general lack of parenthesis, brackets, curly braces, back ticks, hash marks, dollar signs, exclamation points, massive dependency libraries, and so forth. There is still something nice about it's simplicity and small size and directness. And the fact the whole thing can be documented in a pretty small manual. It also neatly hides an impressive amount of mathematics floating point functions under a deceptively simple cover. As for the slowness... i had forgotten how it can be interesting to have something going so slow that you can actually see what it's doing. That can be kind of cool sometimes. Everything seems a bit more on the human scale. It kind of reminds me of the Mandelbrot set itself... something that comes from a very simple foundation, but if you explore it there is a whole world of interesting things.
I feel like maybe there is still some progress to be made on BASIC on an 8bit machine but I just don't know what it would look like exactly. Maybe something even easier than Basic while also maintaining the simplicity and immediacy of it, but also the low resource usage. I know some people like "Scratch".. not sure if thats ever been done with a tiny CPU though. Then there is MicroPython and Circuit Python. The PROG8 language looks very interesting but the compiler cannot be run inside the machine itself if i understand correctly.
anyways thanks.
m.bas
- desertfish
- Posts: 1097
- Joined: Tue Aug 25, 2020 8:27 pm
- Location: Netherlands
hi from usa
8 hours ago, don bright said:
The PROG8 language looks very interesting but the compiler cannot be run inside the machine itself if i understand correctly.
That is correct!
Prog8 indeed is designed to be a cross-compiler (it is way too large and too slow to fit on it). This means that you develop on a different system (= modern PC) and create an assembled program for the target machine there, which you then transfer to the target machine. (Having an emulator on the PC makes that last step very easy, but still not as convenient as edit-run-compile on the target system itself)
hi from usa
Welcome Don! You've hit some of my "hot buttons" as well.
Quote
...I do like the general lack of parenthesis, brackets, curly braces, back ticks, hash marks, dollar signs, exclamation points, massive dependency libraries, and so forth. There is still something nice about its simplicity and small size and directness.
As much as of a pain as it is, BASIC has simplicity going for it.
There's been some buzz over "Structured" BASIC, which is BASIC with:
labels,
if/then/else with statement blocks,
while (maybe) *
subroutines,
and without line numbers.
That sort of BASIC would bring in a lot of the power of much larger 3rd gen ALGOL-descended languages.
Put another way: people on the Facebook page have idly thought about porting Java, Python, C, Perl, Smalltalk, Ruby, Lua, flavor-of-the-month programming language Z down to the X16. Which is entirely doable, assuming of course that you strip out the bits that make those languages huge. Such as classes and structs, libraries, regular expressions, exotic syntaxes, and dynamic arrays and hashtables.
...and once you strip out the bits that make those languages large, you end up with...
Structured BASIC, more or less.
So let's own it, as Dr. Phil would say.
* With labels we'd be able to simulate while and do..while statements well enough.