Cuáles son los pros y los contras de usar software de código abierto, y si es mejor pagar por programas de software de marca?

En primer lugar, cada proyecto de código abierto sigue siendo una marca... Y no todo el código abierto es gratuito...

Olvídate de lo que la mayoría dice sobre el código abierto. No puedes descargarlo y no es gratis. Lo único que tienes es la opción de revisar el código fuente. Ni más ni menos.

La principal ventaja es que los usuarios pueden hacer una revisión del código para comprobar que no hay errores. También se puede modificar el código para arreglar cosas o alterar varias partes, pero no se puede publicar después. Eso es porque el código fuente sigue teniendo derechos de autor.

La principal desventaja es que la gente puede copiar (ilegalmente) el código fuente y publicarlo en todas partes. O lo utilizan para hacer una aplicación competitiva y competir con el autor original por el producto.

Un buen ejemplo de código abierto es el proyecto UNIX original. AT&T permitió que sus usuarios recibieran el código fuente, ya que a menudo tenía que ser compilado en su propio hardware. Así que la Universidad de Berkeley también compró una licencia y recibió el código fuente de UNIX. Y los estudiantes de Berkeley empezaron a juguetear con el código, haciendo ajustes que devolverían a AT&T y así mejorarían el producto. Hasta que estalló la Guerra de UNIX, ya que los estudiantes de Berkeley decidieron reescribir su propia versión de UNIX por completo y, por tanto, ya no necesitaban la licencia de AT&T. Y de repente BSD, la versión de UNIX de Berkeley, se convirtió en un actor importante en el mercado de UNIX...

Y esto fue mucho antes de que naciera Linux e incluso antes de la GPL y sus predecesores.

Pero lo que probablemente estás apuntando son las licencias de código abierto frente a la licencia de código cerrado. Técnicamente, la única diferencia entre ambas es que puedes revisar el código fuente en los productos de código abierto. Pero hay mucho software por ahí que utiliza una licencia de código abierto que es libre de obtener, usar y distribuir. Esto también significa que puedes obtener el código para compilarlo en tu propio hardware, siempre y cuando tu compilador soporte las características de la aplicación. Y hay un montón de licencias de código abierto y algunos de ellos se pueden encontrar aquí: https://choosealicense.com/licenses/

Las aplicaciones de código cerrado todavía puede ser libre, sin embargo. Los mercados de aplicaciones para Android e iOS están llenos de aplicaciones de código cerrado que son gratuitas, aunque algunas mostrarán anuncios, mientras que otras podrían pedir donaciones o proporcionar un servicio de pago que le daría más características. Aun así, hay mucho más código cerrado gratis de lo que la gente cree.

Pero todo depende de la licencia que acompaña a un producto. Esta licencia te dirá lo que puedes hacer con él. Y tendrías que comparar las distintas licencias entre sí para saber cuáles son las ventajas y desventajas de cada una. Esto no tiene nada que ver con que una aplicación sea de código abierto o no.

Así que si la licencia de una aplicación reclama el alma de tu primogénito pues que así sea. Puede ser de código abierto o cerrado, que no importa. Pero si usas el producto, tu primogénito estará condenado...

Por cierto, el código abierto que usa la licencia BeerWare no es libre, pero sigue siendo código abierto. Cuando conozcas al autor y creas que el producto merece la pena, ¡hay que invitarle a una cerveza! Hay mucho más software DonationWare por ahí, tanto abierto como cerrado, que pide donaciones.

Una comparación de las licencias de código abierto se puede encontrar en Wikipedia.

Ahora, con el código abierto, generalmente tienes las licencias permisivas y restrictivas. ¡Las licencias GPL son restrictivas y por lo tanto tienen algunas desventajas más que, por ejemplo, el MIT, Berkeley o incluso las licencias de código abierto de Microsoft! (Y sí, Microsoft tiene su propia licencia de código abierto que se utiliza para .NET Core.)

Un gran problema con las licencias de código abierto es que pueden no ser compatibles entre sí. La licencia de Microsoft, por ejemplo, no permitirá que su código fuente forme parte de una licencia restrictiva y, por tanto, es incompatible con la GPL. Así que si usted utiliza código de Microsoft en su código GPL, la parte GPL sólo se aplica a sus propios cambios, mientras que el código de Microsoft debe publicarse libremente. (O simplemente ser mencionado ya que no tiene que distribuir su código con licencias permisivas.)

La mayoría de las licencias de código abierto tienden a ser permisivas por naturaleza ya que estas permiten la mayor libertad con el código. Puedes usarlo para hacer tu propia versión de una aplicación y luego vender tu aplicación como código cerrado. (Sin embargo, es posible que tengas que mencionar que estás utilizando código abierto, como se indica en la licencia). Esto significa que puede tomar una copia del sistema operativo FreeBSD y básicamente vender licencias a clientes que sólo recibirán los binarios. O simplemente instalar FreeBSD en su propio hardware y vender el hardware tal cual. (Aunque es posible que no tenga muchos clientes. La mayoría no son estúpidos)