lunes, 27 de febrero de 2017

Software

En informática, la palabra hardware se refiere a aquello que cuando no funciona puede ser golpeado, como la pantalla, el ratón o el teléfono, mientras que el término software hace referencia a aquello que cuando deja de funcionar solo puede ser maldecido (programas como el navegador web o el procesador de textos de turno).

Al principio, el negocio estaba en el hardware. IBM, Hewlett-Packard, DEC y otras compañías por el estilo fabricaban distintos tipos de ordenadores que proveían con un sistema operativo básico para poder ser utilizados. La clave del éxito de Microsoft fue, se supone, pensar que el negocio estaba en realidad en el software. En su trato con IBM a principios de la década de 1980, Microsoft retuvo la propiedad de su sistema operativo, vendiendo en su lugar licencias para su uso. A los directivos de IBM aquello no les importó porque sus ingresos venían de vender máquinas, no sistemas operativos o programas. La trayectoria de ambas compañías desde entonces es de sobra conocida.

Originalmente, el software era diseñado como un complemento al hardware y, en consecuencia, era definido por este último, teniendo que adaptarse el primero al segundo. Con los años la relación se invirtió y ahora es el software el que define al hardware. Quizá se entienda mejor con un ejemplo sencillo. En el modelo de los 80, para poder tener WhatsApp uno debe comprar un teléfono concreto. En el modelo actual, si en un teléfono no se puede instalar WhatsApp dicho producto está condenado.

Imagen de Kovah
Las empresas que nacieron durante la burbuja de las puntocom aún tenían que invertir necesariamente en hardware para ofrecer sus servicios, esto es, comprar servidores. Actualmente, eso ya no es necesario. Desde que Amazon lanzara sus servicios de infraestructura como servicio (y otras muchas empresas como Google se lanzaran a ese mismo mercado) es posible alquilar ordenadores virtuales con distintas capacidades a unos pocos céntimos por minuto. Sobre esa infraestructura virtual se han ido desarrollando nuevos modelos de negocio basados en nuevas abstracciones hasta llegar hasta un servicio como este, Blogger, un software-as-a-service (SaaS) que nos permite hacerlo todo (en este caso, publicar un blog) sin gastar más dinero que el necesario para comprarnos un ordenador desde el que trabajar.

«El software se está comiendo el mundo», escribió el ingeniero e inversor de Silicon Valley Marc Andreessen en el verano de 2011. Se refería al hecho de que empresas principalmente fabricantes de hardware como HP y Motorola estaban languideciendo mientras que firmas cuyo núcleo de negocio era el software (Google, Facebook) iban en ascenso. Según él, este segundo tipo de empresas se irá apropiando de un sector cada vez mayor de la economía:

My own theory is that we are in the middle of a dramatic and broad technological and economic shift in which software companies are poised to take over large swathes of the economy.
More and more major businesses and industries are being run on software and delivered as online services—from movies to agriculture to national defense. Many of the winners are Silicon Valley-style entrepreneurial technology companies that are invading and overturning established industry structures. Over QuickHoney QuickHoney the next 10 years, I expect many more industries to be disrupted by software, with new world-beating Silicon Valley companies doing the disruption in more cases than not.
Allí donde algo que se hace mediante hardware se puede cambiar para ser hecho mediante software se obtienen grandes beneficios en cuanto a flexibilidad, velocidad y gestión. Consideremos la red de telefonía. En sus inicios, para conectar los teléfonos entre sí era necesario conectar físicamente los circuitos; esa era la función de las operadoras. Hoy día, la voz se transmite en forma de paquetes de datos, a veces por esos mismos circuitos, a veces por otros nuevos y más modernos. Lo importante es que ya no es necesario operar en el mundo físico: basta con utilizar un software al uso para poner en contacto a los interlocutores, registrar sus llamadas y hacerles llegar la factura a fin de mes automáticamente. Flexible, rápido, escalable y más rentable.

La infraestructura como servicio de Amazon que he mencionado antes es otro ejemplo de un software reemplazando tareas en el mundo físico. Hace veinte años, montar un servidor web implicaba comprar un ordenador, enchufarlo y conectarlo a internet mediante un módem. Montar dos servidores conllevaba el doble de coste y de trabajo, y conectarlos entre sí suponía tener que comprar más cacharros para ello (y otros tantos para tener cierta protección ante ataques informáticos). Ahora, por el contrario, con los servicios de computación en la nube conectar varios servidores entre ellos y a internet es tan fácil como hacer unos pocos clics en una interfaz web.

Esta flexibilidad, unida a su bajo coste, es lo que ha permitido a empresas como Uber, Airbnb y otras por el estilo su éxito. Los servidores virtuales son la base sobre las que las estas aplicaciones para móviles ofrecen unos servicios que no eran posibles hasta que el software ha empezado a devorar el mundo. El auge de estas nuevas compañías basadas en software y la paulatina desaparición de los modelos tradicionales implica que el ciclo se alimenta a sí mismo.

Desde hace unos años existe un movimiento en el sector tecnológico que equipara la programación (esto es, la creación de software) a la alfabetización, y propone que todo el mundo aprenda a programar. Personalmente, dudo que la propuesta tenga éxito a la larga, de la misma forma que no todos hemos acabado siendo mecánicos (salvo nuestros cuñados) a pesar de estar rodeados de vehículos. Téngase en cuenta, además, que actualmente el software hay que escribirlo (literalmente) y las máquinas son muy exquisitas con la sintaxis; sospecho que alguien habituado a una gramática del tipo «ola k ase» difícilmente puede llegar a ser un programador productivo.

Algunas personalidades del mundo de la programación, como Jeff Atwood, se han opuesto desde el principio a esta propuesta llamada «programación para todos». De todos sus argumentos quiero resaltar el siguiente: el software no es un objetivo en sí mismo. Los programas existen para solucionar problemas, no porque tengan valor intrínseco. De hecho, a pesar de la enorme importancia que tiene el código informático en el mundo moderno, su valor de mercado no ha dejado de devaluarse:

This is the Software Paradox: the most powerful disruptor we have ever seen and the creator of multibillion-dollar net new markets is being commercially devalued, daily. Just as the technology industry was firmly convinced in 1981 that the money was in hardware, not software, the industry today is largely built on the assumption that the real revenue is in software. The evidence, however, suggests that software is less valuable –in the commercial sense–than many are aware, and becoming less so by the day.
Esto ocurre porque el software en sí es cada vez más un facilitador de ciertos modelos de negocio como la economía de la suscripción de la que ya hablamos y cada vez menos un producto.

El código informático es una herramienta muy poderosa y, como suele ocurrir, sus virtudes también hacen de él una herramienta peligrosa. Permite, verbigracia, a las empresas controlarnos y manipularnos constantemente y a gran escala. Los gobiernos pueden, además de vigilarnos y extender su propaganda, aplicar cómodamente un surtido florilegio de comportamientos autoritarios, desde la censura hasta el robo. Y lo que es peor: en ocasiones pueden hacerlo sin que los ciudadanos se den cuenta siquiera. Actualmente unas pocas líneas de código pueden bastar para hacer añicos derechos que llevó siglos adquirir. Cuantos más aspectos de nuestra vida pasan a estar controlados por programas informáticos, mayores son los riesgos en este sentido.

Existen también otros peligros que no tienen que ver con nuestra naturaleza y el uso que hacemos de la tecnología, sino que son intrínsecos a la herramienta. Como ya argumenté en su día, la manera en la que hacemos software aún no es suficientemente madura, lo que hace que el producto final esté lleno de problemas de seguridad y errores de fiabilidad. Los millones de programas existentes se comunican entre sí dando lugar a complicados sistemas cuya complejidad se nos escapa, lo que hace imposible predecir su comportamiento en cada situación y, en consecuencia, valorar adecuadamente el riesgo.

Por tanto, la cuestión quizá sea ahora cuándo parar. En algún momento deberíamos darnos cuenta de que no hace falta gestionar absolutamente todo desde nuestro teléfono móvil o que no es necesario conectar nuestras ollas de cocina a internet. No poner límites podría suponer acabar devorados por el software de la misma forma que el espacio urbano acabó siendo devorado por nuestros coches, con la diferencia de que el código informático puede tener el control de muchísimas más áreas de nuestra vida.

No hay comentarios:

Publicar un comentario