el blog de cHagHi

(el rejunte on-line de todo aquello que deseo compartir)

 

« | »

Código abierto. Cuando sí, cuando no. Mi visión.

Lo que sigue es el texto de un e-mail que envié a la lista de correo de PyAr, a partir de una discusión que se generó sobre el usar software libre (Python) para desarrollar software propietario, a partir de un mensaje que se envió invitando a la presentación de un producto desarrollado en Python.

Creo que el texto así como está es entendible, pero agrego un poco de contexto: El núcleo de la discusión era por un lado la postura de que todo el software tiene que ser libre, y otras opiniones donde la gente resaltaba el modelo de servicios de Red Hat (y otros) para ejemplificar como podía ofrecerse sin problema el código fuente, al mismo tiempo que los ingresos se generaban no por la venta del software en sí, sino por los servicios anexos al mismo (instalación, configuración, etc.)

Esta fue mi elucubración al respecto:

El modelo de código abierto funciona perfecto en determinado software que o bien se ha "comoditizado", o está camino a comoditizarse, o *debería* comoditizarse.
Un sistema operativo. Un compilador. Un editor. Una base de datos. Un servidor web. Un framework... ¿ven el patrón? Las herramientas de base.

Ahí el modelo de código abierto está perfecto, porque esas aplicaciones son muy valiosas como HERRAMIENTAS para hacer alguna otra cosa, pero por si solas, no son nada. A nadie le sirve una base de datos sin datos adentro, por excelente que sea, o el mejor servidor web sin una aplicación web que lo use.

Y por otro lado, son herramientas muy costosas de desarrollar y mantener, en tiempo y en recursos. Y entonces el modelo colaborativo del código abierto está excelente. Para desarrollar software de ese tipo de forma cerrada, tenés que ser una empresa enorme (Oracle, Microsoft, IBM, ...)

El modelo de servicios de Red Hat, Novell, etc., también es particular: El producto es estándar (es casi un commodity), muchos de los recursos de desarrollo no tienen que ponerlos ellos (o los pone un desarrollador de la comunidad como hobby, o los pone otra empresa (ej., Red Hat paga más empleados para laburar en GCC, quizás Canonical tiene más empleados en GNOME... a la larga, ambas empresas necesitan de los dos aportes)).

Además, un sistema operativo (que es sobre lo que "venden" servicios), es algo que cuando se quiere deployar en una empresa, genera una miríada de costos: de instalación, de capacitación, de certificación, de integración, de mantenimiento, etc., etc. Si yo tengo una empresa, y quiero que mis usuarios usen Linux, tengo dos alternativas:

  • Instalo un Debian (por poner un ejemplo de uno libre 100%), y me hago cargo yo de todo lo que viene atrás, de buscar ayuda en mailing-lists, foros, artículos en slashdot y demás;
  • Instalo un RHEL (por poner un ejemplo de uno pago), y pago una suma para siempre tener un 0800-Red Hat que me solucione la vida, me de mantenimiento, me de un ciclo de desarrollo predecible sobre los cambios que se efectúan en el SO, etc., etc.


Una PyME probablemente pueda usar Debian. Una empresa con 500 empleados, probablemente no.

Brindar ese servicio, no es fácil. No hay muchas empresas del tamaño de Red Hat y Novell e IBM que puedan darlo. Y cuando un consultor independiente viene y dice que brinda soporte para Linux, yo lo invitaría a detenerse a pensar como sería Linux si las grandes empresas no hubieran invertido tanto en él. ¿Habría soporte para tanto hardware? ¿Tendríamos gestores de paquetes y herramientas de administración avanzadas? ¿Tendríamos documentación? ¿Tendríamos localización, internacionalización, subsistemas de soporte para personas con capacidades reducidas, etc., etc.?

Creo que si no fuera por esas empresas (que son ENORMES), Linux no estaría donde está, y el consultor independiente tendría que dedicarse a otra cosa.

Y alguien dirá: ¡Red Hat nació con Linux! ¡No siempre fue grande! Es cierto. Lo mismo que Suse y otros. Pero justamente son fenómenos que se dieron mientras Linux estaba creciendo. Hoy, ya no es posible para nadie más ocupar esos lugares. Salvo que seas un Novell, que tengas el cash para comprar Suse. O que seas un multimillonario africano con muchísima plata, y seas tan atípico como para querer gastarla en fundar Canonical (y Ubuntu) y volar por el espacio, en lugar de gastarla en un yate y acciones de Microsoft.

Si Debian *hoy* quisiera volverse un Red Hat, no podría. Esa ventana de oportunidad, se cerró.

El asunto es que cuando dejamos de lado las herramientas, el toolchain de desarrollo, y los frameworks y toolkits de más bajo nivel, llegamos a las aplicaciones que brindan un servicio agregado. A las verdaderas "obras de arte" (lo otro, es la pintura, el pincel, el lienzo y la paleta). Y ahí nos encontramos con tres caminos:

  • Te lo tomás como hobby, y participás de un grupo muy grande de desarrolladores que tienen el mismo hobby que vos, y en ratitos libres van implementando la aplicación. Sería el ejemplo de Totem, Gaim, o cualquier aplicación de las que hoy instalamos sobre Linux.
  • Te lo tomás como laburo, y lo hacés vos solo o con un equipo de gente mucho más reducido en una empresa. Como por ejemplo GTalk, Photoshop, etc.
  • Le pagás a alguien para que te lo haga.

Si lo hacés como hobby, ¿quién te da de comer? O profesionalmente te dedicás a otra cosa (no a producir software), o trabajas en una empresa de software que necesita VENDER para pagarte el sueldo.

¿Y vender qué? Bueno, o es una empresa grande con un producto masivo y podemos hablar de generar y vender todos los servicios que hay alrededor del software (sería el caso de Red Hat), o es una empresa chica (o un producto chico) que no puede darse el lujo de ofrecer el código abiertamente, porque pierde su única ventaja competitiva, y en definitiva, todo el fruto de su trabajo, que es el software en sí.

En el caso de que pagues para que te hagan un software a medida, podrías llegar a exigir como parte de las condiciones que te entreguen los fuentes. Es algo a medida. Es algo para vos. Tenés que cubrirte si al desarrollador original le pasa algo. Pero hay una diferencia entre comprarle a alguien un software "a medida", o comprarle un producto. Hay una diferencia entre entregarle a alguien el código fuente de algo hiciste a medida para él (le sirve a él solo, o a poca gente más), o darle el código fuente de algo que haces para muchos más clientes potenciales.

La conclusión es (en caso de que alguien siga leyendo todavía :p) que si TODO el software fuera libre, no habría una industria de software, y no podríamos vivir de escribir software. Y si no pudiéramos vivir de escribir software (que asumo que es el trabajo o la industria que nos gusta), ¿estaríamos motivados para escribirlo? ¿habría llegado el software hasta donde llegó? ¿estaríamos discutiendo esto?

El concepto de código abierto y software libre está muy bueno. Podríamos decir incluso que es necesario. Pero, no es el único camino. Y necesita del software propietario para tener sentido.

Y ya que estamos, un año antes escribía: Actualizando pLog

Comentarios

  1. Escrito por  Facundo Batista

    Dos puntos.

    Una PyME...
    - ...puede usar Debian, porque no quiere afrontar ningún gasto, entonces una solución totalmente libre y gratis sería lo ideal, aunque tengan que dedicarle tiempo y recursos a la misma.
    - ...puede usar RHEL, porque no tiene la estructura para especializar gente en la instalación, mantenimiento y demás, y le conviene pagar un monto a otra empresa para que se encargue de ello.

    Una empresa con 500 empleados...
    - ...puede usar Debian, porque no le cuesta nada designar dos personas (o cinco) para que se especialicen en el SO, de manera de dar soporte a toda la estructura informática de la empresa.
    - ...puede usar RHEL, porque le es más fácil tercerizar el soporte que desarrollarlo in-house (en este caso es típico el siguiente razonamiento: al gerente de sistemas le es medianamente fácil que le den la guita para pagarle a Red Hat, y prefiere el soporte externo porque no se juega el propio culo, en todo caso la culpa es de la otra empresa).

    El otro punto es con respecto a los últimos párrafos tuyos, yo creo que el (F)OSS no sólo es necesario, sino también vital. Pero no estamos de acuerdo en que si todo el software fuera libre, no habría una industria de software, y no podríamos vivir de escribir software. Sí se acabaría el software como "paquete para que otros usen", pero no creo que se acabaría el desarrollo interno para usos específicos.

    El punto es: ¿vale la pena sacrificar una industria en pos del (F)OSS? ¿Y no está mal, de entrada, que nos preguntemos si vale la pena sacrificar una industria en pos de un ideal?

    ¿Sabés a qué me suena todo esto? A una charla entre monjes, hace 1500 años, discutiendo si la ciencia y el conocimiento deberían ser libre, unos diciendo que sí, como ideal, y los otros diciendo "pero se nos acaba el negocio...".

  2. Escrito por  chagHi

    Me estás poniendo como ejemplos sistemas operativos, que precisamente es una clase de software que yo considero que (por ser casi un commodity, y algo muy complejo de desarrollar, y una herramienta de base) debería ser de código abierto y libre.

    Estamos 100% de acuerdo que una empresa, grande o chica DEBERIA usar un S.O. abierto, y libre, ya sea dándole soporte ella misma internamente, o tercerizándolo.

    El resto de los puntos... da para sentarse y conversarlos :p Imposible de entablar un debate por acá (menos con mi sitio andando para el toor :( )

Añadir comentario

authimage

Los comentarios en este blog son moderados, con lo cual es probable que tu comentario no aparezca inmediatamente.

Incluso puede ser rechazado, y no aparecer nunca. Si tu comentario tiene alguna de las siguientes características, será rechazado:

  •  • Si el TEXTO ESTA COMPLETAMENTE EN MAYUSCULAS;
  •  • Si se incluyen direcciones de mail o cualquier otra información personal sensible en el cuerpo del texto;
  •  • Si el comentario no tiene nada que ver con el artículo publicado que se está comentando;
  •  • Si es propaganda;
  •  • Si está horriblemente redactado, sin ningún cuidado por la ortografía.

Por último: Este es un blog personal, y yo, su autor, considero que comentar en un blog personal es un privilegio, NO un derecho. Especialmente si vas a discrepar conmigo en tu comentario, por favor hacelo con respeto.

Muchas gracias!