Esta presentación estuvo muy bien hecha sátira. Tuve que mirar para ver que en realidad se presentó en 2013. Puedo decir que después de haber estado programando en 1972 (como estudiante de HS escribiendo mi primer compilador), realmente captó el espíritu de cómo era en el momento de los teletipos , tarjetas perforadas, proyectores, justo antes de los primeros micros de Altair.
Para responder a su pregunta sobre ataques de API, en concreto, hasta donde sé, no hay investigación sobre ese tema específico, al menos no comparándolo con los “objetivos”. Hubo una investigación realmente interesante sobre “Emacs basado en el conocimiento” que trató de ayudar a construir programas para usted KBEmacs (Editor basado en el conocimiento en Emacs): Un paso hacia el aprendiz del programador. Probablemente más relevante es el trabajo actual sobre interfaces RESTful (transferencia de estado representativo) o programación reflexiva (Reflexión (programación de computadora)).
Curiosamente, en un nivel (el nivel de hardware) hemos logrado parcialmente los objetivos con interfaces “plug-and-play”. En estos días, cuando su computadora se inicia (o le conecta un nuevo dispositivo). La computadora pasa por un “descubrimiento” que “enumera” todos los dispositivos conectados y “negocia” el nivel de API que admite el dispositivo. Entonces, conecta sus nuevas gafas de realidad virtual en un puerto USB 1.0 y la computadora ve que las gafas deciden que se parecen a una pantalla y le dice a las gafas que hablan USB 3.0 que el puerto al que están conectadas solo es compatible con el protocolo 1.0 y Las gafas se ajustan. Ahora, si las gafas hacen algo completamente diferente de lo que la computadora sabe, la computadora no puede acceder a esas funciones, pero para cosas que la computadora puede hacer [con una pantalla, por ejemplo], puede usar las gafas para hacerlas.
- ¿Por qué el parámetro predeterminado en csrankings.org es "EE. UU. Solamente" aunque el sitio web se llame "Clasificación de informática"?
- ¿Por qué hay tantos problemas abiertos fundamentales en la complejidad computacional?
- ¿Cuáles son algunos de los problemas de investigación interesantes en la criptografía umbral?
- ¿Dónde ha llegado la investigación en sistemas de recomendación conscientes del contexto?
- Cómo enviar una idea de investigación al Instituto Max Planck
En mi opinión, el trabajo de las interfaces RESTful es un intento de proporcionar el mismo nivel de “plug-and-play” al mundo del software de red. En lugar de una API, tiene el protocolo de interfaz universal que puede consultar. Como “todos” hablan [hablarán] esta interfaz, puede hacer que el software hable con cosas que antes no podía. No puedo decir si esto realmente resuelve el problema de la API. Sin embargo, podría llevar el problema un nivel más profundo.
Un enfoque complementario es a través de lenguajes específicos de dominio (lenguaje específico de dominio). Un DSL es un lenguaje especializado destinado a dar sentido a los expertos de dominio relevantes y abordar el problema de una manera natural para ellos. Eso parece acercarse a la idea de “objetivos”, es decir, “lo que quiere que haga la computadora” y no “cómo hacerlo”.
Para mí esto llega al quid de la cuestión de los objetivos. La parte difícil de definir objetivos es diseñar un lenguaje en el cual expresarlos. Las lenguas como las matemáticas han tardado siglos en desarrollarse (y no sin muchos desvíos y pasos en falso en el camino) e incluso ahora no existe un lenguaje matemático universal que todos los matemáticos hablen, sino muchos dialectos para las diferentes especialidades, a menudo con diferentes términos para el mismo concepto (1-1 y sobre versus inyectivo, sobreyectivo y biyectivo, solo para elegir el primer ejemplo que me viene a la mente; espero haberlo entendido bien, uso los dos primeros, no los últimos tres). Muchas DSL son simplemente unos pocos sustantivos especiales, adjetivos y verbos (et al) agregados a un marco existente.
Ahí radica el siguiente problema. Si no conoce la jerga, el DSL no es útil. Para mí, es la misma frustración que enfrento cuando Microsoft decide que necesita una nueva interfaz para Word: moverán algo de un menú, es decir, le darán un nombre diferente al que tenía antes. Más importante aún, el nombre que eligen no suele coincidir con ninguno de los términos por los cuales lo describiría. Obtener la tabla de contenido para un manual que escribí una vez fue una pesadilla, porque nunca encontré algunas de las características que necesitaba, y no usar Framemaker (ni escorrentía, ni TeX) no era mejor, solo un conjunto diferente de jerga que no era Siempre es el dialecto que hablé.
En ese sentido, creo que su pregunta sobre “programar con metas” como un sueño es relevante. Conectar seres inteligentes que hablan diferentes idiomas es un verdadero desafío. El resultado habitual es una guerra donde una de las culturas se subyuga o pasa a la clandestinidad. Esto sucede en todos los niveles. Sus hijos realmente no quieren que usted sea demasiado fluido para enviar mensajes de texto, y leet es solo para hackers. En el trabajo, una “habilidad” o un “recurso” puede no estar refiriéndose a lo que normalmente se asociaría con esas palabras. Ahora, qué sucede cuando intentas enviarle un mensaje de texto a tu hijo sobre las habilidades de leet. Tres jergas, todas las API incompatibles. No veo que los programas funcionen mucho mejor, no en el futuro cercano. Para unir las jergas de un par de dominios, debe comprender ambos dominios, en este momento esa “comprensión” sigue siendo algo que un humano trae a la mesa, no obstante Watson de IBM.
Espero que esto te brinde suficiente información para investigar el tema por tu cuenta. Es realmente un área grande y solo he arañado la superficie en cosas que parecen relevantes desde mi perspectiva.