Okay, just hit me with questions about the syntax/throw your error trigger at me/ask how you could accomplish something, helps me to know how could I better build my tutorials to know what ppl actually need to learn.
----------
why use constant for vars and funcs at all?
----------
The jasshelper (application that runs before the vanilla compiler and compiles vJass into JASS2 syntax) will inline the constant values, that are in no way attached to function calls.
For example, this won't get inlined: private constant hashtable table = InitHashtable(), because it is declared via native call. And this: private constant hashtable table = MyCustomFunctionToCreateTable() or this: private constant hashtable table will just throw an error at you.
Inlining means literally inlining: the compiler copies the value from it's vanilla position into places it is referenced at. This way CPU will have easier time going through your code, as it'll cost plenty of variable lookups / function calls less.
Plus constant variables cannot be reassigned in accident