sergio masci wrote: >> I agree that it could happen. However, if you buy a library from a sw >> company that has hundreds or even thousands of clients using the same >> library then the chance that the code is more reliable than your in-house >> one is quite high -- simply because more people are testing it in a more >> variety of systems. > > Do you really think that after the problems we had with it (the money it > cost us to fix, the loss of face with our clients) that we even bothered > telling the provider what the problem was. Some people may report bugs but > many just "dump" and look for an alternative. When is the last time you > wrote a letter of complaint for something you bought and didn't work as > expected. Heck how many bug reports have you bothered to send for software > that you bought or downloaded? Bug reporting happens more often than you think. Take a look at the Microchip forum, for example. Despite your bad experience, Tamas's point is totally valid. > Yes given that many PC users seem to accept bugs nowadays it makes sense > to use components from other software houses to minimise time to market > and maximise profit. However such components (and even low level > libraries) tend to be written differently to normal app code. Simply > combining a lot of object files together to produce a library is not the > same as specifically writing and maintaing a library. There is a lot of > effort involved, a lot of testing, documenting etc. Code re-use is about > taking code that was written for project A and using it for project B. I don't see why you would want to use such a narrow definition of code reuse. However, like I said, this is exactly what we do -- take code written for project A, and use it in project B. Since the shareable code sits in a specific place in the repository ("lib"), calling it "library code" is just another way of thinking about it. > You > can't simply say "we achived 99% code re-use with minimal effort" if there > was a ton of effort put into making the code re-usable in the first place. > In effect you wrote the code for project A nd project B at the same time > (with all the extra effort that involved). I know you won't believe me, but reusable code is just a byproduct of following the simple programming paradigm "loose coupling, tight cohesion". We write code the same way, whether we plan to reuse it, or not. There is no reason to have 100 different implementations of a UART module, if the only thing you're changing when you go from project to project, is the baud rate. Anything that makes the UART module project-specific, is unnecessary coupling. Vitaliy -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist