01
Sep
Las construcciones semánticas que hace la mente humana no funcionan igual que las construcciones semánticas que hace una computadora, así como tampoco calcula de la misma manera, por ende, hay términos cuyos significados varían según se trate de lenguajes legibles por humanos respecto de lenguajes legibles por máquina.
Por ejemplo, la lectura humana funciona en forma de lectores ópticos (visión ocular como interfaz), en donde las palabras del lenguaje escrito que se leen son traducidas por la mente en formas fonética. A partir de esa traducción inmanente, la mente humana traduce la imagen de la palabra + su sonido en una idea, concepto y/o abstracción. Es decir, la comunicación entre humanos es muy compleja, porque la mente humana cuenta con la capacidad natural de generar múltiples significados para el mismo significante. Ejemplo de ello es la simbología, la narrativa, la semiología, la epistemología, la hermenéutica, etc.
Las máquinas no necesitan relacionar la imagen del grafo con el sonido, por consiguiente, podemos construir lenguajes de programación que traduzcan lenguaje de alto nivel (legible por humanos) a lenguajes de bajo nivel (legibles por máquina) despejando el sonido ergo relacionando solo la imagen del grafo con un significado específico ergo reemplazando letras y palabras por grafos matemáticos. Por ejemplo, usando cálculo Lambda, Código QR, Código Binarios, etc. Este tipo de traducción informática es lo que conocemos como compilación.
Cuando usamos lenguaje de programación legible por humanos que a su vez es legible por máquina, en lugar de traductor, le decimos "intérprete”; y acá es dónde aparecen nuevos problemas. No para las máquinas, sino para los humanos que desarrollamos dichos lenguajes.
Para la comunicación humana entre cientos de lenguajes, idiomas y dialectos, el problema de comunicación exige de un Traductor Universal, pero además de un "medio de comunicación universal".
El lenguaje Java intentó nacer con Internet, pero finalmente solo logró trascender, evolucionar y ser usado masivamente, cuando sus creadores relacionaron Java con el Paradigma Web. Por ende, en lo personal, dividiendo la Historia de Java en dos períodos, antes y después de las Pilas en la Nube. Las pilas de Java tradicionales se diseñaron para aplicaciones monolíticas con largos tiempos de inicio y grandes requisitos de memoria en un mundo donde la nube, los contenedores y Kubernetes aún no existían. Los marcos de Java necesitaban evolucionar para satisfacer las necesidades de este nuevo mundo.
A partir de Kubernetes y OpenShift, algo cambió, y ciertamente no es algo menor.
Cuando hablamos de Web Semántica como Servicio, estamos hablando no solo de un Traductor Universal para lenguajes legibles para humanos, sino que también debemos incluir un Traductor Universal para lenguajes legibles por máquina. Esto significa crear imágenes de grafos cuyos enlaces se relacionan rápidamente con otros grafos, de tal manera la topología de esos enlaces hipertextuales (hipervínculos) no solo produzcan un nuevo modelo de programación multilenguaje, sino que también genere un "nuevo medio de comunicación”, quien, por peso específico, merece ser colocado como una capa de abstracción por encima de internet e incluso por encima de OSI.
Los lenguajes de programación funcionan de manera análoga a los lenguajes humanos, ergo se necesita conocer sus reglas semánticas, reglas sintácticas, reglas de traducción y/o reglas de interpretación. En síntesis, se necesita de un Protocolo de Comunicación. El Protocolo de Comunicación, tiene como misión sintetizar (reunir) el proceso de traducción, interpretación, transformación y procesamiento (hecho por máquina) de tal manera el contenido (de interés humano), sea el mismo para todos los habitantes de la Tierra, por ende, cuyo servicio de interfaz se erija en un medio de comunicación universal (medio de alcance masivo). Por ahora, solo la Industria Financiera posee Protocolos de Comunicación de alcance universal, y esos protocolos se agrupan bajo las Normas ISO 20022.
En resumen, ya no hablamos de compilación dinámica en tiempo de ejecución; puesto que estamos trabajando sobre una Plataforma Porta-contenedores (OpenShift) quien no trabaja sobre una pila de internet (Paradigma TCP/IP) sino sobre una Pila de Cloud (Paradigma Cloud Computing). Las Pilas que se generan sobre OpenShift generan una nueva capa de OSI, denominada Capa de Transmisión; puesto que allí no producimos Transporte de Tramas (Capa de Transporte) sino Transmisión de Contenidos (Capa de Aplicación o Capa Semántica).
En conclusión, los programadores que quieran especializarse en el desarrollo de APIs Universales, deben entrenar la mente para no depender de Java como lenguaje, puesto que el concepto de API Universal también implica que cualquier desarrollador pueda contribuir al Proyecto API Universal mediante cualquier otro entorno de desarrollo, comunidad dinámica o lenguaje de programación. Una API Universal bien implementada, no debería necesitar de traducción ni intérprete, puesto que es el Protocolo de Comunicación quien aporta la "semántica universal" en pos de ser procesada sobre Capa Semántica. Por ende, es el mensaje ISO 20022 quien construye el código fuente reubicable, y no a la inversa.