Marsu42 said:
dgatwood said:
If the camera refused to recognize the lens, we could blame either Kenko or Canon, but because it crashes the whole camera, Canon is entirely at fault.
Nope, Canon does not say Kenko tcs work with their cameras, why should they be responsible if they don't? If you try to superglue a Nikon lens on your ef mount and it doesn't work, would you complain to Canon?
I would expect it to not work, but if it caused the camera to lock up, yes, I would complain.
Mt Spokane Photography said:
A third party makes a item that doesn't work with Canon, and you expect Canon to fix it??
Yes. This is what we computer programmers refer to as "code smell". In my nearly three decades of computer programming experience, I've found two rules to be almost invariably true:
[list type=decimal]
[*]A bug like this is typically caused by a division by zero error, failure to do proper bounds checking, or other
extremely sloppy programming—the sort of mistake that should almost never occur in shipping code and, once discovered, should
never make it into a second revision of that production code.
[*]If there's sloppily written code in one part of a piece of software, there's usually sloppily written code throughout the software in question. After all, if the QA department didn't catch such an easily reproduced bug, they probably didn't catch lots of even more serious bugs.
[/list]
Quality products simply
do not crash reproducibly, period. In most software engineering organizations, a crasher-level bug that is easily reproduced would be considered a block-ship-level bug, whether the company guarantees compatibility with that other product or not. And proper engineering organizations—even the ones that don't guarantee compatibility with other companies products—do typically
test a heck of a lot of them, and also usually let third-party vendors test their gear with their code long before it ships, so that if they break something, they can fix it
before customers notice. That's just common sense based on software engineering best practices. Any company that doesn't do those things is grossly inept, to be absolutely blunt.
Why do almost all respectable software engineering organizations do these things when they don't have to, you might ask? Because above all other things, in the users' minds, attention to detail matters. Users don't care whether it's the manufacturer's fault or the peripheral's fault. They just expect their $1,600 camera to work without crashing, without breaking compatibility with other hardware in a firmware update, etc. When that extremely basic expectation isn't met, it's the fault of
everyone the customer can point his or her finger at, including the camera maker. And when that camera maker tries to deflect blame, it just makes them look like they don't care about their customers at all, and makes those customers choose other companies' products the next time.