Без заголовка
В обратной последовательности. Сначала - насколько язык подойдёт для выражения предметной области через mini-DSL в нём. Например: Python, Ruby, Lua, ... Сразу отваливается JavaScript, в нём нет operator overloading.
Затем уже полученный список фильтруется по языковым коммьюнити. Доступные возможности, потенциально доступные возможности и их maturity. Так совершается выбор.