Hi, I'd like to ask if you have any plans on changing or extending the current syntax or offering an alternative syntax to the AngelScript?
I understand this may sound a bit silly question. But the reason for this is that there's two different and important things I think about when looking at an embeddable scripting language.
First is to shorten development turnaround time by allowing editing parts of the code without doing a recompile, possibly even editing on the fly to avoid restart and doing a full reload.
Secondly it would be nice if the script syntax is constructed in a way that it is somewhat easy for non-coders to use it for simple tasks. Ideally the syntax should be made in a way that simplest things to do aren't verbose and the syntax looks really simple - e.g. if you just want to make a few calls and adjust a variable to handle a game event with script code, the code should be very minimal. At this level program flow control code might not be even used (loops etc). Still the syntax should allow for any normal programming as well so that coders can use it effectively as well.
I haven't really tried AngelScript yet, but as far as I can see, it suits well for the first above mentioned point. Regarding the second one, the syntax is so near to C code that I think it's not very good when thought about simplicity. I understand that this has still been a knowingly taken design decision for the language though (i.e. AS is not a "type less" language as the script writer manual states :).
Of course this issue isn't probably very big one - after all, one way to solve it is to just give a bit more education for the application and its scripting system which would use this. But it's still something you might want to consider in future development.
I Disagree for a complete alternate syntax...... but we should still be able to provide alternate syntaxes for functions at least for those that will be used in the game's console
MoveUnitTo ( Unit, x,y,z ); changes MOVE UNIT, (X,Y,Z)
this would probably make modding interesting. i appreciate AS way more than LUA or python, i mainly get turned off by the syntax of LUA. its good to generate macros though just for convenience.
[Edited by - EddHead on June 26, 2004 1:33:15 AM]
Jayanth.KRaptor Entertainment Pvt. Ltd.http://www.raptorentertainment.com---------------------------------------------------------Why Mr. Anderson? Why? ...Why keep fighting? Do you think you're fighting for something - for more than your survival? Can you tell me what it is? Do you even know? Is it freedom, or truth, perhaps peace, could it be for love? Illusions Mr. Anderson, vagaries of perception. Temporary constructs of a feeble human intellect trying desperately to justify an existence without meaning or purpose.
Well, I can tell you this. I don't plan on changing the syntax of AngelScript. I might modularize the compiler so that the language syntax could be exchanged. Though this would be a very low priority task on my to-do list.
But I don't really think the syntax matters. It is not the syntax itself that makes a language difficult to work with. It is the resources that the language offers. AngelScript will improve in this case by allowing script writers to declare structs and classes, and use co-routines (ex: spawn and yield from Lua), etc.
What ever syntax you choose the user would still need a manual to learn how to use it. Wether the manual says an assignment is written as "variable = expression;" or "assign expression to variable" is just a matter of taste, don't you think?
An alternate syntax for the console will not be implemented by AngelScript. Though I don't think it should be too difficult to write a preprocessor for console commands.
Macros is also something that will not be implemented natively in AngelScript, as it belongs in a preprocessor. It is possible that I or someone else writes such a preprocessor though. I hope I will have the time to upload an article this weekend that shows how to implement an #include directive for AngelScript.
Thanks for answering. :) As I said, the syntax isn't probably a very big issue.
Syntax simplicity is just one more thing to consider regarding target audience of a scripting language. I have observed generally that there's people interested in doing mods who still are very unfamiliar with normal programming constructs but who could still produce simple scripts which mainly invokes a few actions to handle a specific event without any syntactic complexity.
On the other hand, if script writers are expected to be familiar with programming, C style syntax is quite safe choice since most people will find it easy to work with. :)
About macros and console commands - I also think that those can be handled with preprocessor and an additional parser.
Macros also could be one solution to the "issue" I was talking about - game scripting API could just include a set of macros to further simplify some things. It could be a nice thing though if the preprocessor would be available as an optional code module in the scripting language package. Using external (e.g. from a C compiler) preprocessor wouldn't be necessary then.
Should someone want to write an external pre-processor for AngelScript that is able to handle macros that would be an excellent contribution to the AS community. I've already shown how to implement an #include directive externally, but macros are a lot more complex.
I might consider including a pre-processor in the AngelScript library for a future version, for one reason only, and that is that it would be able to use the same error message stream. But this would be in a far future.