Language selection guidelines

https://wikia-inc.atlassian.net/browse/AR-18

The question of which languages do we support and what is the criteria for evaluating new languages has come up several times. This is an attempt to create a guideline that covers these topics and guide the decision making process.

/cc @pchojnacki @nmonterroso 
@SebastianMarzjan the reason is that we currently aren't building new services in those languages, we lack broad expertise, and the services that were written in those languages are legacy or maintenance only.

Perl, and Ruby might be exceptions to one or more of the reasons mentioned. However I don't see a lot of enthusiasm or interest in building services in either language when Python will probably suffice and is generally considered more accessible and readable than either Ruby or Perl. We have also developed a lot of institutional knowledge and tooling around Python recently.

The main point is that the systems written in those languages are not being actively developed. They are "legacy" or maintenance mode only. As far as I know, Phalanx is the only service we have written in Scala and we don't have a lot of organization interest in building (or maintaining) new services in Scala.

Note though that Ruby is being used in ops which I think is fine since some of the tooling is written in the language. Maybe it needs to be clarified but the context of this document is production service development. 

Hope that helps.