> Duoas: I may have completely misunderstood your post, particularly the last part, but are you suggesting programmers should be taught to design UIs?
Yep. UI design is an integral part of an application's design.
So, if all you want to do is code FFTs and eigenvector transformations, then sure, you can do that.
But if you want people to actually be able to
use your stuff... you must provide some form of ''user interface'' so that they don't have to hack at your code and compile it into their own little programs to apply it to their data. Understanding how your users want to interact with their data (that is, how they want your program to work for them) is the difference between software that sells and software you couldn't give away -- which directly translates to "was it worth the time I spent bit-twiddling my algorithms to perfection since I don't have a job now?".
As for the database search... Charles Watson, CEO of Little Infosystems Payroll, Inc., is more likely to grok the first method... Whereas Gary Johnson, Professional Database Programming Consultant, wouldn't care less either way. And Sue Lederer, occasional Word user and Solitare player would never go near the thing.
But, as things go, I would be more inclined to provide a graphical way of assembling queries. See
http://www.google.com/advanced_search for an example.
Hope this helps.