Is there any other way to program the Lego Mindstorms NXT other than the provided software? I'm curious to know if there is any way to program the NXT other than the provided software.

I don't necessarily have any issue with the software.

Does the program created by the software translate into an actual programming/scripting language? If so is that language proprietary to Lego or is it a common programming language?
The programming interface used by LEGO creates programs which make use of the standard firmware, that is, the one provided by LEGO.

If you look at alternatives (see also this answer for more information), you'll notice that quite a lot of them use the same firmware.

This means that the programs they produce use the same language which is interpreted by the standard firmware. One advantage is that you can have a mix of programs on the same NXT brick and it doesn't matter with what they've been originally written.

If you're interested to know more about the standard firmware and how to program it, you can download the Mindstorms Software Developer Kit. One of the interesting aspects of it is that you don't always need to create programs but you can send direct commands to the NXT as well - meaning you actual programming logic can sit on another connected device (PC, smartphone,...).

Others alternate languages use a different firwmare altogether, which means you can't mix languages at all. But if it uses a language you're more familiar with, it may be worth trying. (You can always revert to the standard firmware anyway.)