Compatibility mode for old syntaxes


Timo 2019-09-10 07:13

As you may know I'm changing some commands for the next version of LowRes NX. I found a way to keep compatibility with old programs by keeping the old commands working.

But I want to make clear which commands are obsolete. New users shouldn't learn the old syntaxes. At the same time I don't want to annoy existing users and force them to update all their old programs.

My idea is a compatibility mode: If enabled, the interpreter will allow old commands. If disabled, it will throw errors ("Obsolete Syntax").

The web player would always work in compatibility mode. The iOS app would use the mode for programs started from the web ("Open in App" link).

But what about local programs in the app (both iOS and desktop)? By default it should have the compatibility mode disabled. What should happen with old programs, if you don't want to update them (yet)? I have two ideas:

1. An obsolete command will throw an error. There would be a new command to enable the compatibility mode you could put into the first line. Then it runs normally.
-> Makes it easy to mute (and forget) the warnings.

2. Whenever you start a program with obsolete commands there will be a requester: "This program uses obsolete syntax. Run it anyway?".
-> Easier to explain what's the matter, but more annoying

Opinions? Any other ideas?

was8bit 2019-09-10 14:40 (Edited)

I’m unsure if all of that is necessary....

I might suggest simply removing the portion of the help text that explains the obsolete commands, then add a section at the very bottom of the help text a list of the obsolete commands as a refererence to anyone who happens upon them in older programs and might be curious about them .... add to the OBSOLETE COMMANDS section a recommendation to use the newer versions explained above ...

This would allow silent support for the older commands without beinging attention to them... bringing attention to them might cause added confusion and would actually be annoying ... when I click RUN I expect the program to run... I shouldn’t get a warning unless my computer is in some sort of danger should I run it (like I get when I try to visit an unsafe website)

In original Lowres, I had found a few instances where I preferred the obsolete commands as they functioned differently... however, for this case your newer format does NOTHING different (functionally speaking) and in fact makes it MUCH easier to use... so in this case I would see NO reason why anyone would prefer to use the older format at all....

was8bit 2019-09-10 14:43 (Edited)

Just to clarify, the OBSOLETE COMMANDS section shouldn’t include explanations on how they work... kinda like your list of RESERVED COMMANDS in orginal lowres... simply a list so people are aware what they are and not be worried about them ...

moechofe 2019-09-10 20:51

3. when an old syntaxe is detected, add the COMPATIBILITY ON at the first line of the code, then start.

Timo 2019-09-11 14:59

moechofe, that's what I mean with number 1

was8bit 2019-09-11 17:15

... perhaps moechofe was meaning that LOWRESNX would manually and automatically (upon detection of the obsolete commands) add the compatability command to the game file.... users wouldn’t have to know about or remember to add it themselves....

Timo 2019-09-11 18:26

Ah, maybe. But I guess it would be strange. Imagine you try to program something new, you use an old command, run, and suddenly there is a new line added.
I'm still thinking about it, but am too lazy to write more now :O

was8bit 2019-09-11 19:04

You're good at sorting things out :)

Of course if you could auto add the command, you could also auto add a REM statement about it ...

was8bit 2019-09-11 19:07 (Edited)

only us current programmers will be immediately affected... and most of us know what's going on... so you could ALMOST just publish with the new commands without any fanfare, and only a few people may be immediately affected... after that everyone should be onboard with the new commands...

Log in to reply.