> If a good team nails the guidelines down before hand on which idioms they plan to use and stick to them, yeah.
So, like we used to do with C++? Anyone old enough to remember "C++ is fine as long as you define a well specified subset and stay away from certain features"? Even today, this is still what Google does about C++.
Hopefully we learned that this is never a good sign about a language.
In our case it wasn't about enforcing the use of a subset of the language, but rather being selective about when to use more advanced features. Having the advanced features of Scala available has proven to be very useful for us, but we don't go to town looking for a place to use every feature we can at every opportunity. It's a lot like chrome on a car - selectively and tastefully used it looks good, but making the car doors and roof out of chrome isn't a good idea.
So, like we used to do with C++? Anyone old enough to remember "C++ is fine as long as you define a well specified subset and stay away from certain features"? Even today, this is still what Google does about C++.
Hopefully we learned that this is never a good sign about a language.