I guess I was unclear here. It's hard to make a polished user application. The not-hard part is just the core algorithm selection. I have enough minutes in the day to consider algorithms, but not enough tens of hours to write suites of quality software products.
(I've been very slowly designing my own, and the first thing for me was coming up with a list of awkward cases ..)