I am not sure I agree with everything. The case against premature optimization has long been made, and for the most part I agree. However, the point of abstractions etc. is not only to create useless libraries, it is also to keep the code manageable. For example, the point of private members of classes is not protection against illegal operations. It is to tell me as a programmer that I don't have to worry about those aspects of the class. The dreadful thing that could happen is not that 1000 John Smiths sign up for my application. It is that I have written 100000 lines of code and have no idea anymore what is going on...