That's definitely very, very helpful. You're exactly the kind of person I was hoping would answer.
However, your explanation raises a few new questions
1. You mention the terms higher/lower level. How one programming language operates on a lower level? Does that mean in a manner closer to what the machine ultimately understands?
2. I understand JAVA is platform independent, but (In stuff like C) do things need to be recoded on different OS's?
3. Why can a langauge have the ability to generate a GUI while others don't?