Was Xamarin's action and the way the action was done ethical or not?
Bem, vamos perguntar a um especialista - a lista da Open Source Initiative da MIT License , com a licença citada em sua totalidade :
The MIT License (MIT)
Copyright (c)
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Se alguém - individual ou empresa - lançar o software / código-fonte com uma licença MIT, isso significa que qualquer outra pessoa - indivíduo ou empresa pode "negociar no Software sem restrições". Desde que o aviso de direitos autorais permaneça intacto, eles são capazes de fazer o que quiserem.
Este é um daqueles casos em que a ética e a legalidade são praticamente as mesmas. Se uma pessoa ou grupo não entendeu a licença ou suas implicações, eles não fizeram a devida diligência. A Open Source Initiative fornece muitos outros recursos interessantes para nos ajudar a entender as licenças como a variante do MIT. Vamos ver algumas cláusulas da definição de código aberto:
1) Free Redistribution - The license shall not restrict any party from selling or giving away the software as a component of an aggregate software distribution containing programs from several different sources. The license shall not require a royalty or other fee for such sale.
3) Derived Works - The license must allow modifications and derived works, and must allow them to be distributed under the same terms as the license of the original software.
5) No Discrimination Against Persons or Groups - The license must not discriminate against any person or group of persons.
6) No Discrimination Against Fields of Endeavor - The license must not restrict anyone from making use of the program in a specific field of endeavor. For example, it may not restrict the program from being used in a business, or from being used for genetic research.
Para minha leitura, isso parece muito claro: lançar algo como código aberto, especialmente com a licença do MIT, permite que alguém leve o software livremente, altere-o, empacote-o e venda praticamente qualquer pessoa que ele queira, contanto que eles não removem seu aviso de direitos autorais e afirmam que ele é seu próprio único trabalho.
Como autor, você está explicitamente desistindo do direito de ser exigente e exigente. Você não consegue decidir quem ou o que pode se beneficiar do seu software ou usá-lo, e você não consegue decidir por que ele está sendo usado. Você explicitamente desiste desse direito.
A idéia é que você está contribuindo para o bem maior renunciando explicitamente a qualquer direito legal que você tenha de controlar e restringir o uso e a mudança do que você fez. Se a Microsoft quiser desembolsar o seu projeto FluffBall e vendê-lo por $ 2k por assento como WindowsSpongeCake, eles podem. Não foi permitido que as pessoas fizessem o que queriam em toda a parte do seu projeto em primeiro lugar?
Is it possible to avoid such a situation if you are a single developer or a small unfunded group of developers?
Mais ou menos! Primeiro, use uma licença adequada a você e às metas e desejos de sua organização. Se você não quer que ninguém o use de uma forma que você não aprova, você provavelmente não deveria lançá-lo como Open Source - e, francamente, você talvez não devesse lançá-lo! Se você não quer que ninguém use um trabalho derivado (como uma bifurcação) em um projeto comercial, você provavelmente deve escolher uma versão copyleft de a GPL . Se você deseja uma licença não comercial, provavelmente deve obter um advogado de direitos autorais / licença para aconselhar, porque isso muitas vezes não é considerado um software de "código aberto" e não há nenhuma licença pré-gravada para suportar esse caso.
O problema com a Xamarin e o kerfuffle Coco não é uma questão de ética ou legalidade - trata-se de uma luta na internet entre algumas pessoas que se importunam umas com as outras. Somos todos humanos, acontece. Parece ser o resultado de ser incapaz de colaborar / cooperar, provavelmente devido a um conflito de personalidade ou visões incompatíveis de como o projeto deve ser tratado.
Assim, a outra forma de defesa é estar aberto à colaboração e mudança, mas entenda que, se não der certo e as visões divergirem ... bem, essa é a razão para a opção de bifurcar e ter seu próprio projeto separado.
É muito humano e compreensível que os sentimentos de propriedade e popularidade tornem os projetos de software muito, muito complicados. Mas o objetivo do código aberto é tentar transcender isso e permitir que o melhor software esteja disponível gratuitamente para todos.
Bottom-line, seja claro sobre seus objetivos quando estiver decidindo uma licença e entenda suas implicações para o seu futuro controle e direção do projeto. Se você quer doar para o bem maior, o código aberto é o caminho a percorrer. Se você deseja controlar seu projeto com mais rigor e ter propriedade e, pelo menos, um caso legal, se alguém tentar comercializar seu projeto ou absorvê-lo (em parte ou totalmente), você precisará de uma licença diferente e provavelmente precisará resolva isso com um advogado.