My interests evolve around (declarative) programming languages: language design and implementation, tool development, and programming techniques. Having looked into most of the major programming paradigms, I've more or less settled on a combination of functional and concurrent programming as the main paradigms I like to see supported well, directly in the language design. Occasionally, logic and object-oriented programming also come in handy as programming paradigms, but language designs built solely around these two tend to be less helpful for general programming.
If this sounds odd to you, consider embedded domain-specific languages and language support for building abstractions: functional abstraction seems to do very well for the latter, making functional languages good hosts for embedded-DSL-based development. Also, object-oriented and logic programming can be supported reasonably well as embedded DSLs, while concurrent programming needs language support, and functional programming without good functional abstraction is just painful.