Pour les utilisateurs ou pour les auteurs?
Pour l'auteur, le principal inconvénient est que le programme est plus difficile à vendre "en boîte". Lorsque le code source est ouvert, n'importe qui peut les prendre, construire un programme et l'utiliser gratuitement ou le distribuer gratuitement. Même si cela est interdit par le contrat de licence, il est plus facile de créer à partir des sources que de craquer des binaires.
Donc la plupart des programmes open source sont gratuits. Les logiciels open source commerciaux réalisent des bénéfices en fournissant des services payants (navigateurs et autres logiciels clients), en vendant un produit supplémentaire (pilotes) ou en vendant des logiciels open source à un ou plusieurs gros utilisateurs qui paient pour la certification et la maintenance (distributions commerciales de Linux).
Un inconvénient important peut être la nécessité d'utiliser uniquement des composants ouverts. Vous ne pouvez pas ouvrir un programme que vous ne possédez pas complètement. La honte sur la qualité de votre code peut également jouer un rôle.
Pour les utilisateurs, l'inconvénient d'utiliser un logiciel libre est que vos concurrents peuvent utiliser le même logiciel pour le même prix. Ils peuvent aussi s'en emparer et l'améliorer pour prendre l'avantage sur vous.
C'est'tout ce qui me vient à l'esprit.
Bien sûr, il y a des avantages. Les auteurs gagnent des rapports de bugs plus qualifiés et souvent de la "main d'œuvre gratuite". Les utilisateurs gagnent une plus grande confiance dans la qualité du programme (qui a déjà été analysé par de nombreuses personnes extérieures et peut être analysé par vous ou votre expert engagé), une correction plus rapide des erreurs et la possibilité d'influencer l'ajout de nouvelles fonctionnalités.
Les inconvénients ou les avantages l'emportent dans différents cas. C'est pourquoi nous avons différents types de logiciels. Il y a également l'inertie de l'industrie.