multi-language software development