In this latest post to his site Jordi Boggiano talks about the change in Composer a few months back that made it install development resources by default. This was recently argued against by Jeremy Kendall so Jordi wanted to clear the air a bit on the subject.

A couple months ago when releasing alpha7 I took care to note in the changelog that the install command would also start installing dev requirements by default in the next release. I did that change some weeks ago and now people started to notice. The rationale behind the change is fairly simple, it's about consistency and ease of use. Consistency between the various commands which now all default to have require-dev enabled. Ease of use because in 99% of the cases, when you type a composer command by hand you should be doing so on a dev machine where it makes sense to have dev requirements enabled.

He points out that, when deploying to production, it's usually an automated process and adding the "no-dev" flag to the script is pretty simple. He notes that "install" is not only meant for production package management and, while it's used less in development it's not targeted towards one particular environment.