Introducing new programming languages into your organization

It's not always the right time for new technologies, but I strive to not shut the door on anything - to avoid my own language and tooling biases and to support my engineers want to learn new things.

To not waste time I typically start with higher level business / people oriented questions. Determining the nature of the system to be built and the current support your team can offer. I.e., if you are a ruby shop and you are building a java application:

  • What is the criticality of the system in question?
  • Who else can support the java application?
  • Is there anyone else interested in learning the technology?

If none of those are blockers (that's pretty subjective, I err on the side of allowing technologies in).

Build a proof of concept that shows at a minimum the following:

  • Integrates with central bug tracking system
  • Integrates with central log tracking system
  • Works on the hosting provider (i.e. .Net on Heroku takes some work)
  • Integrates with your build / continuous integration systems (and can be supported by those teams)
  • Integrates with {{corporate system here}}

Fairly straight forward.

Please don't try to encourage discussion by creating a slack channel called "Language Wars". Many (most?) languages can probably solve whatever job you have - for websites this is almost universally true. Cue examples of large scale operations built in Java, .Net, Php. Except Ruby - fuck those guys.

Although having architects stretch their explanatory skills to show merits of ArnoldC is sometimes pretty entertaining.