Using native code has both advantages and disadvantages. If the use of native code can be avoided, you should make every attempt to do so. Sometimes it is your only option and, unfortunately, as it stands right now, if you want to make a professional Java game, you will likely have to write some native code for your game. As more libraries such as JOGL and JOAL become available, the need to write native code will be reduced.