Yes, natives. But you also need a little bit of functions for trigger actions and generally wherever you need "code".
Do you have any programming experience outside of wc3? Because it's obvious you should use modules to generalize code/add innate functionality and exactly NOT TO write same shit over again, especially if you need it many times over. I am trying to make sure to use extends, interfaces and modules to either make the code more readable, shorter, easier to change or to standardize it in a way, you need all those tools in a real programming environment in one shape or another, hence why they're good to use for wc3 too if you're working on something complex.
Also read vJass help, vexorian outlines why he made modules.