Time and time again I have heard complaints of ruby that it's too
dangerous because of it's power and that there's more than one way to
do something, but I really hadn't thought about how to respond. I just
felt that it's been okay for me, and different folks have different
tastes. Neal Ford made a comment towards the end of this podcast
that made a great response to it. This is not a new idea, I am
sure Paul Graham has written about it many times. To paraphrase:
building barriers to keep mediocre programmers from doing the wrong
things has the adverse effect of getting in the way of good developers. He also makes the point that "bad developers will move heaven and earth to write bad code". I think that a corollary to that is: mediocre programmers will invariably write mediocre code, i.e., they will never produce anything great. With a powerful or expressive language, every line of code can be and should be great. Therefore, in my view, you should either not work with mediocre/bad programmers in the first place or really bring them up to speed(where code reviews/pair programming can help).