The only way I could see AGS being better is to have it more organized and easier to work with. Any fully OOP language would definitely improve this along with more organized scripts (separate scripts for classes, interface, etc).
One thing I still want to see is the ability to have a script for every GUI, Character, Object, Inventory Item, etc. With a master script for each type. When I say ability, I mean you'll need to manually create one or it'll default on the master script of that type for the interaction methods.
That way GUI's (and everything) would have a master script instead of using the GlobalScript. Then if you wanted to make a more modular GUI (easily exported and imported into new projects - I'm looking at Abs' verb GUI here instead of it being a clusterfuck in the GlobalScript), or just separate it for organization. Basically leaving the GlobalScript as the master for these methods: repeatedly_execute, repeatedly_execute_always, on_event, game_start, etc. But this conversation doesn't belong in this thread.
The other thing I want to see is Class, fully working pointers, public keyword (instead of import/export - basically eliminating the useless header script (don't argue, the header script is useless and time consuming)). Then of course the other things I've mentioned above. But once this is done, you've already got yourself a language you claim to not want for AGS.
The advantages of just adding a fully OOP scripting language (I like Java, Monkey!

And C#, but I've used Java more) is that you could then extend the automatic types that AGS makes. But of course once you do this, you'll need to modify it so that when you Add a character in AGS (using the editor) you can select if they're using the super class Character or an extension of that class (in the case below, you'd select the NewCharacter class).
public class NewCharacter extends Character {
@Override
public void say(String text) {
//your new custom Say method that will now override the default Say method (only if the character is an instance of NewCharacter)
}
}
Notice how I made "say" a lowercase? Isn't that the programming standard? That's always confused me when I started with AGS. Classes, Interfaces, etc should be first letter uppercase, with methods and variables being first letter lowercase.
With AGS we currently have Character.x, Object.X, GUI.X, Button.X, label.X, etc. Why is it that Character is the only one that complies with this standard? If the coding script were to switched over to a different language, things like this should to be corrected.
Anyway, back to the subject, that's why I'm so confused with anyone wanting to spend anytime enhancing the current AGS script when it's going to end up like something else anyway (like Java

).