multi-paradigm programming language