Hoy estoy escribiendo esto debido a mi frustración. Esta tarde me he planteado la necesidad de imprimir ciertos apuntes para poder leer sobre papel. La pantalla de mi portátil cansa mi vista, y mi lector de libros electrónicos no se adapta bien al formato PDF, además, prefiero ver los textos matemáticos sobre un soporte "grande" (A4), y que me permita además hacer anotaciones en el margen.
Bien, una vez planteado el deseo procedo a ejecutar las acciones necesarias para alcanzarlo: conecto mi portátil a mi impresora HP Photosmart C3180 y empiezo a imprimir, como siempre, sin demasiados percances... Sin demasiados percances, claro, a excepción de que a partir de la página 3 ya no se ve nada, la tinta se ha acabado. Es domingo por la tarde y en mi casa no somos previsores, no tenemos cartuchos de tinta de repuesto, ni jeringuillas ni nada que podamos usar para sortear el contratiempo.
Ni corta ni perezosa mi madre me ofrece una solución: coger la impresora de su tienda y traerla a casa, uso ese aparato y todos tan contentos. Pues no. La susodicha impresora es una Canon PIXMA iP2500 y, al menos a priori, no parece querer funcionar sobre Ubuntu 10.10 64 bits. Empiezo a buscar por Internet... vale, lo reconozco, en Google, sólo en Google (los demás buscadores ofrecen resultados tristemente parecidos e igualmente inútiles). ¿Qué encuentro? Pues casi todo son comentarios en foros, escritos la mayoría entre los años 2006 y 2007. En esos hilos se describen procesos rocambolescos para hacer funcionar la puñetera impresora...
Me adelantaré a vuestras dudas, aunque creo que ya ha quedado claro antes: nada funciona. En la página oficial de Canon solo hay un "driver" para Linux. Se colgó allí en mayo de 2007, ofrece supuesta compatibilidad para Fedora 6. Hoy en día Fedora va por su versión 14. Para los que no intuyan el por qué de mi problema: Los formatos de instalador de Fedora y de Ubuntu son diferentes, Fedora trabaja con RPM, mientras que Ubuntu lo hace con DEB. Para hacer las cosas más difíciles, el driver está pensado para arquitecturas de 32 bits, yo trabajo en un sistema de 64 bits. Y para complicarlo ya del todo, es probable que haya problemas de dependencias por culpa de cambios en las apis de la bibliotecas internas del sistema.
Aun con todo, no me he amedrentado y he estado experimentando... para acabar decidiendo que he perdido el tiempo. Ni tan siquiera puedo transformar el paquete .rpm oficial a un paquete .deb con la conocida herramienta alien. Lo más triste es que la herramiente me dice que ha convertido el fichero, pero sin embargo no ha generado nada.
¿Qué conclusiones podemos sacar de esta anecdota? Si somos serios: pocas. Si somos dados a la especulación y el gatillo intelectual fácil: muchas. Soy de los del segundo tipo, y soy consciente del riesgo que comporta, pero por suerte suelo rectificar cuando queda claro que me he equivocado. Ahí van mis conclusiones fáciles.
- No me cae bien la gente de Canon, son unos capullos integrales.
- Haré publicidad negativa de esa empresa cada vez que tenga la oportunidad.
- Esto es más que dejadez por parte de Canon, tiene mucho que ver con estrategias comerciales sucias de cierta empresa llamada Microsoft.
- La herramienta alien (8.81) tiene un bug y no puede tratar bien paquetes .deb antiguos o mal formados.
Bien, ahora vayamos a las conclusiones serias, que también las hay. Hasta hace unas horas vivía en el mundo de Yuppie, creía que cosas como estas ya eran historia, hacía muchísimo tiempo que no me encontraba con problemas de este tipo. Queda mucho camino por recorrer en cuanto a concienciación por parte de las empresas de que los usuarios de Linux también existimos, y sobretodo, de que también somos importantes. Los afectados deberíamos hacer presión, no comprar sus productos, quejarnos cuando nos la juegan de esta manera, enviar emails y publicar acerca de los problemas que nos genera su actitud de plena servidumbre hacia el monopolio de Microsoft.
Que no se hagan drivers para Linux tiene dos vertientes. Una de las caras es la que todos conocemos: la presión por parte de Microsoft para mantener su ventaja por encima de la competencia que Linux les supone. Otra es de cariz más técnico: el diseño del núcleo Linux y su falta de estandarización a nivel de APIs internas provoca que la creación de drivers sea una tarea de verdadera artesanía y maestría. Esto significa que hacer drivers para Linux requiere más tiempo que hacerlos para, por ejemplo, MS Windows, y además probablemente haga falta contratar a un programador mejor dotado, y por tanto, con un mayor sueldo.
Una vez tenemos el driver seguimos teniendo el problema del empaquetamiento. Linux no es un sistema operativo en sí mismo, se trata solo del núcleo, y existen muchísimos sistemas operativos diferentes que funcionan con Linux (las llamadas distribuciones). Resulta que cada distribución funciona con paquetes de software diferentes, tiene configuraciones internas diferentes e incluso su estructura de directorios puede diferir en detalles cruciales de las de otras distribuciones. Esto supone un trabajo añadido, una adaptación para cada una de las distribuciones, o al menos una adaptación para cada una de las distribuciones importantes: Red Hat/Fedora, Debian/Ubuntu, Arch (y alguna más, sin olvidar que por cada distribución tenemos que pensar en versiones para 32 y 64 bits).
Definitivamente hace falta una cierta unificación y estandarización de tecnologías a bajo nivel para el mundo de Linux, en lo tocante a estructuras de directorios, ficheros de configuración y sistemas de instalación. Hasta que no lleguemos a ese punto crucial Linux no tendrá el atractivo necesario para que los fabricantes de hardware dejen de seguir el "mandato" de Microsoft. Más aun, sin convenios y tecnologías comunes en todas las distribuciones seguiremos perdiendo fuerza de trabajo en adaptaciones sin sentido, seguirá habiendo roces en la comunidad y seguiremos sufriendo la desventaja endémica y crónica de la fragmentación en el ecosistema del software libre.
Deberíamos aprender de Apple, y no me refiero a sus prácticas monopolísticas o de censura. Me refiero a su táctica de unificación y simplificación, programar en Mac Os X es facil. Tienen un IDE "canónico" (XCode) muy barato, todas las interfaces se programan con Cocoa, tienen un lenguaje "oficial" (Objective-C) y pasan de Java como de la mierda (es lo que se merece esa plataforma). Todas las demás ventajas se deben a la política del jardín vallado y a trabajar siempre con un conjunto restringido de hardware, cosa que no podemos (ni debemos, ni queremos) copiar. En todo caso creo que la idea es clara: unificación, simplificación.
Volviendo al tema de antes, mi crítica a Canon no acaba aquí. Canon tendría que liberar sus drivers, no tiene excusa, o al menos ninguna que tenga valor. La liberación de los drivers permitiría que la propia comunidad se encargara de empaquetarlos para las diferentes distribuciones, de mejorarlos en caso que hubiera fallos, de adaptarlos para nuevas impresoras de funcionamiento similar. Pero a ellos no les interesa, o eso dicen. ¿La razón? Supuestamente perderían competitividad frente a sus competidores si liberaran sus drivers, se trata de propiedad intelectual que podría ser copiada, ahorrando trabajo a la competencia mientras ellos han destinado dinero y esfuerzo en su desarrollo. Y un cuerno. La impresora PIXMA iP2500 ya existía en el año 2007, eso significa que hace ya más de 4 años que está en el mercado (si es que no se han vendido ya todas las unidades, lo que es casi seguro). ¿Qué tipo de ventaja competitiva perderían liberando drivers de un aparato de hace 4 años? Ninguna. Por otro lado, incluso si lo hicieran en el momento de lanzar el producto al mercado, hay que tener muy en cuenta que esos drivers sirven para sus impresoras, no para las de la competencia, el esfuerzo de adaptación seguramente no valdría la pena, es preferible desarrollar drivers propios para los dispositivos propios.
¿Y qué pasa con la adaptación a las diferentes distribuciones de Linux? Pues que tampoco supone un coste tan alto, tendrían que contratar entre 1 y 2 trabajadores para el empaquetamiento (más probablemente 1 que 2), un coste muy bajo teniendo en cuenta los ingresos esperados. Y aun que doliera el coste (que no duele) ¿nadie se ha planteado que tal vez venderían más impresoras a gente que usa Linux? ¿nadie se ha planteado que su imagen empresarial mejoraría?
Lo dicho, estoy cabreado y pienso ponerlos a parir en cuanto surja la situación.
[Actualización (2012/05/05)]: Aunque ya no tengo ninguna impresora Canon a mano, recientemente he descubierto un PPA en Launchpad que puede ayudar a algunos usuarios de Ubuntu a poder usar algunas de las impresoras de Canon. Para usarlo se tiene que escribir lo siguiente en la línea de comandos (se pedirá clave):
1 2 3 | sudo add-apt-repository ppa:michael-gruz/canon-trunk sudo apt-get update sudo apt-get install cnijfilter-common-3.60 |
Como he comentado, no puedo comprobar que esto funciona correctamente... de modo que me intentaré poner en contacto con el mantenedor del PPA para poder dar algo más de certeza sobre este asunto en breve.