| 1) It would be good for Arc's development if it always freely broke backward compatibility. 2) It would be nice if I could use Arc for my daily work. 3) But it would be nice to have a reasonable way to keep all my code running on the latest version of Arc. So I'm thinking it would be neat if, every time backward compatibility was broken somewhere, a bit of code to translate from the old version to the new version were written. And then the Arc version were mentioned at the beginning of any bit of Arc code. And then the interpreter, upon parsing such version information, would load the translator from the previous version to the current version. And if the code was written in a version before that, it would load the next translator in the line. So say you have code written for Arc 3.1, and you have Arc 3.6 installed, and all releases have been incremented by 0.1. Interpreter sees that the code is older than itself, loads latest translator, written for it.
3.5 -> 3.6, written in 3.6. Code is still older.
3.4 -> 3.5, written in 3.5, which is fine because I just loaded that translator.
3.3 -> 3.4
3.2 -> 3.3
3.1 -> 3.2, Matches! So the code then gets translated from 3.1 to 3.2.
Then you start over again and it gets translated from 3.2 to 3.3. Kind of.. not straightforward, but I think possibly a useful way to maintain the advantages of breaking backward compatibility freely, and maintaining backward compatibility. Obviously it would be nice if this translating mess could output translated code. I'm not claiming this would be easy. But I think it would be nice. In a way that could significantly increase adoption. Which could significantly increase development. This text box is too small, vertically. |