The route to the successful adoption of non-mainstream programming languages