¿Las computadoras podrán programarse en el futuro?

Técnicamente hablando, las computadoras ya codifican por sí mismas. Los compiladores son programas que crean programas. Pero supongo que esta no es la forma de codificación que tienes en mente.

Su suposición tiene un defecto en mi humilde opinión, implica que somos lo suficientemente inteligentes como para saber lo que queremos o necesitamos. Créeme, no lo somos! Nosotros mismos exploramos lo que necesitamos durante el proceso de creación. Esta es la razón por la cual, la intención de desacoplar de la implementación resulta principalmente en basura.

Asistí a la conferencia de Inteligencia Artificial en Industrias Creativas este año y Samim Winiger habló sobre cómo se habló sobre la generación de contenido procesal en herramientas creativas (Dynamic Dialog & Storytelling). En pocas palabras, funciona de la siguiente manera: dibuja algo y la IA producirá múltiples sugerencias basadas en estilos famosos. Mostró un par de ejemplos ya existentes basados ​​en dibujos, fotografías y letras. Él cree que tales herramientas serán una funcionalidad estándar como deshacer / rehacer y copiar y pegar hoy en día.

Cuando su suposición se debe a la realidad, estaremos un poco más cerca de la meta que describió.

La gente está tan obsesionada con la etapa y el proceso exactos de la tecnología. Porque seguir ese proceso paga salarios. La función principal de las computadoras es “calcular” (por falta de un término mejor), no ser programado. La computación puede ocurrir sin ninguna programación, como un “auto” puede mover a alguien del punto A al punto B sin ruedas.

El propósito del automóvil (caja segura y cómoda) es el transporte, no reaccionar a la entrada del volante. Un verdadero automóvil autónomo no debería tener ningún volante, dado que el humano o algún actuador lo gire, no importa. ¿Son los autos autónomos el futuro? No. Conducir se volverá pasado, no importa quién lo realice. Simplemente le dice a la caja dónde quiere estar y lo lleva allí.

¿Por qué toda la forma de vida alienígena en las películas de ciencia ficción debe parecerse a los humanos (distorsionados) con piernas, brazos y una cabeza fea? Puede ser plasma. O algunas partículas invisibles. O algo verdaderamente incomprensible e inconmensurable fuera de nuestro mundo tetradimensional.

Si bien existe un concepto de memoria, es decir, asociaciones residuales entre algunas células: los transistores o las neuronas no importan, tal vez las futuras computadoras sean tan poderosas que no necesiten memorizar formas externas o aprendidas de resolver el problema, deduciendo la solución correcta sobre la marcha. Por lo tanto, sin instrucciones residuales programadas sobre cómo resolver el problema, no es necesario programarlas. Piense en ello como un firmware final, que no necesita ningún ajuste o actualización.

Tendrás que ser un poco más específico sobre cuán grande es el alcance de un proyecto que quieres que tome la computadora. Si lo define de forma bastante limitada, entonces ya lo hacen.

“Hey, Siri, llama a James por mí”.

Hay un código que iOS tiene que armar para buscar “James” y marcar correctamente el número correcto. No es que haya una grabación en cinta del número de teléfono de James dentro del dispositivo que simplemente debe seleccionarse.

Pero por otro lado, si te refieres a algo como:

“Hola computadora, escríbeme un nuevo sistema operativo, considera las tendencias pasadas y futuras y diséñalo de tal manera que pueda desplazar a todos los demás sistemas operativos dentro de diez años, incluidos los sistemas operativos que otras personas piden a sus computadoras que escriban mientras tanto”.

Luego pasarán bastantes años antes de que su computadora responda:

“Sí claro. Ahora pregúntame algo razonable. ¿Podría predecir el ganador de la Copa del Mundo para los próximos diez años, tal vez?

Y comprende de qué está hablando.

Las computadoras ya escriben código por sí mismas. Los programas que hacen esto se llaman compiladores. Toman una descripción de un problema en un sentido más generalizado, independiente de la máquina, y los convierten en instrucciones de la máquina.

Es posible que obtengamos lenguajes cada vez más altos, por lo que lo que le decimos a la computadora que haga se abstrae cada vez más del hardware real y se expresa más en términos del problema a resolver. Pero aún tendremos que decirle a la computadora lo que queremos que haga, y siempre habrá problemas para expresar esto con suficiente claridad como para que la computadora haga lo correcto. Entonces el problema de la programación siempre permanecerá. Simplemente estará menos preocupado con el hardware detallado de la computadora. Como, de hecho, los idiomas de alto nivel ya lo son.

Bueno, en teoría, ya lo es. Pero su pregunta recuerda una historia de física:

Un periodista pregunta a un físico “¿Los físicos se volverán obsoletos pronto? Dada la potencia de procesamiento y la confiabilidad de las computadoras modernas, ¿no sería más simple programar una computadora con todas las ecuaciones y dejar que haga el trabajo?”
El físico responde con “¿A quién se le ocurrirán nuevas reglas y ecuaciones?” y se va

Las computadoras pueden en teoría programarse a sí mismas. Pero la creatividad es actualmente un concepto fuera de su alcance. ¿Y te das cuenta de la complejidad de estos juegos multijugador?

Yo diría que los programadores están a salvo por un tiempo todavía.

Ciertamente.

Usando a los humanos como ejemplo, tenemos un “código” de ADN que se transmite de generación en generación. El ADN es efectivamente el código de máquina que permite que todos los humanos aprendan. A los humanos les tomó millones de años lograr esto porque el ciclo de vida de los humanos es de muchas décadas y la adaptación del ADN es algo aleatoria que solo influyó en el proceso de presión selectiva natural. La clave es que el programa de ADN se reescribe ocasionalmente utilizando la evolución.

Con las máquinas, sin duda, esto será mucho más rápido porque el tiempo entre generaciones puede ser mucho menor. Además, las máquinas no necesitan perder tiempo y energía compitiendo en el ecosistema por alimentos, agua y supervivencia. Las máquinas se centrarían únicamente en ser más inteligentes.

Desde el punto de vista de la programación, ya existe una cantidad limitada de inteligencia en las máquinas, ya que “aprenden” a optimizar los parámetros de tiempo de ejecución en función de los datos observados. Luego se adaptan sin cesar a medida que los datos observados cambian con el tiempo. Actualmente están limitados por las restricciones iniciales del diseño inicial y, por lo tanto, la adaptación siempre está limitada.

Para que surja la verdadera inteligencia, la máquina tendrá que observar mediante la recopilación de entradas, formular un modelo de trabajo y luego probar el modelo. Los científicos humanos hacen esto todo el tiempo. Un avance clave sería la capacidad de las máquinas para crear nuevos conceptos fundamentales como el cálculo o la bioquímica. La máquina no necesariamente necesitaría duplicar estos campos, ya que podría llegar a un modelo de trabajo utilizando un marco conceptual diferente que se adapte a sus capacidades. El marco científico que usan los humanos es un producto de la capacidad informática limitada de la mente humana. Las máquinas no tienen tales limitaciones.

Usar el cerebro humano, el ADN, etc. como modelo para la inteligencia artificial probablemente sería una mala elección, pero posible. El mejor enfoque sería aprovechar las fortalezas naturales únicas de las máquinas. En términos de permitir la creatividad en las máquinas, esto ocurrirá en un alto nivel de abstracción cuando las máquinas pueden probar aleatoriamente diferentes modelos que no han sido preprogramados. De hecho, todo el concepto de programación probablemente quedará obsoleto como un concepto primitivo que se reemplaza por un mecanismo de nivel superior.

Muchas personas necesitan alejarse del complejo de superioridad humana y darse cuenta de que los humanos son solo organismos bioquímicos que operan con un poder de procesamiento limitado de manera eficiente en energía. La inteligencia es simplemente un producto de nuestro ADN y del conocimiento escrito acumulado en el pasado de nuestros antepasados. La inteligencia no requiere lo sobrenatural, es un proceso físico que utiliza átomos como todo lo demás. Una máquina es solo una colección diferente de átomos. La inteligencia humana es posiblemente un logro sustancial, pero ciertamente no es único en el universo. No lo sobrevalores.

Creo que no hay una respuesta directa SÍ o NO a preguntas como estas, porque esas respuestas son especulativas o reflejan reflexiones personales, inseguridades, sentimientos (odio o amor) del tema.

Cualquier respuesta a esta pregunta debe comprender el estado actual de la técnica. Machine Learning (ML) es esa rama de la Inteligencia Artificial (IA) que se ocupa de la clasificación, agrupamiento, identificación, reconocimiento, predicción, pronóstico, etc. En ese sentido, ¿puede ML responder su pregunta? No lo sé. Sin embargo, si reemplaza ML con AI en su pregunta, la respuesta es: ¿puede ser cuándo? Nadie lo sabe con certeza. Aunque con grandes avances tecnológicos, las computadoras más avanzadas todavía están luchando para pasar la prueba de Turing. Pero están sucediendo cosas, más recientemente leí este artículo en la BBC sobre un Jefe Virtual (¿Podría una máquina ser tu jefe algún día?) Con un poder de procesamiento increíble pero con sus propias deficiencias y defectos. Para abreviar, en nuestra vida veremos muchos más avances, pero el objetivo final de la IA para producir robots de ciencia ficción que puedan escribir códigos para nosotros está muy lejos en el futuro, muy probablemente para nuestros nietos. para presenciar.

Gracias por A2A. Mis dos centavos: sí, lo harán. Por ahora, algunos de los frameworks (Java, .NET) pueden mejorar sucesivamente la calidad del código de máquina generado, para fragmentos de código que se llaman con frecuencia. Esto era inconcebible hace una década.

No veo que eso llegue pronto. Los humanos son clave para desarrollar código para que las computadoras funcionen. En cuanto al diseño de una interfaz para interactuar entre codificadores y computadoras para simplificar el esfuerzo de codificación, todavía está en progreso y ha estado progresando desde que aparecieron las primeras computadoras. En cuanto a la automatización en las computadoras que instalan código en las computadoras, ya estamos allí; sin embargo, las computadoras nunca serán lo suficientemente inteligentes o independientes como para no necesitar humanos. Siempre se requerirá que los humanos escriban, editen y depuren código y reparen las computadoras y máquinas que diseñamos.

Ya lo están haciendo. Seriamente. Primero está el simple que se genera automáticamente a partir de su trabajo. Tome el editor de microsoft, decore lo suyo y guárdelo como un archivo html. Cuando abres el archivo, encuentras un bloque de código que realmente hace tu trabajo. Esto es simple y ha estado aquí por mucho tiempo.

El otro es un código completamente generado por la computadora para resolver problemas. Por supuesto, esto es un poco más difícil que el otro, pero con la tecnología actual es posible. Tome Watson y Alpha Go que ‘aprenden’ por sí mismos repitiendo y entendiendo dónde se equivocaron.

Es un miedo poco realista, pero al mismo tiempo no estoy afirmando que nunca sucederá.

Aprender CS, junto con trabajar en el campo durante casi 15 años, ha sido una preocupación persistente para mí por una buena parte de eso. Y créanme, este tema ha sido discutido durante décadas. Finalmente se desvaneció de la memoria ya que el día del juicio final prometido nunca llegó.

Entonces tuve una epifanía. En los últimos años, he notado un aumento en los trabajos antiguos que se destruyen y se reemplazan con automatización. Esto surgió viejas preguntas que tenía sobre mi carrera. Luego recordé buenos recuerdos de leer mi primer libro sobre programación orientada a objetos. Y la euforia que sentía en aquel entonces hacia la idea de modelar todos los días las cosas en formas abstractas. Me pareció que todo era posible.

Luego sucedió, me di cuenta de que lo que he estado haciendo durante la última década fue modelar sistemas existentes. Que el software en el que yo y otros hemos trabajado ha cambiado de una forma u otra la forma en que se llevan a cabo los negocios. Y en conjunto, esto tuvo efectos devastadores en el empleo.

Para mí esto lleva a una única conclusión lógica. Que el día que mi trabajo haya sido reemplazado, todos los trabajos quedarán obsoletos. Las únicas ocupaciones serían políticos y celebridades.

Esto ya está sucediendo ahora.

Las máquinas escriben cada vez más código. Al menos más y más código repetitivo y autocompletado. Esto libera tiempo del desarrollador para centrarse en otros aspectos del código.

No, no te preocupes por eso. Las computadoras han sido seguidores de instrucciones tontas durante todo su período de existencia, y no hay una buena razón para pensar que eso cambiará pronto.

Dicho esto, no puedo garantizar que esto no suceda, pero tampoco hay ninguna razón por la cual la mayoría de los otros trabajos no puedan quedar obsoletos de la misma manera.

Sí, podrán programarse ellos mismos. En particular, creo que te refieres a programar ellos mismos para lograr un objetivo especificado por un humano. En ese punto, los programadores pasarán de escribir código a especificar objetivos de diseño. Los compiladores modernos solo modifican el código para el rendimiento, nunca cambian el objetivo previsto de ningún fragmento de código.

Yo estimaría que las computadoras que se programan se verán en 15-20 años. Tenga en cuenta que el consenso estándar es más como 50-100, pero creo que no pueden ver qué tan rápido progresan las cosas. (Véanse los libros de Kurzweil sobre la Sigularidad. Él hace algunos argumentos muy convincentes y bien pensados. Aunque muchos de mis colegas rechazan sus ideas, muchos también las aceptan).

Si toma un promedio de estas dos vistas, obtiene 30-60 años más o menos, lo que en promedio le da 45 años (~ 2070). (Entonces, si cree que el grupo sabe más que el individuo, esta podría ser la respuesta para usted).

El día que se haga realidad, créeme, amigo, desearás no haber deseado nunca lo mismo.

Sí, creo que podrán programarse ellos mismos, pero no en el corto plazo. No tienes nada de qué preocuparte.

More Interesting

¿Cuál es la diferencia entre una matriz generadora y una matriz de verificación de paridad?

Cómo calcular la regla delta en el aprendizaje automático

Informática: ¿Por qué hay tan poca información que se puede almacenar en el registro de una CPU?

¿Cuáles son algunas de las aplicaciones del aprendizaje automático en análisis de publicidad en línea?

¿Por qué se eligen los símbolos de asterisco y ampersand para trabajar con memoria en lenguajes de programación?

¿Cuáles son las próximas conferencias o talleres importantes sobre procesamiento del lenguaje natural / lingüística computacional?

¿Cuáles son las funciones de la placa base de una computadora?

¿Qué tan difícil es especializarse en CS en UIUC como estudiante?

¿Qué necesito saber para construir una IA genérica?

¿Hay alguna forma metódica (algoritmo) de crear un autómata que acepte un idioma dado, dado el idioma como un conjunto ({w | condición (w)})?

¿Cómo funciona el mecanismo de alimentación en el torno?

¿Qué universidades de EE. UU. Lideran en qué subcampos de investigación de Inteligencia Artificial?

¿Cuál es la explicación más simple y mejor de cómo Google realmente venció a los otros motores de búsqueda? Mejores algoritmos? ¿Mejor modelo de negocio? ¿Mejor diseño de portada?

¿Cuáles son algunos de los problemas abiertos más importantes en biología computacional?

¿Cuál es la diferencia entre profundidad-primera-búsqueda y amplitud-primera-búsqueda? ¿Por qué DFS visita el nodo después de eliminarlo de una pila mientras que BFS visita el nodo antes de agregarlo a la cola?