== Quote from Timon Gehr (timon.g...@gmx.ch)'s article > Usually you want RAII. So that should be the simpler thing to have, not > the other way round.
Yeah, this sums up the meta-disagreement quite nicely. I and apparently you think that it's generally better to make what the user probably wants in the most common cases the easiest thing to get. This is also generally the D, Python and Perl way of doing things (though I do think Perl takes it a bit too far). Martin and Christophe are of the opinion that whatever has the least overhead, is simplest to describe and implement, has the least implicit behavior, etc. should be the default and let the user compose to get what he/she really wants. This is the Unix/C and to a lesser extent the C++ way. While composability is often a good thing, too much of it at the expense of making the common cases "just work" isn't, IMHO. If the user has to learn to compose zillions of tiny objects just to handle the most common case properly, this is a violation of the "make simple things simple" maxim. Java's file I/O API comes to mind here. Furthermore, if the project is open-source, someone with very specialized needs can always just fork it and hack the source code to customize it. This is another argument for "just working" in the common cases at the expense of being infinitely composable and flexible.