>>1
It depends on person, and it depends on the problem you're trying to solve.
Some prefer Haskell, others prefer CL, others ML, others FIOC and some even prefer C. I think the ``fun'' factor comes from the problems you're trying to solve. Some problems can come off very easily and natural to write in a language, but be a total PITA to write in another perfectly fine language. What you OP shold do is just learn a few good languages which encompass different programming paradigms and then use which suits your task best.
Do you think the most fun to be had when programming is if the solution flows naturally, or if the language gets in your way? Do you want clear code or bloated or overly verbose code? Are you working on a high or low level problem?
Ask yourself these questions and see what you come up with.