Libro: Sapiens. De animales a dioses.

sapiens

Título: Sapiens. De animales a dioses. Una breve historia de la humanidad
Autor: Yuval Noah Harari
Editorial: Debate

Recuerdo haber visto recomendaciones sobre este libro en varios sitios y por diferentes personas. Las suficientes como para resultarme atractivo. Y pensando en que sería un libro parecido a “Una breve historia de casi todo” de Bill Brison, “La cuchara menguante” de Sam Kean, o “La historia del mundo en 100 objetos” de Neil MacGregor,  lo compré con idea de tener entretenimiento para varias semanas.

Sin embargo, me he encontrado con algo más interesante. No se trata de una breve historia de la humanidad, sino de una visión alternativa a la historia que se suele contar sobre la evolución de la humanidad y la cultura. Esta visión alternativa puede llegar a ser interesante, incómoda u ofensiva dependiendo de quien lo lea y muchos de los puntos de vista que expone pueden resultar extraños o extravagantes para mucha gente. Esto último lo sé porque yo mismo he mantenido opiniones similares acerca de varios de los temas del libro durante años y siempre se han sido considerados radicales. Quizá ahora que alguien ha escrito un best seller bien trabajado al respecto, empiecen a convertirse en ideas mainstream, pero no sé si eso es algo bueno o malo.

Probablemente las ideas más interesantes que he sacado del libro han sido: 1) que la humanidad solo puede ser efectiva si comparte fantasías comunes como los derechos humanos, la democracia o el capitalismo. Y 2) que la única forma en que la humanidad evoluciona y “mejora” es colaborando de forma más efectiva en grupos cada vez mayores. La primera idea es una bofetada a varios niveles para cualquier persona moderna criada en los valores de occidente, la segunda es una idea que permite pensar de nuevas formas sobre todo tipo de temas.

De todos modos, aunque el libro es muy entretenido y en general estoy de acuerdo con las conclusiones, hay bastantes puntos de la argumentación que me parecen forzados o retorcidos para apoyar las ideas del autor. En algunos casos, por ejemplo, usa correlaciones para señalar causalidad, en otros usa las fuerzas capitalistas para explicar (a mi juicio) de manera simplista todas las expediciones marítimas desde Colón y me parece que, aunque la narrativa que ofrece es muy entretenida, mezcla tanto datos reales como deseos para sostener lo que dice, lo que resta credibilidad al libro.

Dicho esto, sigo pensando que es un libro muy entretenido con ideas poderosas e interesantes y que bien merece una lectura si te interesa la historia, la humanidad y el futuro. No creo que compre la segunda parte “Homo Deus” porque no veo qué puede aportar sobre las novelas de ciencia ficción, pero quizá busque alguna obra anterior y tendré en cuenta nuevos libros del autor.

Dado que el libro está narrado hilvanando ideas simples y normales en ideas complejas y radicales, no he visto nada citable de corta extensión, pero creo que merece la pena recomendar algunos libros comentados anteriormente en el blog que creo que pueden aportar algo antes o después de leer este libro. La lista es larga, pero creo que eso ayuda a entender la gran extensión de temática de este libro y el que no me haya cogido tan de sorpresa. Ahí va, categorizados en 4 grandes categorías:

  1. Pasado
    1. La historia del mundo en 100 objetos
    2. 1177 a.C
    3. Sociedad y cultura en la antigua Mesopotamia
    4. Innovación y tradición. Historia de la tecnología moderna
    5. El sueño del neandertal
    6. El príncipe
    7. El plan maestro
    8. El fantasma del ingeniero asesinado
  2. Mente, individuo y modelos mentales
    1. Pensar rápido, pensar despacio
    2. No pienses en un elefante
    3. El hombre en busca de sentido
    4. Las grandes revoluciones del management
    5. Capitalismo caníbal
    6. Antifrágil
    7. La tabla rasa
  3. Futuro
    1. Seveneves. Siete Evas (novela)
    2. Numerati
  4. Inclasificable
    1. El espejismo de Dios
    2. Trilogía Paralaje Neandertal: Híbridos, Humanos, Homínidos. (Novela)
    3. El cálculo de Dios (novela)
Anuncios

Developer Timeline 1996-2016

pope-john-paul-ii-and-fidel-castro-watching-time

Hace unos meses intenté convencer a algunos desarrolladores de que necesitaban aprender Git. Algo que desde mi perspectiva parecía obvio y urgente se tornó, pese a mis esfuerzos por argumentarlo, en imposible. Desde entonces he estado dándole vueltas al tema de la obsolescencia de las herramientas, técnicas y servicios que los desarrolladores usamos a diario y a como alternamos entre lo malo conocido y el hype del momento.

Esto me llevó a pensar en cómo “de-mostrar” a determinados perfiles técnicos de la necesidad de actualizarse, lo cual me condujo a confeccionar una “línea de tiempo” o mapa de tecnologías y herramientas de desarrollo .NET para poder observar el avance en determinados ámbitos como el control de versiones de código.

Gracias al intercambio de ideas de los Meetups en SwCraftersCLM y los ánimos que me han dado desde esta comunidad para publicar el “timeline de desarrollo”, he terminado una versión 1.0 que he colgado en Google Sheets para uso y adaptación de otros equipos de desarrollo, incluso de otros stacks tecnológicos. O aprovechando que acabamos el año, para pararse a pensar qué aprender en 2017.

El Excel es el siguiente: Developer Timeline 1996-2016

¿Para qué sirve?

La idea es poder usar la hoja como herramienta de 4 formas diferentes para varios objetivos:

  1. Para poder revisar en qué punto estamos de actualización técnica y ayudarnos a decidir si aprender o no una tecnología en concreto.
  2. En grupos de desarrollo. Para poder argumentar con datos objetivos frente a nuestros compañeros sobre la necesidad, o no, de reciclarnos tecnológicamente. Como mínimo debería facilitar el diálogo sin caer en el flame.
  3. En charlas. Para poder hacer una introducción simpática para todos los públicos sobre determinadas tecnologías como Core o SharePoint Framework añadiendo un contexto tecnológico más amplio que facilite el entendimiento de los problemas que resuelve.
  4. En organizaciones. Para poder establecer el nivel de actualización de una organización (la nuestra u otras) de una forma más o menos objetiva. En última instancia podría ayudarnos a decidir si embarcar en una empresa o desembarcar de la actual.

¿Qué contiene?

La hoja contiene varias categorías (eje vertical) y eventos relevantes para cada una de las categorías, repartidos por año (eje horizontal).

Me pareció adecuado empezar en 1996 por tener un intervalo amplio y “redondo”: 1996-2016. El año 1996 sirve además para poder establecer una línea base de “desarrollo viejuno”.

La información que contiene está orientada por mi experiencia y entornos de trabajo a lo largo de los años por lo que hay bastante de Microsoft, pero he tratado de mantenerlo flexible para poder adaptarlo a otros entornos aglutinando la mayoría de elementos específicos de Microsoft en su propia categoría.

Sobre las categorías, los datos y la selección

Hay muchos elementos que podría haber metido pero que finalmente he eliminado por claridad (versiones, irrelevancia…) y simplicidad.

Muchas fechas son aproximadas y en algunos casos discutibles. En general he tratado de tomar las más importantes como por ejemplo productos release en lugar de beta.

Hay bastante tecnología Microsoft debido a mi propio background y el público al que lo he enfocado, pero he tratado de mantenerlo flexible para otros stacks.

Este documento no pretende ser canónico, sino una herramienta ilustrativa de la evolución y periodos que vivimos los desarrolladores de software. Está pensado para ser modificado de forma sencilla por lo que he desistido (de momento) de hacer un gráfico SVG interactivo con D3 y JSON.

Las categorías en que he agrupado los eventos son las siguientes:

  1. Papas: Los papas de la Iglesia Católica Apostólica y Romana que hemos tenido desde el 96. Me parece interesante mostrar que hasta las organizaciones más antiguas y tradicionales experimentan más cambios que algunas personas o empresas.
  2. Efemérides: Evento de relevancia nacional o mundial. Permite replantearse la cantidad de tiempo que ha pasado entre tecnologías y los grandes cambios que han sucedido en la sociedad.
  3. Películas: Estrenos de cada año. Me parece un detalle simpático para tratar de poner en contexto el tiempo que ha pasado, en particular entre fans de Marvel como yo, y la cantidad de proyectos que pueden llevarse a cabo en 5 o 10 años.
  4. JavaScript: Aun hay gente que no quiere saber nada de JavaScript o quiere quedarse en la versión del ’99. Visibilizar la cantidad de hitos que ha tenido debería facilitar el NO poder ignorarlo.
  5. Autenticación y Autorización: Todavía tengo que explicar las diferencias entre autorizar y autenticar. En el panorama actual y dado que es necesario conocer estos temas para realizar cualquier aplicación moderna, me parece grave y por eso le he dado su propia categoría.
  6. Servicios web: Esta categoría trata de servicios web y trata de poner de manifiesto que la diferencia entre SOAP y REST en realidad son pequeñas y que deberíamos mirar más allá del hype al evaluarlas. También pone en el mapa los webhooks, que parece que son grandes desconocidos a pesar de su utilidad y antigüedad.
  7. Formatos de datos: Me pareció apropiado añadir esta categoría tras la de servicios web para señalar que son dos cosas independientes y que ya va siendo hora de aprender a usar JSON. O usar Markdown en lugar de HTML en según que contextos.
  8. Front End: Esta categoría podría ser una hoja aparte, pero he tratado de incluir estándares de facto y orientarme a desarrolladores back o full stack. He añadido asteriscos a temas de W3C para recordar que… “es complicado” asegurar en qué estado están.
  9. Gestión de código: Esta es la razón por la que comencé a confeccionar el Excel y por eso tiene un componente “fuerte” de productos Microsoft, pero dejando claro que el estándar a día de hoy es Git. De hecho, es importante mencionar que Microsoft lleva años migrado todo su código abierto a Github.
  10. Servicios de terceros: Incluyo una lista de servicios de terceros relevantes para perfiles técnicos. Estos deberían contrastar con la antigüedad de algunas de las herramientas de algunos técnicos. Si, por ejemplo, alguien usa Dropbox (2008) o Google Drive (2012), no podrá argumentar que Git es demasiado moderno (2005).
  11. Microsoft Stack: categoría específica para los que usan el stack de Microsoft, por lo que en adaptaciones a otras empresas debería adaptarse. El “baseline” es Outlook porque me pone nervioso ver que no se sabe usar a nivel básico (carpetas, convocatorias, respuestas automáticas…) y es una herramienta que todos usamos a diario para trabajar en empresas, en particular con el stack Microsoft.
  12. S.O.: Sistemas operativos desde el ’96. Con especial detalle en el ámbito Windows, claro. Porque todavía hay quien quiere volver a W7 por pura resistencia al cambio.
  13. Dispositivos Móviles: He tratado de sintetizar el panorama en dispositivos móviles. Al estar tan unidos hardware y software he mezclado ambos elementos. Evidentemente Windows Phone/Mobile se queda fuera.
  14. Lenguajes: Es interesante ver que los lenguajes de back-end son bastante estables, pero no inmutables.
  15. Entorno de ejecución: Parece que todo es alguna variedad de la máquina virtual de Java o el que tiene que funcionar sobre el CLR de .NET y no solo no es así, sino que el panorama parece que va a cambiar cada vez más. Estuve tentado de introducir Docker también, pero los contenedores son otra historia y aun me parece pronto para añadirlos, quizá el año que viene o quizá en otra categoría de DevOps.

Como nota curiosa no he notado nada interesante en 2003 pero si muchos eventos importantes en 2009: el embrión de Azure y Office 365 (BPOS), Android 2.0 (la primera versión buena), Windows 7 (el más querido), ECMAScript 5 (el JavaScript de la nueva web), Bitcoin (y la explosión del blockchain), GO (del que Javier nos dará una charla pronto) y Node JS (¿el nuevo Java/PHP?) del que vimos como se usaba en producción en las Lambdas del AWS de BrainSINS en el último Meetup.

En resumen

Como decía el personaje de Will McAvoy en The Newsroom: El primer paso para resolver un problema es reconocer que hay uno (minuto 5:00, pero el speech completo es impresionante).

Mi intención inicial era mostrar como Git es una herramienta indispensable para el desarrollador de .NET de hoy, comparándola con eventos relevantes del pasado reciente de forma objetiva y amigable.

Aunque parece que he conseguido construir esa herramienta, creo que he generado algo más potente, una especie de minicuadrante de Gartner del desarrollador .NET (y en general) que podría servir para animar a algunos técnicos a reciclarse, y que me ha ayudado a ampliar mi visión estratégica para 2017 así como a mejorar mi planteamiento como arquitecto de soluciones y líder técnico. O como mínimo me ha aclarado panorama bastante ahora que parece que todos andamos perdidos de stack en stack y de framework en framework especialmente en el mundo Microsoft.

Para terminar

Al revisar mis propios artículos me parece reconocer que en el universo Microsoft, 2016 es una repetición de 2012. Da para otro artículo, pero si estás más o menos al día creo que podrás ver las semejanzas entre el panorama actual (Azure, Office 365, Hololens, ARM, Open Source…) y el que describí en 2012 en: El desembarco de Normandía.

Y si te ha interesado este artículo, es muy probable que te interesen mis artículos: Breve historia del desarrollo de software de 2012 y mi predicción sobre el futuro de Blackberry, iPhone y Palm en 2007: La muerte de Blackberry.

Recopilación de tweets interesantes

Ahora que estoy de limpieza veraniega de lecturas, aprovecho para agrupar los tweets interesantes que he encontrado hasta ahora este año y eliminarlos de mi lista de favoritos.