I am using Python for many projects and I think Python does provide all the features you asked for.
important:
- Metaprogramming: Python supports metaclasses and runtime class/method generation etc
- Syntax: Well thats somehow subjective. I like Pythons syntax for its simplicity, but some People complain that Python is whitespace-sensitive.
- Paradigms: Python supports procedural, object-oriented and basic functional programming.
- I think Python has a very practical oriented style, it was very inspiring for me.
Somewhat important:
- Performance: Well its a scripting language. But writing C extensions for Python is a common optimization practice.
- Documentation: I cannot complain. Its not that detailed as someone may know from Java, but its good enough.
As you are grad student you may want to read this paper claiming that Python is all a scientist needs.
Unfortunately I cannot compare Python to Ruby, since I never used that language.
Regards,
Dennis