On Fri, May 30, 2014 at 03:25:59PM +0000, Adam D. Ruppe via Digitalmars-d wrote: > On Friday, 30 May 2014 at 15:09:00 UTC, Chris wrote: > >Plus, if there's a bug, you're stuck. I like to re-invent the wheel > >too, because existing wheels might not be fit for your purpose.
That's why I swore off proprietary software many years ago. It's all nice and good when it works, but when it doesn't, and the vendor has no motivation to fix it, you're stuck. Having said that, though, open source projects that are complex enough and poorly-written enough can effectively be unmodifiable too. You *can* modify it, but it would take far more effort to identify what needs to be fixed, than to write the thing from scratch yourself. Plus, far too often a lot of libraries come bundled with many extra unnecessary features that you don't need -- which is harmless in and of itself, but when they in turn depend on other libraries and external dependencies, then it quickly becomes a case of "yes this library does what I need, but I'm spending far too much time figuring out how to compile the parts of it that I don't even use, why not just write the darn thing myself instead?!". Worse, sometimes the library *almost* does what you need, but it's missing feature X (or even more infuriatingly, implements it almost completely except for that one last bit that you really, *really* need). This is why I was strongly drawn to D -- its metaprogramming capabilities allow you to design generic components that are truly reusable, without needless dependencies and unnecessary specificity that would limit its reusability. Things like the range API decouple library code from concrete range types, so that a matrix library can be implemented without any dependencies on concrete matrix types, for example. *That* is true reusability. > Aye. But I don't like the term "reinvent the wheel" because writing > new code isn't really an invention most the time; I often don't create > new theoretical concepts, it is just a new instance. >From my quotes file: It is widely believed that reinventing the wheel is a waste of time; but I disagree: without wheel reinventers, we would be still be stuck with wooden horse-cart wheels. ;-) T -- Valentine's Day: an occasion for florists to reach into the wallets of nominal lovers in dire need of being reminded to profess their hypothetical love for their long-forgotten.