¿Cuántos años transcurren hasta que la IA y el aprendizaje automático comienzan a reducir los trabajos de desarrollo de software?

No lo veo en el corto plazo.

Todavía no estamos cerca de una inteligencia general. Por lo tanto, reemplazar las capas de comprensión utilizadas en la programación como se hace ahora está muy lejos.

Por lo general, para codificar una característica, debe comprender cómo persuadir a los usuarios para que hagan cosas, proporcionar una interfaz de usuario clara, comprender cómo codificar la lógica de back-end para que no entre en conflicto con el diseño o las funciones del software anterior, hacer que sea comprobable, comprender el impacto almacena datos y versiones, y permite la implementación en granjas de servidores.

Replicar así suena difícil.

Puede ser que descartemos el software en cada cambio, si lo generamos. Y el diseño de software tal como lo conocemos hoy desaparece, ya que solo está allí para permitir que los humanos manejen la complejidad.

Esto puede permitir que suceda una forma de especificación para el código de máquina.

Pero no puedo concebir cómo esto explicaría los conjuntos de datos almacenados. O incluso cómo combinaría características a medida que crezca el programa.

El problema hoy es que la IA significa una cosa limitada para los investigadores, pero ‘Levántate si los droides ”para el resto de nosotros. Y aún no es tan inteligente.

Incluso autos sin conductor. Lo que pasa por la IA lo hacen muy felizmente los caracoles y los peces pequeños. Se llama ‘mirar hacia dónde vas’.

Es un logro sobresaliente brillante, pero dudo que la IA llegue a reemplazar la programación. Es de una naturaleza completamente diferente.

La IA ya está teniendo un impacto en el desarrollo de software, por ejemplo, los correctores de pelusa ayudan a limpiar el código, al identificar y marcar estructuras de código sospechosas, y los compiladores de optimización han reducido drásticamente la necesidad de ajustar manualmente el software para producir el código más eficiente posible.

Esto no se ha traducido en un impacto significativo en los trabajos de desarrollo de software, porque la demanda de desarrollo de software parece seguir aumentando: una mayor productividad hasta ahora simplemente hace que las personas quieran más.

Donde veo que la IA tiene un impacto es cuando hace que la codificación sea tan fácil, incluso los no expertos pueden hacerlo.

Ha habido pasos en esta dirección. Por ejemplo, HyperCard fue diseñado para ser extraordinariamente fácil de usar para los no programadores, incluso 15 años después de su desaparición como producto, todavía tiene una base de fans, su sintaxis de programación en inglés (casi) natural (declaraciones como “ponerlo en el campo de nombre”) dio a los no codificadores la confianza para construir sus propias pilas de Hypercard, a menudo con mucho éxito.

Hypercard fue abandonada debido al auge de las tecnologías HTML / web; Hypercard nunca dio el salto a la era de Internet. Pero HTML / Javascript no es tan fácil de desarrollar como Hypercard: Javascript está lleno de símbolos arcanos y sintaxis.

Tarde o temprano, alguien intentará hacer que la programación sea más accesible para los no desarrolladores nuevamente, y sin duda hará un uso intensivo de la inteligencia artificial para detectar y corregir posibles errores de codificación.

Gracias por el A2A, llevará mucho tiempo reemplazar los trabajos de desarrollo de software con IA. Los programas de computadora necesitan que se les diga exactamente qué hacer, incluso nuestros programas actuales de inteligencia artificial y aprendizaje automático deben programarse para tareas específicas o cosas específicas para aprender. Si bien puedo escribir un programa que puede escupir código simple, es mucho más difícil decirle a una computadora lo que desea compilar y hacer que lo construya solo sin ninguna otra entrada. Todavía necesitaremos desarrolladores de software una vez que tengamos una IA para construir el código, simplemente para decirle a la IA lo que se necesita construir y para proporcionar los detalles del programa, los módulos y las funciones que deberán construirse.

Cuando era pequeño, deseaba tener algo como el teléfono que estoy usando para escribir esta respuesta antes de morir. Los humanos fantaseaban con una máquina voladora hace unos 100 años. Entonces, la IA puede hacerse cargo de los trabajos de desarrollo en los próximos 10 años, tal vez 100 años. Muy difícil de predecir.

Sin embargo, los trabajos de desarrollo de software consisten en muchas tareas, incluida la planificación, el diseño, la codificación, etc. Por lo tanto, sospecho que la IA ya reemplaza a los humanos en etapas específicas, como la asignación de tareas, la optimización de operaciones, etc.

En cuanto a la codificación, no creo que tengamos que esperar mucho tiempo. No necesitamos IA general para hacer el trabajo. Con un conjunto de datos de entrenamiento razonable, podemos entrenar a una IA estrecha para generar funciones, clases o lo que queramos. Las cosas serán más complicadas para un mayor nivel de abstracción, pero finalmente se resolverán.

Lo que la mayoría de la gente quiere decir cuando dice “AI” y “Machine Learning” son técnicas estadísticas. Carecen de lógica.

El desarrollo de software es todo matemático aplicado, correcto o incorrecto, puramente lógico y aplicado.

Sospecho que hay una escala en la que las técnicas estadísticas pueden, como lo hacen los cerebros humanos, educar a la lógica, pero está mucho más allá de lo que podemos construir hoy o en la próxima década o algunas que el desarrollo de software continuará requiriendo intelectos humanos para muchos los próximos años.

Cuando confiamos en las cifras de Ray Kurzweils, alrededor de 2045.

Si cree en sus ideas y cifras, en ese año seremos testigos de la singularidad y obtendremos máquinas que pueden trabajar con requisitos que son:

  • En lenguaje humano
  • No formal especificado
  • extraído en un proceso iterativo de preguntas y respuestas

Antes de eso obtendremos herramientas que ayudan a los ingenieros cada vez mejor, pero actualmente no creo que eliminen sustancialmente los trabajos.

Nunca tengo una profunda preocupación por esto. No es porque no crea que la IA pueda eventualmente reemplazar a los humanos en el desarrollo de software. Es porque sé que si la IA puede reemplazar a los humanos en el desarrollo de software, entonces puede reemplazar a todos los demás campos de la actividad humana.

En cuanto a cuánto tiempo lleva hacer que esto suceda, no lo sé. Hace un año, somos bastante optimistas acerca de ‘GO’ de que su complejidad garantizará que no habrá ninguna criatura en la tierra que no sea humana que pueda jugar este juego a nivel profesional. Sin embargo, Google nos ha demostrado que estamos fundamentalmente equivocados con esta opinión parcial al mostrar su bot ‘AlphaGo’. Hoy en día, la ciencia y la tecnología se están desarrollando a una velocidad tal que no me sorprendería si algunos años después alguien sale y muestra su maravilloso robot golpeando todos los aspectos del ser humano.

Es como preguntar, en cuánto tiempo las pasas ocuparán por completo el espacio dentro de un pastel.

AI, ML son como pasas que hacen que el pastel base sepa mejor. El pastel base es el principal desarrollo de software para construir un almacén de datos maduro en el que se distribuirán las pasas.

Décadas? ¿Siglos?

No pronto, eso es seguro. Las computadoras electrónicas, que ejecutan RISC o SISC, no son capaces de AI real, solo sistemas inteligentes. Se necesitará al menos una computadora cuántica para aproximar incluso la IA, y no creo que eso nos dé una IA realmente completa tampoco.