I've used Python for about about eight years, and Ruby for right at six months. It took me about a week to feel competent in Ruby, and about a month before I was really comfortable with all of the metaprogramming functionality. Add another month to that before I really grokked ActiveRecord. I much prefer Python. I thought for a long time that this was because I learned most of the fundamentals of computer science and…
When you talk about "functions are not first class objects", do you mean you cannot assign it to a var? Well thats because they are not functions, they are methods. I think thats great. A method belongs to a class. Thats how Smalltalk also implemented it, as far as I know. In fact Ruby and smalltalk (the mother of all OO languages) shares a lot in common.
If you like functional programming style, thats fine, but yeah then maybe you should use haskell, erlang, elixir, ...