I've been thinking about making an open source project that is very similar to an existing product. If I were to make the project api compatible, it would make a huge number of existing applications and libraries compatible with my project. Are there legal implications to doing this? How about moral implications? Should I be worried?
I don't see any moral problem with this, it simply increases interoperability. There are many open source projects that do similar things (For example: WINE, Samba). Having non-proprietary choices is good, and exposing the same APIs makes it easy to use your software as a drop-in replacement.<p>As to the legal aspect, that depends on where you live and IANAL.
Oracle's lawsuit on Android apparently tries to claim that API design can be copyrighted: <a href="http://people.gnome.org/~michael/blog/2010-10-29-api-copyright.html" rel="nofollow">http://people.gnome.org/~michael/blog/2010-10-29-api-copyrig...</a>
No, especially if that API has become a de facto market standard such as Amazon's cloud APIs.<p>An interface is not a product or service. The company in question has a responsibility to continually innovate in order to remain competitive. That's how market economies work, or should work barring the involvement of lawyers who defend what is in the best interest of one firm (local maximum) at the expense of what is in the best interest of everyone, companies and consumers alike (global maximum).