Software de computadora arroja luz sobre similitud de ADN humano y chimpancé

Recientemente tuve la oportunidad de escuchar a Stephen Meyer, del Discovery Institute, proporcionar una actualización sobre el progreso y el estado actual de la teoría del diseño inteligente. Al final de la conferencia de Meyer, él respondió las preguntas de la audiencia. Inevitablemente, surgió la pregunta sobre humanos y chimpancés con su similitud de “98 por ciento” en el ADN. ¿No es esa evidencia a favor de la evolución y en contra del diseño?

La respuesta de Meyer fue comparar el código de ADN con diferentes programas de computadora que comparten una base de código subyacente. Como ingeniero de software profesional durante más décadas de lo que me gustaría expresar aquí, puedo dar fe de la precisión de la comparación de Meyer. Como lo demostró en su libro Signature in the Cell, la célula es una fábrica microscópica que bulle de la actividad de miles de pequeñas máquinas construidas a partir de las instrucciones proporcionadas por el código de ADN en el núcleo de la célula.

No voy a entrar en el debate sobre cuál es exactamente el porcentaje de similitud en el ADN entre humanos y chimpancés. Eso es totalmente inmaterial al punto que quiero hacer. En cambio, veamos cómo la analogía que presentó Meyer se mantiene al proporcionar más profundidad y color usando un ejemplo práctico del hardware y el software que la mayoría de nosotros usamos en la vida cotidiana. Todos los que leen esta publicación (sospecho) están usando un navegador en una computadora, tableta o teléfono inteligente. El dispositivo que está utilizando tiene algo instalado llamado sistema operativo (SO). Eso se define como “la colección de software que dirige las operaciones de una computadora, controlando y programando la ejecución de otros programas y administrando recursos de almacenamiento, entrada / salida y comunicación”. El sistema operativo proporciona todas las funciones subyacentes necesarias para el navegador o cualquier otro software de aplicación (programa) al que pueda acceder en su dispositivo. Cualquiera que sea el dispositivo que esté utilizando, el sistema operativo se compone de decenas de millones de líneas de código. Por ejemplo, se estima que el sistema operativo Windows tiene más de 50 millones de líneas de código.

El siguiente diagrama representa la arquitectura de Windows NT, que es la línea de sistemas operativos producidos y vendidos por Microsoft. De hecho, este diagrama está un poco anticuado ya que Windows ha “evolucionado” bastante con nuevas características desde el año 2000, pero los conceptos fundamentales no han cambiado. No es esencial que comprenda esto en su totalidad, pero tenga en cuenta los diversos subsistemas que conforman un sistema operativo moderno.

Específicamente, tiene el “núcleo” que es el núcleo del SO que conecta el software de la aplicación al hardware subyacente. El kernel ejerce un control completo sobre el sistema y está completamente protegido de las aplicaciones de los usuarios, proporcionando un conjunto de interfaces bien definidas mediante las cuales una aplicación puede interactuar con los servicios subyacentes. Puede comparar el núcleo aquí con el núcleo de una célula, que mantiene la seguridad del ADN y controla las funciones de la célula completa al regular la expresión génica. Además del kernel, tiene un modo de “usuario” que se coordina con el kernel que proporciona servicios de alto nivel, como su interfaz de usuario, mecanismo de autenticación (para iniciar sesión) y el entorno en el que se ejecuta el código de la aplicación (en este caso, tu navegador). Esto sería análogo a las proteínas de trabajo en la célula que sería el código de ejecución que realiza el trabajo diario de la célula.

Ahora centrémonos más en el código de la aplicación. Si bien el sistema operativo es un código que una empresa del sistema operativo escribe, como Microsoft, Apple o varias compañías de distribución de código abierto de Linux, los desarrolladores de software escriben las aplicaciones. Las aplicaciones también pueden ejecutarse en millones de líneas de código. Depende de la complejidad y la funcionalidad de la aplicación en sí misma. Sin embargo, lo que los desarrolladores de software han descubierto durante décadas es que hay funciones o patrones específicos que los desarrolladores realizan una y otra vez, y una parte considerable del negocio de software consiste en desarrolladores “terceros” que escriben y venden “bibliotecas” reutilizables que hacen el trabajo más fácil para otros desarrolladores. Por ejemplo, en una aplicación típica, es posible que tenga una biblioteca que ayude a crear la interfaz de usuario, una biblioteca para el acceso a la base de datos o una biblioteca para las comunicaciones a través de una red inalámbrica.

Las aplicaciones en un teléfono inteligente, como Facebook, Instagram o Snapchat, pueden tener miles de líneas de código, acceder a bibliotecas de componentes que brindan servicios formados por miles o millones de líneas de código y, por supuesto, acceder a los millones de líneas de código mencionadas anteriormente. en el sistema operativo subyacente.

Ahora, comparando esto con humanos y chimpancés, ¿qué encontramos? Si bien gran parte del código de ADN puede ser el mismo, las partes que no son iguales tienen diferencias significativas. Los programas que describí anteriormente, como Facebook, Instagram o Snapchat, tienen diferentes propósitos, pero todos dependen del mismo sistema operativo que consta de decenas de millones de líneas de código. Para ser específico, digamos que está utilizando un iPhone con iOS 11 (el sistema operativo móvil de Apple) instalado. Se estima que iOS ocupa aproximadamente 4 GB de espacio en tu iPhone. Facebook ocupa alrededor de 297 MB. Snapchat tiene unos 137 MB. Instagram tiene unos 85 MB. Respectivamente, eso es 7.4 por ciento, 3.4 por ciento y 2.1 por ciento del tamaño de iOS. Ahora, ¿alguien diría que Facebook, Instagram y Snapchat son prácticamente lo mismo, ya que cada uno tiene más del 90 por ciento de lo mismo? Por supuesto que no. No es tan diferente con los humanos y los chimpancés. En el caso de estos programas, la gran mayoría de su código base se comparte, pero cada uno es una expresión creativa distinta que aprovecha una base de código compartido. En el caso de humanos y chimpancés, uno esperaría que un diseñador usara un código compartido donde las funciones son las mismas, y un código diferente (nuevo) donde las funciones son diferentes. Cuando examinamos programas de computadora, que son invenciones de mentes humanas, ¿por qué no reflejarían la mente del diseñador que escribió el código para producir humanos, chimpancés y cualquier otro organismo biológico?

Existe otra analogía relevante entre el software de aplicación y el código de ADN. En los organismos biológicos, no todos los genes se expresan en cada célula. Por ejemplo, hay genes específicos activos en las células del hígado, genes específicos activos en las células del músculo cardíaco y genes específicos activos en las células del cerebro. Los diferentes tipos de células se expresan tanto en apariencia como en función. Entonces, no todo el código de ADN está en uso en cada célula. Además, los factores ambientales afectan a qué genes se expresan en un grupo de células, lo que permite que un organismo responda de diversas maneras a las situaciones en las que se encuentra. Del mismo modo, con los programas de software, no todos los caminos a todos los códigos están en uso. Hay “configuraciones”, ya sean establecidas por el usuario o programadas automáticamente en la aplicación por el desarrollador, que determinan cómo funcionará un programa individualmente. Por ejemplo, cuando un usuario cambia la configuración de privacidad, idioma o chat en la aplicación móvil de Facebook, modifica las diversas rutas que puede ejecutar el código. O si un usuario malintencionado intenta iniciar sesión en un programa varias veces, intentando piratear una cuenta de usuario, el programa ejecutará una ruta de código para bloquear al malévolo usuario y notificar al usuario legítimo.

Nuevamente, las funciones en un programa de computadora reflejan la mente del diseñador humano. De la misma manera, las funciones en el ser humano que programan una computadora reflejan la mente del diseñador de humanos y chimpancés.


Artículo publicado originalmente en inglés por Walter Myers III

Crédito de la foto: BelaMarie, a través de Pixabay. Crédito del diagrama: Ta bu shi da yu en el idioma inglés Wikipedia [GFDL], a través de Wikimedia Commons.