Designing Babel (in defense of polyglot programming)