La IA se considera un reemplazo para los programadores. ¿Cuál es la tarea de programación más complicada / no trivial que la computadora ha realizado hasta ahora?

Creo que la mayor victoria de la IA fue la derrota de AlphaGO, el mejor jugador profesional de 9dan, Lee Sedol en 2016 con un puntaje de 4 a 1 en una serie de 5 partidos.

¡El juego Go es uno de los juegos más complicados para la IA debido a la gran cantidad de movimientos posibles que se dice que es mayor que la cantidad de átomos en todo el universo conocido (un número de 173 dígitos)! El juego se juega en un tablero vacío de 19 × 19 y un juego típico puede tener alrededor de 300 movimientos. Jugar a Go también es difícil para la IA porque no hay un objetivo específico en el juego similar al “jaque mate” en el ajedrez, por lo que el jugador tiene que decidir el mejor movimiento cada vez en función de la situación en el juego donde puede estar “defendiendo” , “Atacando” o “haciendo territorio”. Por lo tanto, fue un gran hito para AI poder vencer a un jugador profesional, dejando a un lado al mejor jugador vivo.

Casi nadie que sea un programador real piensa que las IA harán cantidades significativas de programación incluso dentro de los próximos 50 años. Hay tanta complejidad en lo que hacemos que sería muy difícil automatizarlo.

Dicho esto, lo más complejo que he automatizado es la creación de pantallas .Net basadas en los procedimientos almacenados de SQL.

Tengo una pantalla Usted ingresa el procedimiento almacenado (el “Destino”) sobre el que desea construir sus pantallas. Luego, el proceso verifica cuántos parámetros hay en el procedimiento de destino y sus respectivos nombres. Luego crea el código fuente para la pantalla de entrada (con un campo de texto para cada uno de los parámetros) y la pantalla de resultados (donde se accede realmente al procedimiento de destino).

Copio la fuente en dos archivos en blanco y luego los guardo con los nombres correctos y luego termino.

Algo que solía llevarme un día o más para completar ahora se puede hacer en menos de cinco minutos.

No va a cambiar el mundo, pero sí califica como “no trivial”.

La pregunta ha cambiado desde que escribí esta respuesta. No sé cómo o si es posible ver la pregunta original.

La programación está a salvo de la IA porque la especificación de requisitos, no la programación, es el verdadero desafío en el desarrollo de software. Especificar verdaderamente los requisitos es equivalente a la programación.

Los requisitos deficientes son la razón por la que muchos, muchos proyectos de desarrollo de deslocalización fallaron. Estos proyectos fallaron, y fallaron mucho y no por las razones que mucha gente piensa. Los proyectos de desarrollo costa afuera fallaron por la misma razón por la cual fallan los proyectos de desarrollo local: falla al especificar adecuadamente los requisitos. Los proyectos costa afuera fallaron mucho más a menudo porque es mucho más fácil resolver un requisito cuando el gerente del proyecto se encuentra a dos filas del desarrollador, y las partes interesadas están arriba que cuando 12 zonas horarias separan Ingeniería de Gestión. Las empresas no fueron mejores en la captura de requisitos cuando trasladaron Ingeniería a Mumbai mientras mantenían la administración en los EE. UU. Perdieron la estructura social informal y poco apreciada que se había utilizado para resolver los requisitos.

Bueno, la IA está lejos de ser un reemplazo para los programadores. Hasta ahora, la IA ha sido capaz de lograr muchas hazañas. Su pregunta depende de cómo se mire “trivial”, pero supongamos que por no trivial, se refiere a una tarea compleja que toma conciencia de múltiples variables, etc. y aplica esta conciencia en algún tipo de acción. Diría que la tarea más complicada que ha logrado hasta ahora ha sido ayudar a los programadores a crear bloques de código.

La razón por la que nunca reemplazará completamente a los programadores es porque la IA, hasta el momento, no es muy consciente de las necesidades humanas. Además de esto, AI todavía no se autoprograma. AI no puede decidir qué software hacer en función de una necesidad. Puede recomendar software, pero no puede construir este software y probablemente nunca podrá hacerlo.

Con la idea de que aprender es una tarea en sí misma … y una tarea de programación, los robots han tenido más avances en este campo que el software. Un robot caminante que usa IA puede “programarse” para caminar … o aprender y ajustar su red neuronal para adaptarse a las condiciones basadas en sus sensores (flujos de datos entrantes). Sin embargo, siempre tiene que tener una meta, por ejemplo, llegar a un cierto punto un par de metros por delante, mientras mantiene la cabeza lo más alta posible en el aire (permanecer de pie).

En conclusión, la IA necesita un objetivo para aprender a lograrlo. Y, por lo general, este objetivo es algo que un humano quiere lograr. La programación de una pieza de software es un proceso creativo, por lo tanto, es mucho más difícil de cuantificar en términos de aprendizaje y tiene una gama tan amplia de interfaces, bibliotecas, objetivos y formas de lograr ese objetivo, que no creo que una computadora alguna vez “hará” software sin supervisión humana.

El programa más complicado que una IA ha escrito hasta ahora es otra IA (millones de líneas de código C).

Esto se ha probado en miles de problemas en lógica y matemáticas: la idea es que el administrador de inteligencia artificial impulse la creación de reglas de la inteligencia artificial administrada, haciendo experimentos, interpretando resultados y ajustando reglas y parámetros (básicamente, actuando como una “inteligencia artificial artificial científico”).

Aquí está el artículo: Un paso hacia un científico de IA artificial.

Es una idea interesante; de ​​hecho, es un poco improbable que podamos crear un AGI manualmente; La tarea es demasiado compleja. Pero una serie de IA, cada una creando una IA más cercana a la meta de AGI … no es la primera vez que el bootstrapping ha sido la solución a un problema 😀

A muchas personas les gusta pronosticar el futuro. Es divertido. Pero también es una incógnita. ¡Es muy probable que el futuro nos sorprenda y todos estemos equivocados!

Aquí está mi suposición: la automatización de la programación está llegando. Casi cualquier otra profesión en este mundo enfrenta la automatización en un grado u otro. ¿Por qué la programación debería ser inmune?

El tipo de automatización que hemos estado viendo últimamente no es la variedad AI. No es realmente inteligente. Sin embargo, lo que sí hace es aumentar la productividad, permitiendo que menos personas realicen el trabajo. Menos personas significa menos oportunidades de empleo.

Para la industria de la programación, estas personas no serán necesariamente programadores profesionales. Si la herramienta de automatización es lo suficientemente fácil de usar, incluso las personas normales podrán crear aplicaciones de software. Los productos como Scratch solo rascan la superficie (vea lo que hice allí).

Eventualmente, sin embargo, este tipo de automatización dará paso a la programación de “bots” que pueden producir aplicaciones de manera completamente autónoma. Nosotros, los usuarios, proporcionaremos los requisitos, tal vez en inglés simple o tal vez en un lenguaje de definición simple . También puede llamar a esto “programación”, pero no requerirá capacitación especial. No requerirá universidad ni bootcamp ni Udemy.

El ritmo de la evolución tecnológica se está acelerando. Es difícil adivinar cuándo llegarán los bots de programación. Podría ser dentro de 50 años. Podría ser cien. ¿Quién sabe?

Nuestros trabajos de programación son seguros por el momento y tal vez las próximas décadas. Simplemente no cuente con que sus hijos ni sus nietos entren en la profesión de programación.

~ NostraEngus

Estoy totalmente de acuerdo, será increíble cuando las máquinas podamos generar código automáticamente. Todavía habrá desarrolladores de software que implementarán los algoritmos de generación de código. Incluso establecer los objetivos para los algoritmos de generación de software requerirá una habilidad y conocimiento significativos que imagino.

Cuando las máquinas y el código pueden ejecutarse 1000x – 100000x más rápido, y los algoritmos de fuerza bruta y las soluciones muy genéricas pueden funcionar para más usuarios y casos de uso, entonces podemos comenzar a aplicar IA al diseño y desarrollo de software.

Francamente, hasta entonces, necesitaremos humanos para escribir y ajustar el software para el 99.99% de las aplicaciones. Las permutaciones de diseño de software son simplemente demasiado buenas para la mayoría de las computadoras y la mayoría de los algoritmos de IA. Solo un humano puede hacerlo en estos días.

La computación cuántica es la única oportunidad que veo de que la IA sea más dominante en el desarrollo de software. No solo necesitamos un cómputo más rápido, sino que también necesitamos un par de algoritmos de generación de código que rompan la Tierra, y probablemente algunos nuevos lenguajes de computadora avanzados. Aunque me imagino que el código generado automáticamente sería ensamblado o binario o lo que sea. (Supongo que las computadoras cuánticas pueden ejecutar código binario, LOL, pero IDK).

🙂

Aquí viene el apocalipsis LOL

Nunca he visto ninguna tarea de programación, incluso de complejidad trivial, realizada por AI hasta la fecha.

Nunca he oído que se haga en ningún lado.

Ningún IDE ofrece ningún tipo de complemento para usar AI incluso para las tareas más básicas. Y ese será el punto de partida para la IA en la programación, como tecnología de asistencia para programadores humanos.

Así de cerca estamos en 2017.

En ninguna parte.

No estoy seguro de si alguien que sabe algo sobre programación piensa que AI lo hará pronto.

Creo que la altura de la IA probablemente sea de autos sin conductor, es decir, si incluso puedes llamarla “AI”, es muy discutible lo que realmente es o debería ser la IA.

Ni siquiera estamos remotamente cerca de tener a AI haciendo programación en el mundo real, ni de lejos.

More Interesting

¿Cuáles son algunas aplicaciones novedosas para el aprendizaje profundo?

¿Cómo detectan los automóviles los letreros mediante el aprendizaje automático?

¿Cuán grande es la amenaza de los pesimistas antitecnológicos que tienen dudas y temores sobre el futuro?

Después de aprender robótica, ¿es posible para mí construir un robot? ¿Como un robot humanoide, drones de piloto automático o robots comandados por voz?

¿Cuáles son los programas de maestría para el aprendizaje de refuerzo profundo y / o el aprendizaje profundo en robótica en general? ¿Dónde puedo postular, particularmente en Europa?

¿Cómo ser directo como en un programa de posgrado de IA / robótica? ¿Qué recursos debería mirar en mi tiempo libre?

¿Hay algún recurso sobre cómo integrar la inteligencia artificial en los complementos de WordPress?

¿Por qué los ingenieros de software franceses son tan buenos en las competiciones de IA?

¿Por qué hay muchos cursos falsos que pretenden enseñarte aprendizaje automático y aprendizaje profundo?

¿Podría alguien usar la inteligencia artificial para alterar la Ley de Atracción para sí mismo como una máquina de deseos?

Si Siri tuviera una cara, ¿cómo sería (él / ella)?

Si crearas Inteligencia Artificial General, ¿cómo harías para conquistar el mundo?

¿Es posible tener Inteligencia General Artificial (AGI) a nivel humano y, sin embargo, no tener conciencia?

¿Por qué Watson de IBM explotó tan mal el Final Jeopardy el 15 de febrero y por qué apostó tan bajo?

¿Cuál es una buena manera de entender un buen descuento?