If a project requires any two of the following, then I think it should be implemented in a programming language that has a good static type checker. No ifs, no buts.
* Involves more than 1 developer
* Involves more than 1 file
* Involves more than 1 month