I think this team is using vJass...
I don't think they are.
Someone will need to understand JASS before they are able to get their head around VJASS. Try explaining what a struct is to someone with no prior JASS knowledge.
It's not necessary to first know everything of jass before you can learn vjass stuff. To give some examples:
Arrays with fixed size (such as array[10000]) or 2D array can be learned if you know what arrays are. You don't need to know anything about functions, parameters or return values to learn about 2D arrays, which is a vjass feature.
Structs can be explained at the same time you're explaining variables. A struct is, after all, nothing more than a variable composed of other variables. (At least, that's how structs behave).
Free global declaration is another vjass feature. Do you need to know anything about functions to understand global declaration of variables? Not really.
I can't really say you need to know éverything of jass before you can learn vjass. I'd rather say a good complete tutorial should have a mixed order, such as:
- What are variables (atomic variables, handles, structs)
- Global variables + constants
- Functions + local variables
- Public vs Private qualifiers
- Methods (as an extension to structs)
- Libraries & scopes
- Textmacro's
"Constants" are a typical vjass feature. That is, constant
declaration can only be done through vjass. You don't need to know anything about functions (jass) to know about constants and how to declare them.
Structs too could be seen in the context of variables. If we forget about the object oriented features (methods, inheritance, ...) then a struct is nothing more than just another type of variable. (and IMO structs shouldn't have OO features, they should be classes...)
You see, if you want to teach jass to someone, it's probably better to see all jass/vjass features as a whole rather than vjass as an extension to jass.