it's not hard to work out how to drive the editor here - it's not brilliant, but it is possible to enter code blocks and so on in it. Lighten up a bit!
In my browser of choice the script is broken so the only way to enter a response is with the HTML editor; the idiotic bloated wysiwyg garbage won't let me type a blasted thing; saw the other thread about phpBB coming soon; sad when that insecure accessibility train wreck would be a step up.
It's stuck in a uselessly narrow fixed width, with inaccessible font sizes making me dive for the zoom and still not getting enough width to have useful text; with the hoops I'm having to jump through just to make a normal post IMHO it's a miracle there are people posting here. This is probably my last attempt at posting here until it does get switched over.
Why even bother? you're whinging about phpBB, whinging about your browser. Is there anything you don't whinge about?
I'm not happy with this system either, but I make-do because it's all we have right now - unless you, me or someone else wants to come up with something better. Do you have the time or inclanation to so? I don't... And this is the world of web-based blogs, micto blogs, logs and documentation. It's not going away, so if your browser is struggling, then move to something else. Firefox is still OK for me.
However, what you're after is basically BASIC - with half the functionality of a modern BASIC left out.
Because by the time you have a 'modern' BASIC I wouldn't give it to a ten year old.
You don't need to give all if it to them. Just teach them a little at a time. If they're keen they'll come back and ask for more.
Re-reading your post (which really reads like a rant now). No function return values? Even Dartmouth BASIC had DEF FN in 1964.
Which didn't make real user functions, it just made aliases to expressions. There's a difference... and why you rarely if ever saw a real program that used def fn.
They're real enough. Useful too. And what does it matter what they are? Olde BASCI had one-line functions, modern ones have multi-like functions. Just like Pascal, C, etc. Most new ones support recursion too.
Your expression engine sounds er, interesting... Try looking up Dijkstras Shunting Yard algorithm sometime. No looping, one pass through the input line and build the output RPN stack. Fast and efficient and allows you to specify any precedence order you like....
RPN always creeped me out -- I was looking at that last week though; Manually managing a stack and making TWO passes; one to turn it into RPN then one to perform the RPN, actually seems more complex than expression/factor/value... it also means it's NOT one pass and it IS looping -- TWICE.
OK, t's 2 processes but it doesn't have to be. You can evaluate right off the back of the shunting yard though - it spits out stuff right in RPN format, so you can evaluate it immediately rather than storing it on a stack.
You're the second person to mention it though -- I dismissed it originally, but I'll take the time to make a proper version of it to see if it's actually faster, or is just a waste of time; it looks to me like it manually manages the stack in the manner I'm using function calls to... and would use as many if not more calls. The only advantage I can see is doing the RPN conversion on the tokenizer side might speed up when it comes time to execute.
A proper version? There is only one version - the one Dijkstra wrote the year before I was born. Wikipedia has an excellent explanation of it's rules too. Utterly trivial to add in rule 1.5 to handle array indices too.
So you want no line numbers, but you want labels - well you need labels becuase you don't want line numbers but you want subroutines... So isn't a subroutine call to a line with a label just another way of calling a named subroutine/procedure?
Yes, and doing so is closer to hardware (jump/call) than using normal procedures would.
Young people won't appreciate hardware jumps - not initally anyway. Remember this is the "smartphone" generation we're dealing with.
I do wonder if you're inventing a solution to a problem that's not there - if you want "sprite" based stuff, look at scratch.
That's one of the ones I looked at -- and again it's NOT something I'd consider using for education given it's train wreck of documentation, disastrously broken and useless website, and bizarre/oddball method of building programs.
Train wreck - there's that phrase again. If you're not happy with it, then do something about it - OK, you are, you're writing a new language, but maybe start on the documentation.
If you want BASIC, Brandy is there and working (a Linux variant of BBC Basic)
Which is bland, boring and has NOTHING to make it interesting for kids.
It was fantastic 30 years ago though. It's still there and there is a commercaial version still selling for Windows, so someone somewhere thinks its OK.
my own BASIC, RTB works just fine too (uses SDL, but is written in C, using your beloved GCC
You have a link to that? Never heard of it and my google-fu failed me.
I'm not surprised googles not got anything yet - mostly becuse I've not put much online about it yet. There's some stuff if you click the link in my signature at the bottom, but also look at: http://unicorn.drogon.net/rtb/
there's some pre-release stuff there including Linux x86 and ARM executables...
And limiting yourself to 320x200 when you can be adaptable. My BASIC will recognise the underlying screen resolutions and automatically pick one suitable, or you can override it. It's not hard (standard SDL) you want more sprites and control, just import the SDL libraries into Python/PyGame.
Usually 'adaptable' doesn't adapt very well to low resolutions -- and would confuse the target audience as to "why does this look different across machines?"
So are you going to scale 320x200 to 1920x1080? That's going to look somewhat... Chunky...
And if you want "ROM Basic" on the RPi.. Then "watch this space" as it were. I have a test system where by I can boot a Linux PC directly into my own BASIC (no X needed) and it really won't be hard to produce an SD image that will do just this on the RPi, however I'm in two minds about it. I'm thinking it might actually be better to login on the command-line (no X) then run RTB. Not sure yet.
Given my target audience having them even have to think about logging in or the command line may be self defeating... but we likely have two different audiences in mind. My primary target is pre-teens; the simplifications I'm making are based on what I remember of my experiences from 30 years ago, discussions with several people just starting in programming, and watching my neighbors child struggle in both math and physics... and trying to learn either Ruby or Python; I'm seeing first hand a child struggle with concepts that to be honest, aren't needed for them to write a program.
Well, that and nobody seems to know how to write easy to follow documentation anymore... or even provide documentation. Some of the projects you mentioned, Scratch in particular, were the inspiration for this in the same way Stryper was an inspiration for Metallica. It made them swear never to wear spandex on stage.
Scratch, Python, etc. are all open-source. Im' sure that if you offered to help them (re) write their documenation they might welcome you with open arms..