if you're NOT a programmer (outside warcraft), use jass shop pro or jass craft.
if you are (a decent one, at least), don't use those. trust me. get blizzard.j (if you want, i can send it to you) and common.j from the game and keep it handy.
when you need a bj->native open it up (it's 416K, so don't use notepad for opening it) and search for your function. examine it to see what it does and what is the optimal replacement.
example 1: remember how you create one unit from gui? well look up CreateNUnitsAtLoc function. note that it calls CreateUnitAtLocSaveLast. examine that one as well and you'll see that you need neither of them. you will find that you can use the native:
set NewUnit = CreateUnitAtLoc( player, unitid, loc, facing )
or if you have the coordinates (and you took a peek at common.j), you can say:
set NewUnit = CreateUnit( player, unitid, x, y, facing )
by doing that, you avoided calls to CreateNUnitsAtLoc, CreateUnitAtLocSaveLast and GetLastCreatedUnit (3 bj functions).
example 2: you want to add 5 to hero's strength. so you call ModifyHeroStat which calls two needless bj functions GetHeroStatBJ and SetHeroStat because main function takes both attribute (str/int/agi) and action (add/sub/set) as function arguments.
and all you needed were two simple SetHeroStr and GetHeroStr native functions. quite easy to see, faster and simpler with a text viewer then with those two programs suggested above.