This may sound zany but, for pragmatic reasons, I would suggest
Ruby or
Python. They are both powerful programming languages in both semantics (what you can do programmatically) and libraries (what you can do pragmatically). They are both available for free as are all the libraries needed to do whatever you like. They are also interpreted languages, so you won't need to compile code or have to deal with link and make files (the part of programming that's
not fun). Finally, there's plenty of support for both languages, on the web, web forums, mailing lists, and (my favourite) usenet...
Ruby is more consistent than Python, so it may be easier to learn. Then again, it has stranger semantics than Python, which is somewhat C based. It might depend on how abstract your thinking is or your level of programming experience. Funnily enough, if you don't have a lot of experienced, you might not be bothered by it's unique sementics but if you have only
a little experience, you might find it confusing. Then again, if you have a lot of experience, then you will go back to not being bothered by it because you'll be so well versed in the fundamental ideas rather than the superficial syntax...
Personally, I prefer Ruby so I guess I'll recommend that!