sábado 28 de enero de 2012

El Universo cachea la rutina


Al universo le viene bien la rutina de la gente. Sí porque la rutina son tareas repetitivas y como todos sabemos, las tareas repetitivas se cachean muy bien. Ahora que sabemos que el universo es sólo información, todo software (igual alguno no lo sabíais aun), podemos entender que todo lo que sucede en el no son más que procesos que se ejecutan en una especie de macro sistema operativo. Los que no creáis que sea así, no podéis negar que resulta cuanto menos sospecho las analogías entre el software que desarrollamos y la forma en como se comporta el universo.

Si en tu ordenador abres el Excel, lo cierras, lo vuelves a abrir, y lo repites varias veces, verás que las últimas veces se abre casi al instante, mucho más rápido que la primera vez. Esto es porque el sistema operativo ha metido en memoria caché (ha cacheado) el programa Excel. La memoria caché es una memoria muy rápida en la que se almacena lo último que se ejecuta, esto es, el presente.
Quiero decir con esto que el universo cachea el presente. Y si tu presente es muy repetitivo, muy rutinario, tanto mejor para el universo. Y eso explica porque nuestro cerebro (o nuestra alma o nuestra fuerza vital o como lo prefieras llamar), como un proceso más del universo,  favorece y agradece la rutina. Por eso eso nos cuesta tan poco coger hábitos y tanto dejarlos.

Las tareas que hacemos de forma rutinaria, aquellas que hacemos con el piloto automático, como cocinar nuestro plato favorito, conducir en el atasco diario, o trabajar en una cadena de montaje, son tareas que consumen pocos recursos a nuestro cerebro porque están cacheadas. Hay centenares de publicaciones que explican, a nivel neurológico como se crean las conexiones necesarias en nuestro cerebro para que una tarea se convierta en un hábito, esto es, se cachee. Incluso sabemos que podemos hacer pre-fetch, esto es, cargar en memoria un programa que sabemos que dentro de poco vamos a ejecutar, para que cuando lo ejecutemos, éste se cargue mucho más rápido. Los gimnastas de élite lo saben bien, que repiten mentalmente sus movimientos hasta la saciedad, visualizándolos; porque saben que eso crea las conexiones neuronales que facilitan que luego el ejercicio resulte como lo han visualizado.

En realidad, y voy ir un poco más allá, no sólo le interesa la rutina al universo, sino que también favorece el reposo. Por eso todo tiende al reposo, al equilibrio. Esto es algo que numerosas corrientes filosóficas y religiosas defienden desde hace siglos (como el Budismo o el Taoismo).

Todo tiende al reposo porque así el universo, ese gran procesador de ceros y unos, no tiene que gastar ciclos de reloj en mostrarnos algo cambiante a cada instante.

Una buena analogía es el vídeo digital comprimido. Cuanto más se parezca un fotograma al anterior, o sea, cuando menos cambie la imagen, mejor se comprime esta y menos trabajo al procesador para reproducir ese vídeo.
Un ejemplo más aproximado, es un videojuego de estos modernos en 3D. Cuanto menos se mueven los objetos en la pantalla, menos tiempo gasta el procesador renderizándolos (dándoles forma, texturas, luces, etc).

Esta analogía de los videojuegos 3D nos sirve para entender otro curioso fenómeno del universo. Y es que, al igual que al igual que en éstos, el sistema no tiene que molestarse en pintar (renderizar) en detalle los objetos muy lejanos. Piensa que el universo considera a la humanidad como un único observador. Por eso todo el universo exterior, lo que está más allá del sistema solar, está muy vagamente definido. A medida que los más innovadores inventan telescopios nuevos, obligan al sistema a que renderice con más detalles cosas como la superficie de Marte o Venus.
Antes, hace un par de milenios, el universo conocido en detalle se limitaba al planeta Tierra, y tampoco se tenían muchos detalles. Si alguien hubiese ejecutado un comando “top” al universo para ver la carga del sistema, habría visto que estaba que éste se ejecutaba holgadamente.
Pero hoy día, con miles de personas mirando por telescopios a diario, incluso escuchando con radiotelescopios, estamos dándole trabajo al sistema. Seguro que éste preferiría que todos estos científicos se fuesen de pesca en lugar de obligarle a inventarse nuevos modelos y texturas para galaxias lejanas.
O quizá aun le de igual, porque a pesar de todo, puede aun se esté ejecutando al 10% de su potencia. ¿crecerá con el tiempo la capacidad de proceso (básicamente la RAM) del universo?
Pues lógicamente no tengo ni idea, pero me gusta pensar que es finita y que para compensar la sobrecarga que suponen los nuevos descubrimientos en astronomía, el universo se vale un arma muy eficiente para reducir la carga del sistema: la virtualización.
Como ya he comentado repetidas veces, la virtualización es el proceso de convertir algo que antes era mecánico en software. Es decir, a medida que convertimos la materia en software le quitamos trabajo al universo, porque el software no tiene que renderizarse, no tiene que mostrarse como materia.

Cuando tengamos móviles que se cargan con el aire (o la luz del sol), que proyecten imágenes en el aire y con altavoces de lujo, desaparecerán de nuestro entorno cosas como la red eléctrica, televisores, equipos de música, etc. De hecho, en muchas casa ya no hay teléfono fijo (con su cableado), ni relojes en las paredes (con sus pilas), ni linternas, ni equipos Hi-Fi, entre otras muchas cosas. El que todo eso desaparezca, además hace que se necesiten menos barcos para traer toda esa electrónica desde extremo oriente. Y por ende que se consuma menos combustible. Y por ende menos maquinaria para extraer petróleo. Y por ende menos fábricas de acero para las plataformas de extracción. Y así sucesivamente.
Toda esa materia son menos cosas que el universo tiene que renderizar, lo que permite que se dediquen esos ciclos de reloj a descubrir cosas nuevas, por ejemplo, planetas nuevos.
Deduzco pues, que ante la imposibilidad de volvernos a todos absolutamente rutinarios (no nos habrían otorgado inteligencia si el sistema quisiese que fuésemos tan rutinarios como un mono), el universo ha encontrado la solución perfecta para que podamos seguir haciendo todo lo que se nos antoje, de una forma más eficiente: que haya menos materia y más software.
El ejemplo más ilustrativo de como esto está pasando es el de la virtualización del hardware. Esto que empreas como VMWare han hecho con el hardware está pasando con todo lo tangible. Al final todas las máquinas serán un procesador que ejecuta software, una microscópica fuente de alimentación y millones de sensores muy pequeños por todos los sitios informando sobre todo lo que detectan.

Y lo curioso, es que a medida que aligeramos la carga del sistema de esta manera, se nos muestran nuevos y más lejanos horizontes. Es como si el universo nos dijese: fabricad menos cosas materiales y os dejaré que descubráis algo más sobre el ADN o la Vía Láctea.

De hecho, así ha sido siempre, especialmente las últimas décadas (desde que existe el software, vaya). La aparición del software ha reducido drásticamente el consumo de materia (sólo con la cantidad de CDs y papel que ya no se usa hemos dejado de usar millones de toneladas de materia).
Sigamos pues convirtiendo todo en software, sigamos globalizándonos (para que todos usemos además el mismo software), y el Universo (o Dios, o Gaia, o el Tao si lo prefieres) nos recompensará con nuevos avances que nos permitirán disfrutar de una vida más larga y más plena. Cuanto más eficientemente se ejecute el UniverSO, mejor para todos.

Mi gran duda es ¿llegaremos a virtualizar la vida? ¿podremos librarnos de nuestros límites biológicos? Si crees que sí, ¿qué sentido tiene seguir explorando el espacio exterior, el microcosmos o el propio planeta Tierra? En un mundo totalmente virtualizado todo sería posible. No necesitaríamos buscar planetas con vida en otras galaxias, sencillamente los crearíamos a nuestro antojo.
¡Qué curioso resulta descubrir que hay gente que ya cree que estamos en ese mundo! Como seguramente no serás uno de ellos, ¿crees que eso está muy lejos aun? Pues piensa que ya hay gente cuya vida social se limita a Internet y para los que comer, beber o sencillamente respirar no es más que un fastidio, una limitación. ¿Enfermos? ¿Visionarios? El tiempo nos lo dirá.

domingo 20 de noviembre de 2011

RIP Javascript


Si haces aplicaciones web, es probable que programes en Java, en .Net, en PHP, perl o cualquiera de los otros muchos lenguajes de programación disponibles, pero en la capa vista, en el interfaz, sólo puedes usar una cosa: Javascript.
Casi me atrevería a decir que hoy, practicamente todos los programadores saben más o menos de Javascript. Salvando las cuatro cositas hechas en flash, el resto de interfaces web usan Javascript intensivamente. Vaya, eso una responsabilidad muy grande a los hombros del Javascript... ¿está preparado para ello?
Pues mi opinión es que no. No se diseñó con esa idea en mente, pero con la llegada del ajax inició una época dorada que se encuentra en su pleno apogeo hoy día. Sin embargo son cada vez más la voces que nos alertan sobre el peligro del Javascript.

Os las voy a resumir con una analogía. El javascript es como el petróleo, es insostenible. Lo del petróleo lo tenemos claro. Todos sabemos que cada vez más gente va a poder comprar un coche, pero si seguimos haciendo motores que utilizan combustibles fósiles, al margen de que hayamos rebasado o no el pico petróleo, vamos a morir todos envenenados por los excesos de contaminación. El mundo empezaría a agonizar si no lo frenamos... y si no lo hacemos ya lo hará la propia naturaleza en forma de huracanes, sequías y terremotos como profetizan los acérrimos defensores de la naturaleza.

Con el javascript pasa algo similar en el mundo on-line. En su día vino muy bien, como vino bien el petróleo, pero ultimamente estamos abusando de su uso, sobre todo porque es tóxico.
Si habéis hecho una aplicación web grande en los últimos 2 años, seguro que habéis usado bien de Javascript. O mejor dicho, seguro que habéis picado buenas retailas de sentencias jquery. Porque, la verdad, parece que no haya vida más allá de Jquery.

Jquery, gracias a su increíblemente llana curva de aprendizaje, junto a su facilidad para extenderlo se ha convertido en el estándar de facto para gestionar el interfaz de uso en las aplicaciones web.
¿Y cual es el problema de esto? os estaréis preguntando muchos, pensando que a priori no tiene nada de malo, sino todo lo contrario. Pues como anunciaba al principio, que Javascript no está diseñado para esto. Aunar a la comunidad de desarrolladores en torno a un único lenguaje es sin duda algo grandioso. Pero deja mucho que desear comparado con los modernos lenguajes de programación. Su refactorización, así como su testing es pésimo, y un lenguaje para hacer software, para facilitarnos la gestión del cambio, que no es capaz de gestionar el cambio en su fuero interno, es que no cumple bien su misión.
Si queremos que el mundo on-line siga simplificándonos la vida, evolucionando hacia nuevas y más gratificantes experiencias, no podemos arrastrar ese lastre. Igual que el mundo off-line no puede permitirse seguir quemando (o vertiendo) derivados del petróleo.

En ese sentido hay un debate en la comunidad de desarrolladores sobre si hay que mejorar el javascript, lijando sus imperfecciones, o desarrollar algo nuevo de cero.
Yo soy partidario de la segunda opción. La primera me parece como los motores diesel de bajo consumo y bajas emisiones... un parche... pan para hoy y hambre para mañana.
Igual que la industria del off-line parece que ya lo ha asumido y empiezan a sacar coches eléctricos (rompiendo por completo con el petróleo), el mundo on-line debería tomar ejemplo, romper con el Javascritp y sacar un lenguaje nuevo, desde cero, que sea ideal para el desarrollo de la capa vista.
Hay varias alternativas interesantes para la primera opción (mejorar Javascript) como CoffeScript o BackBoneJS. Pero insisto, eso es meter la basura debajo de la alfombra: algún día te acabas arrepintiendo. Las deudas técnicas hay que pagarlas, dice otro de los grandes principios de la arquitectura software.
Parece ser que Google (yo estoy de acuerdo) tiene claro que el futuro es web, el futuro es del HTML. Pero no del Javascript. Y por eso, pensando en la segunda opción, están desarrollando DART, un lenguaje nuevo, con sintaxis similar al C y al Java (y a cualquier lenguaje orientado a objetos moderno). Vamos, que no costará mucho aprender a los programadores con callos en las yemas.
Estoy seguro de que el lenguaje será excepcional, pero, ¿cristalizará en la comunidad?
Pues no lo tiene fácil. Por muy abierto que lo ofrezcan, el resto de navegadores tendrían que soportarlo de forma nativa, y claro, no todos los navegadores tiene el presupuesto ni la fuerza de desarrollo que tiene Google para afrontar el cambio.

En realidad, como Google ya ha saboreado el fracaso más de una vez, están haciendo que DART pueda generar Javascript, por si los otros navegadores no quieren migrar a DART. No olvidemos que algunos de los otros navegadores son de empresas, que, bueno, no son amiguitos de Google precisamente: Apple, Microsoft. Vamos que no le van a abrir las puertas a DART. Y de hecho, Microsoft está apostando mucho por el Javascript, que lo va a meter en su IDE Visual Studio y en el Office, pero yo lo considero otro error de Microsoft que parece no acertar nunca con su estrategia en el mundo on-line.
De momento Google no ha contado mucho sobre DART; parece ser que lo hará en breve. Veremos que acogida tiene. Parece ser que se va a hacer al estilo Java y .NET, con máquinas virtuales.

Yo pienso que si no fuesen tan egoístas todos ellos, hablarían y diseñarían DART entre todos.
El único problema que le vería a eso es que, si más adelante todo el mundo sabe DART porque todos hacemos ya aplicaciones web ¿porqué mantener esa fragmentación de lenguajes en la parte del servidor? Si son capaces de consensuar a la comunidad desarrolladora en un lenguaje porqué no aprovechar el tirón y usarlo para todo?
¡Ala! olvida todo el java que sabes y ponte a aprender DART :-)
En realidad, no creo que fuese tanto problema. Lo cierto es que cada vez picamos menos código que no tenga que ver con el negocio. Es decir, todo lo relativo a las bases de datos, a comunicaciones, persistencia, cache, MVC, etc. viene cada vez más fácil de modo que sólo hay que configurar más que programar (gracias Rod Johnson ;-) ). Así que te centras en hacer el código propio de tu negocio, y eso, en general, da casi igual en qué lenguaje lo hagas.

- Venga, compro, ¿y para cuando dices?

Aaaaamigo. Obviamente no antes del 2012 :-) Aun dando por hecho que DART está casi acabado y que es genial y no tiene bugs, espero que antes de que acabe el 2012 tengamos claro si el futuro será del javascript mejorado o del DART (o análogo).

Lo que más me preocupa es que actualmente la comunidad de desarrolladores está llena de gente que apenas llevan 3 años haciendo javascript. Y si no corre sangre geek por tus venas no estás programado para abrazar el cambio como el que supone abandonar un lenguaje para aprender otro nuevo. Esa es una gripe que algunos hemos pasado tantas veces que ni nos preocupa. Entre comillas.
Ahí tenéis la respuesta a la pregunta del cuando: cuando los recién incorporados entiendan que ésta es una profesión de cambios constantes a velocidades de vértigo.
Así que os pido a los recién llegados: asumid el cambio como algo bueno y necesario o abandonad esa profesión. Sí, porque no os engañéis, no va a ser lo que diga Apple, o Microsoft o Google. Va a ser lo que digamos la mayoría. Mirad lo que le ha pasado al Flash... La mayoría no lo hemos adoptado y al final, se está quedando para hacer videojuegos y poco más (y acabará desapareciendo, por supuesto).

El mundo es cada vez más on-line como siempre digo. Cada vez más software que se desarrolla con herramientas software. No podemos asentar ese mundo on-line con cimientos que sabemos no son óptimos. Lleve el tiempo que lleve. Abandonar el javascript es un pequeño paso atrás para poder avanzar otros 50 pasos. La arquitectura del mundo on-line también necesita refactorización continua.
RIP Javascript. En su epitafio pondrá: bastante hice.

domingo 16 de octubre de 2011

Piensan en mí luego existo

Cuando era muy pequeño iba mucho al parque del Retiro con mis padres porque mi abuelo tenía allí un puesto de helados. En frente de éste solía instalarse un teatrillo de títeres que reunía muchos niños sentados en el suelo, viendo las aventuras del títere protagonista llamado Chupagrifos. Eran historias bastante simples en las que sólo había cuatro personajes: Chupagrifos, la bruja, el rey y la princesa (creo recordar).
El caso es que cuando la bruja empezaba a hacer maldades, lo niños allí sentados gritábamos CHUPAGRIFOOOOS y entonces éste aparecía y le pegaba con su garrote a la bruja. Lo recuerdo como divértidisimo.

Un día que fuimos un poco más tarde la función ya había empezado y nosotros llegamos por una calle que pasaba por la parte de atrás del teatrillo. Pude entonces ver que Chupagrifos y los demás eran unos muñecos de trapo que se calzaban en las manos dos humanos escondidos detrás del –con razón tan alto– escenario. ¡Qué decepción!, Chupagrifos no existía en realidad.
Las siguientes veces que me senté a mirar la función de Gupagrifos ya no me hacía tanta gracia. Pero poco a poco volvió a gustarme y volví a disfrutar llamando a gritos a Chupagrifos. Sabía que el héroe venía porque los titiriteros nos oían gritar, y siempre que aclamábamos a Chupagrifos éste aparecía. Las aventuras de Chupagrifos no eran menos divertidas por el hecho de saber que, de algún modo, teníamos el control sobre el discurrir de las historias de los personajes.
Entender que los títeres hacían lo que nosotros queríamos me dejó una sensación amarga al principio pero dulce después.
Sensación que vamos a tener todos como se confirmen los últimas y más vanguardistas teorías de la mecánica cuántica.

Para que entendáis que postulan y no penséis que me he vuelto loco, os voy a recomendar estos dos documentales:

http://www.rtve.es/alacarta/videos/redes/redes-incertidumbre-del-universo-cuantico/1094700/

http://www.megaupload.com/?d=U47R4GET

El primero es del archirreconocido Punset, una de las personas con más credibilidad a día de hoy. El segundo empieza como muy sensacionalista, pero luego se torna más serio e impactante.

Para los que no tengáis tiempo de verlo, os los resumo en cuatro palabras:
El estudio de las moléculas, los átomos, los electrones, el interior de las partículas subatómicas y demás, ha llegado a una increíble conclusión: la materia no existe, sólo en el momento en que se observa se nos muestra de una manera concreta. Nada existe, nada es real sólo cuando pensamos en ello se nos hace visible.
Es tan difícil de explicar con pocas palabras que la voy a expresar de una manera que todavía hoy no he oído a ningún científico, y que probablemente sea la forma más fácil de entenderlo: no existimos, somos un programa informático. Somos como personajes del SIMS, ese famoso videojuego en el que manejas a un personaje que lleva una vida similar a la nuestra, en un mundo virtual creado por los programadores del videojuego, en el que la única misión es crecer, vivir, ser feliz en definitiva. Somos como un personaje de esos, pero imaginad uno de ellos cuando lleguen a la version 60.1 (van por la 3.0). Pero con una peculiaridad, los personajes del SIMS son autónomos, no los maneja nadie. Los personajes del vieojuego serán tan listos que serán capaces de crear objetos complejos o transformar unos materiales en otros. Podrían llegar a crear una lupa, incluso un pequeño microscopio. ¿Y que verán cuando se miren un pelo en el microscopio? Pues el programa se inventará algo... o mejor dicho inventará lo que cree que verá el primero que mire. Si éste piensa que verá que el pelo está hecho de cubitos elásticos, pues ala, así va a ser el pelo. Y si miran con un microscopio más potente a ver de que están hechos los cubitos esos, pues el primero que mire decide sin saberlo, sólo con imaginarlo, de qué están hechos. Quizá se le ocurriese que están hechos de tiras helicoidales como el ADN.
Y cuando tengan microscopios electrónicos, en la versión 95.0, habrán visto que las tiras helicoidales están hechas de algo que han llamado tropéculas, a su vez compuestos de fátomos, como se le ocurrirá llamarles al primero que mire por ese microscopio. Y luego miran en el interior de los átomos y ven, qué se yo, unas cuerdas que vibran, y dentro de las cuerdas... BASTA. El sistema se rinde, y nos dice: que no hostias, que no hay cuerdas, ni átomos, mi moléculas, ni mierda, que me dejéis ya en paz, que no existís en realidad, que sois software.
El exceso de recursividad en la búsqueda de la materia cada vez más pequeña ha llenado el heap de sistema, ha saltado una OutOfMemoryException y en el catch se ha llamado a la función explicarLaVerdadAEstosAtontaos().
Para mí, esta es una de las claves. Y me sorprende no se pregunte más gente: ¿hasta donde vamos a seguir buscando la partícula más pequeña de materia? ¿Habéis visto lo de la teoría de cuerdas? Que el universo es una especie de tubo gigante y en el interior de cada átomo hay una especie de cuerdas (abiertas o cerradas según versiones) que son como el universo en sí mismo.
¡Venga ya! Suena a las típicas elucubraciones absurdas que hacemos cuando vemos un truco de magia espectacular.
Lo que pasa es que la verdad cuesta asumirla, como me pasó a mi con Chupagrifos, y como nos ha pasado a muchos al descubrir que los Reyes Magos son los padres, que el Dios que nos han contado no existe. O como costó asumir que la Tierra era redonda, o que ésta no era el centro del universo. Porque como bien dice Punset, uno de los lastres de nuestra sociedad es lo terriblemente cabezones que somos; nos cuesta mucho cambiar de opinión.
Si esto de que somos software es cierto, se sabrá de forma simultánea en todo el mundo y eso puede provocar un colapso mundial. Reveses como saber que la Tierra no es centro del universo se supo en una época en la que las noticias viajaban muy despacio y con poca credibilidad (por las barreras que levantaba la religión).

Si algún día se demuestra que la materia no existe, hay que recordar la historia de Chupagrifos: Saber que tenemos el control del juego no es menos divertido, al revés. ¿Qué más da que estemos hechos de átomos (materia) o de bits (software)? Si vamos a seguir aquí igualmente seamos reales o no. Así que si hay que jugar, juguemos Y entonces empieza la serie de preguntas sin respuesta, a las que voy a responder. Por opinar que no quede :-)
Preguntas como ¿y cada uno puede decidir que le suceda lo que quiera?
Pues obviamente no. El sistema que nos gobierna debe ser como una red neuronal de la que todos somos parte, y que se gobierna por una especie de algoritmo similar al que usa Google para elegir qué página es la primera que te muestra cuando buscas algo. Es decir, si mucha gente pone un enlace a tu página, entonces sales entre los primeros resultados de la búsqueda. Del mismo modo si mucha gente te aprecia, te quiere de verdad, se preocupa por ti, te escucha, te respeta, entonces te irán bien las cosas. Y del mismo modo, no es lo mismo que te quiera un presidiario criminal confeso al que todos odian, que un generoso empresario respetado como pueda ser Warren Buffet. Como no es lo mismo que te ponga un enlace la home del NewYork Times, que la home de este blog que nadie lee :-)
Así que si miles, millones de personas leyesen mi blog, y les gustase lo que leen, y me enviasen emails de agradecimiento, y en definitiva pensasen bien de mi, empezaría a irme mucho mejor. Vaya, ¿acaso no es eso cierto?. Seguro que alguien me ofrecería escribir en un sitio mejor con mucho dinero de por medio. Ya sabemos todos como va esto, cuanta más audiencia más cobraría por escribir. Trabajaría poco y ganaría mucho ¿Acaso no es eso irme mejor, por lo menos en lo profesional? El sistema ha detectado y ponderado todos esos pensamientos y me ha presentado una realidad, un día a día, a pedir de boca. Piensan en mí, luego existo.

Esto me trae a la memoria un artículo muy antiguo publicado en la revista Wired, en la que el autor presenta una hipotética sociedad en la que la moneda de pago es la atención. Cuanta más te escuchan mejor te va. En su día pensé “qué tontería”; ahora tengo ganas de volver a leerlo.
Por que el objetivo, a falta de algo más concreto, parece ser disfrutar del tiempo que tienes asignado.
¿Y por qué nos morimos? Aquí va otra respuesta de las mías :-) Porque pensamos que tiene que suceder. Y quizá, porque la gente que pensaba en ti también va muriendo. Cuando ya muy poca gente piensa en ti, va llegando tu fin.

Parece como si el sistema hubiese puesto una especie de requisito que dijese: venga, todo es posible, pero curráoslo un poco, tiene que convencer a todo el mundo. Algo así ya especuló Einstein. Por eso no vale hacer una campaña de marketing global diciendo: “tengo la pastilla que cura el cáncer” haciendo creer a todos que es posible. No vale porque la van a mirar por el microscopio y la van a ver en acción, como interactúa a nivel celular, incluso a nivel molecular, y tiene que funcionar dentro de lo que creemos posible. Y sin embargo sabemos que a menudo los placebos funcionan ¿como se explica eso?

Nos hemos inventando unas reglas que probablemente nunca podamos romper como la fuerza de la gravedad, pero otras, como vivir 1000 años con salud plena, parece más alcanzable. Cualquier día de estos un científico visualiza una solución para conseguir regeneración celular instantánea, o qué se yo, que nos mantiene jóvenes 1000 años.
Y es que al final, da igual que seamos materia o que seamos software. Hay que jugar. Lo que pasa es que ahora que sabemos (los que se crean todo esto) que tenemos el control sobre lo que nos depara el futuro, hay que organizarse para evitar el sufrimiento. Hay que evitar que nadie piense mal en nadie. Vaya, que tontería, eso no parece que vaya a suceder; es como lo de librarse de la gravedad... no lo veo. Y es que una vez más, que más da que seamos materia o software, si ambos mundos funcionan igual. Incluso con las mismas incertidumbres, porque, vale, nos morimos de viejos porque nos creemos que hay unas cosas que se llaman células que se oxidan y empeoran en cada división y acaban muriendo. Pero, ¿por qué alguien joven y demostrablemente querido por centenares si no miles de personas sufren un accidente o enfermedad mortal? Hay por desgracia demasiados casos. ¿Acaso había millones de personas que les odiasen? No. Es un misterio. En el mundo de la materia pensamos que Dios le ha reclamado, o que fue la casualidad, o la mala suerte. En el mundo del software... no lo sé. Quizá sólo sucede porque creemos que es posible. Y quizá por eso ha surgido la gripe-A... normal, tanta película de infectados en la cartelera, tanta gente pensando en una pandemia que se extiende a toda velocidad, que al final se materializado. Gracias (¿a dios?) que somos más los que no queremos que eso suceda y pensamos que es una chorrada imposible. Con nuestros pensamientos hemos frenado un poco la tragedia hasta dejarla en una simple gripe.

Los físicos cuánticos que postulan todas estas teorías que yo he expuesto en términos del mundo del software, tampoco tienen una respuesta para ¿quién nos ha creado?
¿Quién nos ha programado?, que diría yo. Otra vez, que más da. ¿Acaso será relevante para un personaje del SIMS v98.0, saber que corren bajo una máquina virtual java en un sistema operativo ejecutado sobre un Intel core-i5? Eso no va a cambiar su vida en nada. Así que, si este es nuestro caso, ¿qué sentido tendría seguir preguntándonos de donde venimos?

Entonces, vale, no nos preguntamos de donde venimos, pero, ¿cual es la misión?
Pues puestos a imaginar yo diría que en realidad no hay ninguna misión. Sencillamente es un sistema que tiende al reposo. Y lo cierto es que todo lo que sucede en nuestro universo tiende al reposo. Todo se rige por la ley de que los excesos se pagan (y se compensan).
El sistema nos da libre albedrío pero si nos descompensamos yendo hacia un sitio, sucederán cosas que compensarán tirando hacia el lado opuesto. Como si fuéramos agua en un cuenco que es agitado.
Nuestro mundo, el mundo que consideramos material, si lo pensamos, también tiende al reposo. A medida que todo se virtualiza como ya he contado en otros posts, hace que desaparezcan partes físicas y con ello desaparece movimiento; esto es, más reposo. ¿Hasta donde llegará la virtualización? Mira que con los ordenadores cuánticos, si llegan algún día, metes todos los data centers del mundo entero en una habitación pequeña. Quizá lleguemos a tal nivel de virtualización que absolutamente todo está virtualizado, viviremos todos en un megaprocesador en un búnker y entenderemos que, oh, sí, resulta que sí que se puede ser totalmente virtual. Y entonces el sistema se reinicia y empieza otro big-bang virtual :-)

Obviamente todo esto parece sacado de una escena de película en la que el protagonista se ha comido un tripi y empieza a soñar. No me toméis por loco. No digo que vaya a suceder; no al menos mientras no podamos acceder al cerebro como si fuese un disco duro. Si algún día conseguimos volcar la información del cerebro, y no sólo la memoria, también el pensamiento, entonces, podríamos pensar que ese escenario sería posible.
En ese escenario, a medida que fuésemos virtualizándolo todo ¿qué haríamos con los animales? ¿y con las plantas? Porque los seres con cerebro quizá se pudiesen virtualizar, pero ¿una medusa? ¿para qué? Mejor nos programamos una virtual pero que no pique, sin veneno.
Porque en ese mundo virtual que nos crearíamos, supongo que viviríamos en un planeta, pero lo vamos a programar de modo que no haya terremotos ni desastres naturales en general.
Pero nuestro mundo fuera de ese escenario virtual, seguiría existiendo, y el búnker donde está el procesador cuántico donde vivimos todos virtualizados, podría sufrir un terremoto en cualquier momento, y partir ese procesador por la mitad y adiós a la humanidad en un segundo :-)
Y ojo porque por entonces, en la versión 145.0 del SIMs los personajes ya habían inventado el software y se están programando ya la versión 2.0 de su propio SIMs.
Mundos virtuales dentro de mundos virtuales. Ya lo anunciaba la película Matrix.

En cualquier caso, nada despeja la duda de cual fue el primer y genuino mundo, del que vinieron todos los demás... o si vino de la nada, como expone el big-bang. No sé, puestos a creer, se me antoja más creíble la historia de que de la nada surgió software (0 y 1) que de la nada surgió la tabla periódica. Mira que simple y elegante la primera opción, la de sólo dos estados 0 y 1, frente a la segunda opción, con toda la complicación que conllevan los átomos y en general la física y la química.

Vale entonces tenemos que de la nada surgió un software que ha creado mundos virtuales. Pero, donde entran los humanos, o sea, nosotros, los observadores.
Otra gran pregunta sin respuesta. Quizá por generación espontánea como nos han contado siempre que se creo la vida. Ambas teorías me parecen igual de increíbles. Quizá el software empezó siendo muy simple, algoritmos muy básicos que como mucho representaban una ameba. Pero con software se hizo más software y cada vez más complejo. Esto sabemos que es posible porque ya hoy día lo hacemos.
Quizá en algún momento, un algoritmo llamado chimpancé descubrió que era capaz de generar nuevo software de la nada y así surgió la inteligencia y con ello la conciencia de sí mismo y la conciencia de que podían cambiar el mundo; y lo hicieron. Ala, ahí tienes el origen las especies virtuales.
Qué absurdo suena, verdad. Bueno, igual de absurdo que lo que sabemos del mundo real, nos lo cuenten los físicos o los religiosos.
   
Como todas estas teorías son indemostrables sería tan absurdo creer en ellas como creer en el Cielo y el Infierno que nos pintan las religiones abrahámicas. Sólo una cosa me puede inclinar a pensar que son ciertas, y es que ese mundo virtual del que venimos es justo al que nos dirigimos, cerrando así un círculo.

Parece que falta de alguna revelación mayor, el mensaje que nos dan es: dediquémonos a vivir y a ser felices y dejemos de preguntarnos tanto por nuestro origen. Centrémonos en minimizar el sufrimiento en lugar gastar tantos recursos en averiguar de qué está hecha la materia. Que da igual lo que seamos. Ya hemos visto, que al final, las reglas del juego son practicamente las mismas, seamos materia o sólo información.

miércoles 17 de agosto de 2011

El fin del mal


Siempre digo que la humanidad necesita una invasión alienígena hostil. Sería la única manera de que todos los pueblos se uniesen para luchar juntos, aunando sus conocimientos. Se dejarían de tonterías y disputas por diferencias insignificantes. Al ver a los alienígenas, entenderíamos de una vez lo iguales que somos todos los integrantes de la raza humana.

Pues bien, si mis predicciones (que ahora os cuento) se cumplen, puede que no haga falta esa invasión. De eso se va a encargar la globalización y la virtualización como su humilde siervo.

La globalización tiene mala fama en según qué entornos, y aunque es cierto que trae ciertas injusticias, es una gripe que se tiene que pasar, como las que tienes cuando estás dando el estirón y dejas de ser un niño para ser un adolescente. Con el tiempo, según avanza la globalización, esas gripe-injusticias se pasarán. Algunas empresas poco solidarias aprovechan esos gaps que con el tiempo se irán estrechando. Me refiero a esas empresas que fabrican sus productos en Asia pagando miserias a sus empleados y permitiendo que trabajen incluso niños.

A pesar de que es cierto que la brecha digital, la que separa a los países tecnologizados de los que no, se va abriendo más y más, lo que viene después es una facilidad increíble para fabricar puentes que unan ambos lados de la brecha. Muchísimos puentes. Tantos que ambas orillas parezcan un mismo continente.

Es difícil de creer (sobre todo si eres un pesimista), pero voy a intentar explicarlo. Esta es la explicación simplificada, y a continuación la desarrollaré un poco:


Cada vez más todo es software (todo se virtualiza), así que los maquinistas, manipuladores, mecánicos, y en general toda la industria, se van a convertir en desarrolladores de software, y, ¡oh!, sorpresa, el software se puede desarrollar desde cualquier parte del mundo. Con ciertas limitaciones lógicamente, pero es fácil montar un equipo de desarrollo con 10 indios, 20 chinos, 5 rusos y 5 españoles.
El dinero se va a empezar a mover a la velocidad del software, lo que hará que se reparta mucho mejor. Y aquellos países ahora pobres como la India, van a ser inmensamente ricos gracias a la gran apuesta que están haciendo por el desarrollo de software.

Para entender cómo se virtualiza el mundo, fijaos en este ejemplo. Las compañías de teléfono como Telefónica, funcionaban al principio con empleados que cambiaban cables de unas clavijas a otras para establecer las comunicaciones. Estos empleados fueron reemplazados por electrónica: relés y cosas similares. Luego, ésta fue reemplazada por procesadores, luego por ordenadores con sistemas operativos que ejecutaban un programa concreto. Luego, las centrales de cada municipio también se reemplazaron por ordenadores; luego las centralitas de las empresas, tras pasar por varios refinamientos electrónicos, se convirtieron en ordenadores que corrían bajo Linux o Windows. Ni os cuento como han cambiado los teléfonos. Ahora, hasta los fijos son teléfonos móviles con numeración de fijos, lo que ha permitido que las centralitas desaparezcan de las empresas porque la propia compañía operadora de móviles te ofrece una operadora virtual, en la nube. Todo se configura a través de una página web, que, casualidades de la vida, la ha desarrollado un equipo de 30 ingleses y 200 indios. Las cifras me las he inventado pero podrían ser totalmente ciertas.

Esto significa que el trabajo que antes hacía gente inglesa ahora lo hace gente en su mayoría india. Mucho del dinero que antes se quedaba en Inglaterra ahora se va a la India. De acuerdo que les pagan muy poco la hora, pero la tendencia es alcista. A medida que los equipos de desarrollo en la India (o cualquier otro país) empiezan a organizarse extremadamente bien, con horarios europeos o americanos y hablando perfecto inglés por supuesto, empezarán a gozar de cierto caché, y por ende de salarios más altos. Es que no os podéis imaginar lo que se puede llegar a desarrollar con 200 personas en un proyecto de 2 años. Es una potencia de desarrollo que acelera todavía más el proceso de virtualización. Porque como ya he mencionado en algún otro post, buena parte de todo el software que se desarrolla hoy día está orientado a que desarrollar sea cada vez más fácil.

Países como por ejemplo Etiopía, que aparentemente no tienen mucho que ofrece a occidente podrían ofrecer desarrolladores y arquitectos software totalmente cualificados (una vez consigan librarse de la corrupción que les asola, que es algo que también llegará como se verá más adelante).
Lógicamente esto implica un gran desarrollo en infraestructuras de telecomunicaciones.  Pero, qué paradoja más buena, el cable se virtualiza y se convierte en ondas de radio, o mejor aún, en una señal por satélite. Una antena cada 100 kilómetros y das cobertura al país en 4 días.
Una empresa grande podría montar un edificio de oficinas en una zona con unos recursos propios mínimos (lógicamente no lo van a montar en mitad del desierto donde no hay ni agua) e instalar allí centenares de programadores locales. Esto ya está pasando en la India. Y donde una empresa monta un edificio de estos para llenarlo de teletrabajadores se genera una riqueza antes inexistente. Dinero que antes se quedaba en Sillicon Valley ahora se gasta en la India.

Los ordenadores se virtualizan. Sólo serán cajas tontas con una pantalla, un teclado, un ratón y una tarjeta de red. Vaya, que bueno va a ser eso para fabricar ordenadores baratísimos que apenas consumen energía, lo que va a hacer que puedan funcionar con energía solar o mecánica como una manivela como los que fomenta Negroponte.
Obviamente lo estoy acelerando en el tiempo. Yo no sé cuándo vamos a llegar plenamente a esto, pero sí sé que llegaremos.

¿Y qué tiene de bueno que India sea cada vez más rica e Inglaterra cada vez más pobre? pensarán los ingleses. ¿Un mundo más justo? Lo que hay que ver es que las fronteras se van a diluir. Si esos ingleses que se quedan sin trabajos son espabilados, se irán a India a ofrecer servicios a la nueva clase media india. Van a producirse movimientos migratorios masivos en cientos de direcciones: Más globalización aun, esta de la de verdad.

Esto va a llevar a otra cosa buena: la necesidad imperiosa de un idioma único. Que, a estas alturas no me imagino otro que no sea el inglés. Pero me da igual, uno, el que sea. El más fácil de aprender pediría yo, para que a todo el mundo le cueste menos conservar el idioma de su región si lo desea.
Y claro, un idioma único común será una catapulta para la globalización. De hecho, si la India está siendo pionera en este proceso es precisamente porque allí ya hablan inglés.

Y esta globalización traerá el fin de la rivalidad entre naciones. ¿Cómo vas a atacar una nación en la que el 80% de la población no es nativa sino inmigrantes? Y muchos seguramente de la propia nación atacante. Todos los países tendrán intereses en todos los países, y la gente podrá vivir donde quiera sin miedos.

Así pues parece que el software, la virtualización, traerá una nueva redistribución de la riqueza. Pero muchos pensarán que esta nueva redistribución no tiene por qué ser más justa. Que puede suceder que ciertos países serán los mejores fabricantes de software y serán potencias como lo es ahora Estados Unidos, pero que puede que haya países que no pueden ir a la misma velocidad, no pueden pagar las patentes o formar a ingenieros tan buenos. Vamos que hay quien pensará que el software será el nuevo petróleo.
Bien, pues mi respuesta a esto es: no hay que preocuparse; en serio, algo tiene el desarrollo del software, que invita a sus participantes a distribuir el conocimiento de una manera inusualmente generosa. Es decir, después de haber aprendido todo lo que sabes a base de leer el código fuente de aplicaciones o frameworks de código abierto, y en general, a base de leer código de terceros y aprender mucho de ellos, sientes la necesidad de compartir tus genialidades en el código. Es como si un pintor, tras aprender de sus maestros y mirar otros cuadros, luego pintase cuadros que nadie va a ver. Somos muchos los que difundimos el mensaje de que desarrollar software es un arte. Es crear algo a partir de la nada y que además de llegar a ser tremendamente útil, su código fuente puede ser digno de admiración para los ilustrados en el software. Por ejemplo, el código fuente del framework Spring nos parece a todos una obra de arte. No en vano ha llegado donde ha llegado: a liderar el mundo del desarrollo en Java.

Antes (hace 30 años), la compartición de información no era fácil. Si a ese ansia por compartir (para aprender o para ser reconocido o como modelo de negocio), le sumas la facilidad de compartir hace que la profesión más extendida del futuro, la de programador, avance a una velocidad inimaginable. Volvemos a lo de la invasión alienígena: toda la humidad compartiendo el conocimiento. Por lo menos el conocimiento del software, que será la industria que sin duda moverá el mundo. Por cierto, ¿se le considerará industria o servicios?

Y pobre del que no comparta.
Por el camino, esa necesidad de participar para poder acceder al conocimiento evitará que ningún “malo” pueda llegar a buen puerto. Sí, porque puesto que la tecnología militar, que también se virtualiza mucho, necesita cada vez más de programadores eficientes, los del bando malo no podrán jamás ser mejores que los programadores del bando bueno. En el bando bueno hay muchos más, y comparten todo lo que saben, están unidos. No puedes competir contra eso. Es como si un el mundo entero hoy día se alía para invadir un país, el que sea ¿qué creéis que pasaría? Incluso aunque sea Estados Unidos ese país, no puede vencer al resto del mundo. Además, que los programadores de los “malos” van a llegar a un punto en el que van a entender la necesidad imperiosa de compartir (para seguir aprendiendo). Y me gusta pensar que ese sentimiento les va a sacar del lado oscuro. Y un lado oscuro sin programadores en mundo cada vez más virtualizado, es sin duda un perdedor seguro.
De acuerdo, habrá programadores coaccionados en el lado oscuro, pero todos sabemos que si la clase obrera (o la infantería) se revela, no puedes mantener una guerra en paralelo con otro país. Eso ya sabemos como acaba.

Y por si no fuera suficiente, lo cierto es que un mundo virtualizado es un mundo más auditado, es decir, más transparente. Ahora sabremos quién vende armas a las guerrillas o dictadores del tercer mundo. Sabremos quién y qué roba, y en general, quien comete delitos con mucha mayor precisión.
Resumiendo, que ser malo no te va a compensar. Si decides serlo, que sepas que te vamos a dar caza seguro.
¿Imagináis un cuerpo de policía totalmente globalizado? Donde un policía de España puede utilizar un satélite de otro país (o mejor, uno común a todos) para espiar que hace un delincuente español en tierras argentinas, por ejemplo. Y no digamos cuando todas las fichas policiales se compartan entre todos los países. Localizar a los delincuentes va a ser pan comido.
Esto se va a producir a todas las escalas, desde grandes naciones hasta pequeñas empresas incluso a nivel individual.
Va a ser como si todos viviésemos en una misma comunidad autónoma. Un mismo idioma, unas mismas leyes, una misma moneda... Por supuesto habrá gente más rica y gente más pobre, como en todas las provincias, pero no habrá esas desigualdades como California frente a Somalia.

Yo no sé vosotros pero a mí me gustaría que mi provincia tuviese playa y tuviese montaña. Y bosques, y desiertos, y grandes ríos y lagos y cascadas. Que pudiese moverme libremente para evitar siempre la nieve o el fuerte calor. Porque claro, por tu provincia te mueves mucho porque te mueves libremente. Si vives en Madrid, apenas hay diferencia entre, qué se yo, Alcorcón y Torrejón. Te puedes mover tranquilamente entre Torrejón y Alcorcón siempre que quieras. Puedes vivir en uno o en otro casi de un día para otro ¿te imaginas plantarte el cualquier parte del globo en un máximo de 3 horas? Porque claro, para cuando todo esto llegue los vuelos extra-atmosféricos estarán a la orden del día.
Si se consigue que todas las personas sientan el mundo su propia provincia, sería mucho mejor para todos.

Y con esto no digo mitigar la competitividad. Precisamente es la competitividad la que ha provocado todo esto.
Tiene sus cosas malas, como otros aspectos del capitalismo, pero sin ella, sin fomentarla, nadie se esfuerza en ser mejor que otro, pero al ser el desarrollo de software un arte muy bien remunerado, siempre va a haber competitividad, porque siempre hay artistas que gustan más (y ganan más). Los mejores, los que innovan y sorprenden con aplicaciones cada vez más inteligentes a la par que sencillas son los más reconocidos; y ser reconocido es un sentimiento que creo que jamás se podrá mitigar (y menos si lo incentivas económicamente). Y esa competitividad te lleva a su vez a querer estar siempre en el lado de los buenos, porque en el lado oscuro, tu capacidad de aprendizaje se va a ver mermada (al ser menos gente), tu reconocimiento mucho menor y será el fin de tu carrera. Si quieres saborear la excelencia, si quieres ser reconocido, sólo puedes conseguirlo desde el lado de los buenos. Así que al final, la competitividad es un medio para un buen fin.

Pero la competitividad es un arma de doble filo. No todo el mundo va a querer competir con espíritu olímpico, y al creerse mejor que el resto de la humanidad va a querer separarse tanto del resto que entrará en conflicto.
Sin duda esto sucederá. Y mientras la ambición no supere ciertos límites tenemos que permitir altos grados de competitividad. Pero siempre recordando a todos que el conocimiento si no es para hacer el bien, no se considera sabiduría. No consideramos sabio a Hitler, pero sí a Gandhi.

En cualquier caso, salvo que seas un lunático, tengo la sospecha de que tras demostrar al mundo que eres el mejor en algo, después de hacerte inmensamente rico gracias a tu talento, tras garantizar que hasta los hijos de tus nietos serán ricos, lo que te queda es un vacío que sólo se llena yendo un paso más allá: trascendiendo; pasando a la historia. Y qué mejor manera que haciendo algo que la memoria social no olvide nunca. Y esto sólo puede ser haciendo algo realmente bueno, salvo, insisto, que vengas con una tara de fábrica.
Supongo que es lo que ha llevado a Bill Gates o Warren Buffet a donar buena parte de su fortuna para la búsqueda de vacunas y otros fines benéficos. A mí me gusta pensar también que gente como Larry Page (fundador de Google y archimillonario) tiene en su mente hacer algo grande para la humanidad. No creo que siga tirando del carro Google sólo por hacerse más rico. ¿para qué? Sí seguro que ya podría llenar su piscina gigante con Moët. Pero es que somos así. ¿Qué harías tú si estuvieses podrido de dinero y supieses que en unos años, sin hacer nada, vas a estar más podrido aun? Salta una interrupción en nuestro cerebro que nos lleva a buscar metas más transcendentales. Empiezas a buscar el conocimiento más que el dinero. Y sucede que cuanto más sabio te vuelves, más bueno te vuelves.

Extrapolando esto, tiendo a pensar que cuanto más conocimiento tenemos a mano mejor para la humanidad, porque más buenos nos volvemos. Más que nada por esa gran acertada frase que dice, que el que no conoce la historia está condenado a repetirla.
La tecnología (el software sobre todo) nos trae ese conocimiento que nos recuerda los errores del pasado. Cuando todo el mundo sepa todo de todo, quiero decir, cuando todo el mundo tenga libre acceso a todo el conocimiento, sabrá lo ineficiente y absurdo que es hacer el mal.

Quizá tendría que haberlo definido antes a que llamo el bien y el mal, porque ciertamente podrían ser conceptos muy ambiguos. Pero creo que no es ambiguo definir el mal como cualquier acto que dañe físicamente o prive de libertad a cualquier otro ser humano.

Total, que tenemos que como cada vez sabemos más, cada vez somos más buenos, y segundo, que ser malo no va a compensar porque te van a cazar enseguida.

Conclusión: el fin del mal.

O trabajas en equipo, un equipo formado por toda la humanidad, o estás fuera, aislado, ignorado. Y no lo malinterpretemos; que todo el mundo comparta el conocimiento sobre cómo desarrollar mejor software no significa que todo el software vaya a ser igual. Que demos agujas y lana a todo el mundo no significa que todos vayan a fabricar jerséis iguales. Siempre habrá gente con más talento que otros.

Si lo piensas bien, todo lo que he contado ya está pasando, sólo que en lugar de fabricar software fabricamos teléfonos móviles, zapatillas de deporte, ropa en general, hardware… cosas tangibles. Sólo que mi visión es una nueva iteración, esta vez a la velocidad del software. Vamos, que si os parecía que el mundo va muy deprisa, preparaos para la que se avecina. Sólo podremos gestionarlo si trabajamos todos juntos.

Al final, como ya decían los electroduendes: sólo no puedes, con amigos sí.