I wouldn't say using vectorized operations as opposed to for loops is such a good example. You're simply using the right tool for the job. Is using a fork to eat soup suboptimal? Is switching to a spoon optimizing the way you eat?<p>But what about using a dict or a list or tuple? That kind of decision can make a performance difference down the road, and there are trade offs in ease of development.<p>Anyway, the whole thing feels a little contrived. Who would ever argue that you shouldn't use numpy from the get-go? Who is the author arguing against?