On Tue, Mar 04, 2014 at 06:19:38PM +0000, Chris wrote: > On Tuesday, 4 March 2014 at 15:52:37 UTC, H. S. Teoh wrote: > >On Tue, Mar 04, 2014 at 10:32:52AM +0000, Chris wrote: > >[...] > >>Maybe that's why it is so hard to see the benefits of templates, > >>because many cases (of abstraction) are already covered by OOP. I > >>like templates, but I'm not sure if they are as useful as D's > >>ranges. Ranges and component programming handle the ubiquitous > >>input>filter>output paradigm present in every program and help to > >>break down the program's logic into digestible chunks, a logic you > >>cannot just copy and paste (but you can reuse the chunks). In cases > >>where you use templates, you can also get away with copy and paste > >>and replace "int" with "double". > >[...] > > > >Ranges in D will be nowhere as convenient as they are today without > >templates. When you write your own components, you basically have to > >use templates in order to not incur unacceptable overhead (or impose > >arbitrary limitations on usage -- such as requiring something to be > >derived from some chosen base class). > > > > > >T > > True, true. The fact that the compiler can check for the right types > is great. > > Btw, the quote you have in this post: > > Never ascribe to malice that which is adequately explained by > incompetence. -- Napoleon Bonaparte > > I'm surprised that Napoleon would say something like this. Malice is > often a characteristic of the incompetent. The only way to get the > better of their betters. :-)
I'm not sure if that attribution is accurate. Nick has pointed out to me that he knows the same quote attributed to someone else, so this may be a case of internet misattribution (I picked up that quote from somewhere online, way back when -- no idea if the source was reliable, y'know, being the internet and everything). T -- I am not young enough to know everything. -- Oscar Wilde