¿Seguirá siendo la escritura de código una actividad humana

IMAGE: Christopher Kuszajewski - Pixabay

La discusión sobre si la tarea de escribir código ejecutable va a seguir siendo o no una actividad humana se está acelerando a cuenta de las últimas herramientas de machine learning desarrolladas y puestas a disposición de los usuarios por algunas compañías. Probarlas es sencillo: basta con un pequeño prompt escrito en lenguaje perfectamente comprensible por un ser humano, para hacer que un asistente genere una serie de líneas de código, con instrucciones incluidas si se desea, que un desarrollador puede simplemente copiar y pegar.

A principios de diciembre, la revista Nature dedicó un artículo académico a evaluar una competición entre desarrolladores humanos y la herramienta AlphaCode creada por Deep Mind, y concluyó que era capaz de superar a muchos desarrolladores humanos en tareas relativamente complejas. En su número de enero de 2023, la prestigiosa Communications of the ACM publicó un artículo de opinión de Matt Welsh titulado «The end of programing« en el que se afirmaba que la programación tal y como la conocemos estaba obsoleta, y que la nueva unidad atómica de la computación eran «los modelos de inteligencia artificial masivos, previamente entrenados y altamente adaptables», algo que presentaba como «una enorme oportunidad, repleta de enormes riesgos».

Al artículo de Welsh en CACM contestó hace pocos días con sumo hartazgo Joe McKendrick, de ZDNet, en «It’s the end of programming as we know it – again«, afirmando que desde hace ya varias décadas, tecnologías como las herramientas CASE, 4GL, la programación orientada a objetos, las arquitecturas orientadas a servicios (SOA), los microservicios, los servicios en la nube, la plataforma como servicio (PaaS), la computación sin servidor o el low code / no code han afirmado ser capaces de eliminar las onerosas cargas derivadas del desarrollo de software y amenazar la seguridad laboral de los profesionales de este ámbito, para finalmente dar como resultado que su demanda en el mercado, su carga de trabajo y la búsqueda de sus habilidades no hagan más que aumentar.

En sentido contrario, un estudio de Stanford demostró recientemente que el hecho de escribir código utilizando para ello un asistente como GitHub Copilot no implica escribir mejor código, sino precisamente incurrir, en promedio, en un mayor número de vulnerabilidades y en código menos seguro.

¿Qué pueden esperar, entonces, los profesionales del desarrollo de software en el futuro? La conocida página «Will robots take my job?» afirma, cuando introducimos como categoría «computer programmers«, a los que atribuye un salario medio de unos $93K, que su riesgo de ser automatizados está en un escaso 41%, muy por debajo de muchísimas otras categorías profesionales. En categorías relacionadas, como «computer system analysts«, a los que calcula un sueldo promedio de $99K, establece un riesgo de automatización mucho menor, de un 10%, y para «computer and information research scientists«, a los que sitúa en salarios medios de $131K, un minúsculo 4%. Finalmente, para los definidos como «computer and information systems managers«, que tienden a salirse ya de nuestro análisis y a no definir tanto su actividad en base a la escritura de código, y a los que sitúa en escalas salariales en torno a los $159K, les otorga un riesgo de automatización de un 6%.

En mi opinión, partimos de un problema de definiciones: escribir código es muy sencillo. En la práctica, es mucho más sencillo escribir código en un lenguaje determinado que hablar un idioma, dado que los idiomas están plagados de inconsistencias, excepciones, reglas arbitrarias y tildes diacríticas, y los lenguajes de programación son, por necesidad imperiosa, generalmente precisos e inequívocos. Entender cómo se definen variables, cómo se establecen condicionales y cómo se definen bucles en un lenguaje de programación lleva muy poco tiempo, y escribir un programa razonablemente sencillo es una tarea que puede llevarse a cabo en no mucho tiempo. Sin embargo, la curva de la experiencia que va desde el simple manejo del lenguaje de programación a ser capaz de convertir ideas en código ejecutable de una manera adecuada y con una competencia profesional a buen nivel es muy, muy prolongada, y muchos profesionales no llegan nunca a completarla.

¿Qué ocurre cuando intentamos trasladar ese esquema de aprendizaje al ámbito del machine learning? Sencillamente, que nos resultará relativamente sencillo adiestrar a un algoritmo para que, partiendo de una base de datos con infinidad de ejemplos, sea capaz de programar, pero muy difícil conseguir que lo haga de una manera comparable a como lo hace un desarrollador con experiencia. Los repositorios que se suelen utilizar para adiestrar este tipo de herramientas están plagados de ejemplos código bueno, pero también de código mediocre o malo, lo que redunda en que el resultado obtenido no tenga siempre la calidad que esperamos de él.

¿Y de cara al futuro? ¿Qué ocurre cuando estos algoritmos, a base de correcciones sucesivas, de filtrado consistente de sus repositorios de aprendizaje y de mejora de sus sistemas de evaluación, van avanzando en sus prestaciones? Posiblemente seamos capaces de obtener una herramienta que maneje el lenguaje de forma muy competente y que obtenga resultados elegantes, pero por el momento, no estamos aún ahí, y mi impresión es que estamos aún lejos de estarlo.

¿Debemos seguir tratando de enseñar a los niños a programar? La respuesta a esa pregunta es un categórico sí. Primero, porque programar ayuda a estructurar ideas, a ordenar los pensamientos y a definir tareas, y es, por tanto, una muy buena manera de enseñar cosas. Segundo, porque es una habilidad que siempre tendrá aplicaciones interesantes. Y tercero, porque nos nos dirigimos a entornos – estamos ya en ellos, en realidad – en el que prácticamente en todo momento estaremos rodeados de objetos programables, y es bueno ser capaces de entendernos con ellos y de hablar su lenguaje.

¿Opiniones?


This article is also available in English on my Medium page, «Will human developers write code in the future?»

42 comentarios

  • #001
    JPR - 2 enero 2023 - 19:00

    No sé si será exactamente igual pero los interesados pueden leer el preprint que es gratis no como el Science ( creo que no es de Nature)

    https://arxiv.org/pdf/2203.07814.pdf

  • #002
    David - 2 enero 2023 - 19:21

    El artículo mainstream que necesitábamos. Un sí, pero no tanto. Un seguro, pero aún no. Mesura. Contención, sin sesgo.

    Decir que «una IA puede sustituir a un programador» de forma genérica es como decir que una máquina puede sustituir a un carpintero. Depende de para qué y de la máquina; y —desde luego— del carpintero.

    En esas estamos.

  • #003
    Benji - 2 enero 2023 - 19:28

    Hombre, si me dejan sin trabajo habrá que reinventarse :-)

    Creo que MUCHO código es redundante, pero aun no he visto un software que haga bien unas pruebas de validación y calidad como Dios manda. Igual ese será mi trabajo futuro, analizar si la ML/IA ha generado un código válido para pasar a producción.

    Eso sí, una cosa es que aprenda javascript o C y otra que aprenda Oracle/SAP/Enablon. Lo digo porque uno es puro código y el otro tiene configuraciones por detrás del código

  • #004
    Miguel Ángel Gómez - 2 enero 2023 - 19:37

    En un momento de tanta discusión/confusión global sobre la AI, de El Mito de Larson a los dataístas de Harari, los nuevos apocalípticos e integrados de Eco, pues que me parece un soplo de aire fresco y claridad cada línea de este artículo que guardo en mis imprescindibles sobre el tema. Thanks, Enrique.

  • #005
    Alfredo Hoz - 2 enero 2023 - 19:47

    Me queda el consuelo de que podre decir: «yo estuve alli»

    y por «alli», me refiero a lo artesanal… :P

    • GuilleG - 3 enero 2023 - 18:19

      Seguirán las casas diseñando las arquitectos y los buques ingenieros o una máquina automatizara el diseño?

      La automatización de actividades intelectuales exigente en el ser humano NO EXISTE.

      Existen y existirán herramientas que faciliten pero nunca sustituirá, máxime el diseño de tests que tiene que pasar un programa por ejemplo.

      • FER - 7 enero 2023 - 08:55

        O si.

  • #008
    DPINYA - 2 enero 2023 - 20:20

    Siempre serán necesarios programadores, no haciendo los desarrollos de más bajo nivel, pero si uniendo los programas generados por una IA, traduciendo las necesidades de un usuario a requerimientos, validando el código generado, etc. etc.

    La necesidad de programadores no irá a menos, irá a más, conforme la programación se vaya expandiendo a más campos. Cambiará el enfoque: igual que ya no se programa un quicksort, sino que usas una librería, las IAs generarán módulos base, serán una gran ayuda y complemento para el programador.

  • #009
    Jordi - 2 enero 2023 - 20:25

    En mi opinión, estos sistemas servirán para aumentar la productividad de los programadores talentosos 10x.
    Será como un pair programming. Podrás hacer cosas sencillas a velocidades nunca vistas y, con tus ojos de experto, hacer correcciones de lo que tu asistente cibernético va sugiriendo.

  • #010
    Gorki - 2 enero 2023 - 21:00

    Creo que en informática hay dos labores, definir que es lo que queremos que haga el programa, que es lo que se llama análisis y en segundo lugar, escribir el programa en un lenguaje informático, capaz de hacer que el procesador haga lo definido en el análisis, que es en lo que consiste la programación.

    Quienes como yo, ha visto estupefactos, lo rápido que han aprendido las máquinas a hacer traducciones de una lengua a otra, incluso a lenguajes tan complejas, como son los ideogramas chinos, creemos que el programar, que en el fondo no es mas que «traducir» un análisis a un lenguaje de programación. se llegara a hacer automáticamente y que buena parte de los programadores tendrán que hacer otra cosa, como les ha ocurrido a los traductores de idiomas., que no han desaparecido pero tienen otras misiones que traducir literatura de consumo.

    Siempre habrá trabajo de programación, quizá en una primera fase, sea el escribir los «prompt», que precisen los «programadores digitales», para transformarlos directamente en ensamblador, (para qué los pasos intermedios).

    Pero incluso esta será un fase de corta dirección, Pero en mi opinión aun estamos muy lejos de tener una maquina capaz de analizar un problema y buscar una solución digitalizada sin ayuda humana.

    • Miguel Ángel Gallego - 2 enero 2023 - 21:19

      No habrá una desaparición de programadores, sino de las tareas más básicas de un desarrollador. Me gusta el Comentario de Gorki: harás las mismas tareas básicas, más rápido. Es la diferencia entre apretar una tuerca a mano, con una llave o con un atornillador a motor.
      Ha pasado en otros oficios, artes gráficas, todas las actividades industriales, periodistas…

      • Raúl Concha - 3 enero 2023 - 22:59

        De acuerdo al cien por cien

  • #013
    Rodrigo - 2 enero 2023 - 21:05

    En mi opinión, partimos de un problema de definiciones: escribir código es muy sencillo

    Escribir código es sencillo pero escribir código que haga lo que debe hacer y no haga lo que no debe hacer no es tan sencillo.

    En tú artículo mencionas herramientas y formas de trabajo que se han creado para mejorar los desarrollos y aún así si haces una pequeña búsqueda con tu buscador favorito verás la cantidad de proyectos software fracasados. ¡Ojo! Hay muchas causas de fracaso pero una de ellas tiene que ver con lo «fácil» que es escribir código cuando los requisitos son complejos. Y no hablo sólo de requisitos funcionales: rendimiento, seguridad, portabilidad, fiabilidad, robustez…

    No mencionas otros temas que han ido naciendo por la complejidad del desarrollo software como puede ser la orientación a objetos o las metodologías ágiles.

    Resumiendo, desarrollar software correcto en tiempo y en presupuesto no es nada sencillo.

    • Gorki - 2 enero 2023 - 23:54

      Jamás he conseguido desarrollar una aplicación en tiempo y en presupuesto. En el mejor de los casos he necesitado sólo algo mas de tiempo, y eso, cuando trabaja un equipo de unas 10 personas, es también algo mas de presupuesto.

      En el transcurso de un trabajo, siempre han aparecido cosas mas complejas de lo estimado, nunca he tenido la suerte de encontrar, de repente, una simplificación a lo previsto.

    • Alfredo Hoz - 3 enero 2023 - 11:28

      En mi opinión, partimos de un problema de definiciones: escribir código es muy sencillo
      Escribir código es sencillo pero escribir código que haga lo que debe hacer y no haga lo que no debe hacer no es tan sencillo.

      Efectivamente. En mi primera lectura, ayer, del artículo, esta frase me rechino y dio a entender un cierto menosprecio hacia los programadores. Hoy, en relectura, es una aseveración que comparto con la matización que usted hace.

      Aprender determinados lenguajes de programación es relativamente sencillo a poco que uno ponga interés. Lo difícil, es que sea “buen código”.

      A lo largo de mi carrera, casi 40 años, he visto de todo. Pero a muchos programadores, yo les quitaría el “titulo”. Conocer “como” se programa (conocer el lenguaje) no es ser programador. Hace falta lo que te aporta el plus, de saber minimizar, optimizar, y garantizar, que tu código será limpio y efectivo. Y por desgracia, eso no abunda. He visto autenticas aberraciones, como funciones de 3000 líneas de código, que de haber pensado un poco, hubieran podido reducirse a apenas unas 300/500. Vueltas y más vueltas inútiles para llegar al mismo resultado, codigo redundante y repetitivo, inicializacion de variables que no se volvian a usar o incluso lineas de comentarios que no se actualizaron al cambiar el codigo.

      En el articulo anterior, se hablo en comentarios sobre el problema del efecto 2000. Eso es un ejemplo. Entendiendo el contexto en el que se crearon esas aplicaciones (hard muy antiguo, escasez y encarecimiento de memoria y almacenamiento, etc) ahorrarse dos bits era significativo, pero no determinante. En muchos casos que tuve que revisar a finales de los 90 cuando venia el lobo, fue simple desidia. Se prefirió utilizar variables char de 8 para almacenar y tratar las fechas, en lugar de emplear funciones y librerías para apoyarse (time.h o struct tm. Al fin y al cabo, fecha/hora no deja de ser un numero entero). O por ejemplo, en Informix 4GL, utilizar esos mismos char cuando ya hay un tipo de variable DATE (es un caso real, no me lo invento). Supongo que serian los mismos que al oír la palabra “puntero” huyen como de la peste :P

      Otra cosa, es lo que ya se ha comentado por aquí, y es lo “sobrevenido”. Comerciales que venden la luna sin preguntar a desarrollo si se puede hacer (se puede, aunque cueste) o lo peor, si los plazos eran realistas. O aquel famoso “para cuando dice que lo quiere” o la cosa de las necesidades reales vs el resultado final. Proyectos que empiezan con unas especificaciones y a medio desarrollo, se cambian y apenas se puede aprovechar lo ya escrito… en fin.

      Para volver al tema. Creo que sí, que con el tiempo (no ahora ni mañana) las IA podrán ayudar y se perfeccionarán. Pero seguirá haciendo falta quien supervise su trabajo, y sobre todo, quien lo mantenga (porque facil, no sera mantener un «pastiche» que toma trocitos de aqui y de alli). Y como no, hará falta quien escriba el código de las mismas (las IA), que no crecen en los arboles.

      En definitiva, esta muy lejos el dia que una IA te escriba una aplicacion completa ella sola, por mas optimistas que nos pongamos, y no creo que el programador sea una especie en extincion.

      • Andres M. - 3 enero 2023 - 15:21

        Ante todo, reconocer que todos los comentarios son validos y no faltos de razón. Y por supuesto el articulo que ha iniciado este pequeño debate.
        Pero dicho esto las conclusiones son que:
        La. IA ha venido para quedarse.
        Con la aparición de la IA , se desmonta en parte el mito de los programadores: donde todo es misterioso y enrevesado.
        Que depende de lo exigente que sea un programador, asi sera la forma de plantear a la IA el script.
        Que la IA tambien puede incluir en los scripts las protecciones para prevenir las vulnerabilidades; solo hay que pedirlo.
        Que los lenguajes de programación evolucionan y que no hay que aferrarse a tediosos lenguajes del inicio de los tiempos.
        Que si eres un buen profesional no debes de temer por tu trabajo.
        Y por ultimo: estamos hablando de Open IA, donde el señor Musk es parte interesada y la conclusion en princio es basica: despedir a la mayor parte de Twiter porque la IA puede hacer sus trabajos. Todo lo que usa software come software

        • Alfredo Hoz - 3 enero 2023 - 16:08

          Bueno… todo eso esta muy bien…
          pero…

          a) no veo porque contestarme a mi explicitamente con algo que nada tiene a ver con el contenido de mi comentario (quizas sea un error al dar a la respuesta, no se lo tome usted a mal)

          b) Yo no niego, que en un futuro (futuro) la IA pueda servir de ayuda (no reemplazar)

          c) cuando le podamos decir a una IA: «hazme una gestion integral» (stock, facturacion, contabilidad, nominas), y la haga en menos del canto de un gallo, podremos decir que la IA, es perfecta. Y a lo mejor, «desaparecen» los programadores… :P

          Por tanto, de momento, todo son cantos de sirena… valga como ejemplo lo tantas veces dicho: de pequeños nos decian que en el año 2000 los coches volarian, y por el momento lo que tenemos es pelearnos por ver donde aparcamos…

          No soy negacionista de «esa IA», todo lo contrario. Soy de la opinion de que se esta avanzando mucho y en breve tiempo. Pero tampoco nos la cojamos con papel de fumar. Una cosa es que nos haga «trocitos de codigo» que podemos copipastear para ayudarnos en nuestras aplicaciones…

          ps.- del Sr Musk prefiero no hablar, que opinar en su contra hace que vuelen cuchillos… :P

        • Rodrigo - 3 enero 2023 - 16:42

          Conocí las herramientas CASE, y más concretamente Rational Rose a principios de este siglo. ¡Qué maravilla! Modelabas un conjunto de clases y ¡voilá!, estructura de clases generada automáticamente. En esa época ya se hablaba que a partir de estas herramientas CASE se pudiese generar todo el código (no solo la estructura de clases). Y por ahora no se ha conseguido. Aún así estoy convencido que en un futuro no muy lejano la IA será parte fundamental del desarrollo software pero todavía estamos en pañales en ese sentido. Te podría poner algún ejemplo en el que la IA actual fracasaría estrepitosamente pero también considero que tiene un gran margen de mejora. Aún así la parte humana seguirá existiendo durante bastante tiempo. Y en caso contrario ¡a reciclarse!, que en realidad es lo que hacemos continuamente los que nos dedicamos a esto.

          • JPR - 3 enero 2023 - 18:45

            Estuve probándola hace un tiempo, pero desde la última limpieza no la volví a instalar.

            Gracias por el aviso.

        • JPR - 3 enero 2023 - 17:00

          Para este artículo hay 2 papers,

          Uno el sencillo, el de Standford, que resumiendo, es una gilipollez, que vienen a decir que si utilizas tools como Copilot, el resultado es inseguro. Y es una gilipollez porque no se han enterado que si un «principiante» usa cualquier cosa, el resultado será el de un principiante con cualquier cosa que se haya ayudado, y si usas tools que tienen errores en sus fuentes, la almendrita del principiante no le da para más…

          Y además he puesto el PDF para que cualquiera pudiera leer lo que han conseguido con AlphaCode. Este es más serio. Y está publicado desde FEBRERO de 2022 en

          https://www.deepmind.com/blog/competitive-programming-with-alphacode

          Y resumido lo que dice es que en una competición «creativa» de código ha obtenido » una clasificación estimada dentro del 54 % superior de los participantes en competencias de programación al resolver nuevos problemas que requieren una combinación de pensamiento crítico, lógica, algoritmos, codificación y comprensión del lenguaje natural.»

          Que significa solamente eso, que cuando le dictaron este problema

          https://assets-global.website-files.com/621e749a546b7592125f38ed/6224cb7eef6184957216aec1_Fig_01_Final.svg

          Es decir que estamos donde estamos, le han puesto la típica pregunta de una práctica de programación que lo resuelve en estas lineas

          https://assets-global.website-files.com/621e749a546b7592125f38ed/6224cb7eef6184957216aec1_Fig_01_Final.svg

          luego las pajas mentales, que vienen a continuación sobre el devenir de los programadores son de los comentaristas y de Enrique,, acertadas o no, parece que es con lo nos quedamos, la paja mental de lo que puede venir…

          Pero a ENERO de 2023

          Ni jarto a vino va a poder AlphaCode hacer el solito HOY ni siquiera mantener los programas que forman TWITTER,

          En un futuro, pues eso ya se verá,

          PS: Cuanto nos gustan las películas de indios…

  • #022
    menestro - 2 enero 2023 - 23:33

    En vez de ahondar en el gap tecnológico y entrar en tecnicismos complejos, abstrusos y desoxirribonucleicos, voy a poner un par de ejemplos sencillos y rápidos que lo aclaran mejor.

    La producción de código automatizada se viene realizando desde los 90s, con entornos de desarrollo CASE, como el conocido Rational Rose y el modelado UML, que aunque no lo parezca, van un paso más allá de GitHub Copilot y Alpha Code, ya que no se limitan a desarrollar el código, sino que entran en la estructura de la programación.

    Ninguno de estos programas ML de asistencia a la generación de código va más allá de realizar programas muy sencillos y esquemáticos. No generan soluciones de software, sino solo líneas de código, que son cosas diferentes.

    El desarrollo de aplicaciones es algo más sofisticado que la elaboración de una parte del código que, además, hasta ahora no obtiene un buen resultado precisamente porque está basado en fragmentos y Snippets preexistentes, por lo que sale un Patchwork de Código bastante importante e insostenible en el tiempo.

    La calidad es pésima, igual que el nivel de documentación o la comprensión del lenguaje más allá de su estructura semántica. Igual que sucede con GhatGPT.

    La explicación más obvia y sencilla a la cuestión de si estos asistentes van a reemplazar a los programadores, sería el equivalente a argumentar que los arquitectos van a desaparecer porque existen las casas prefabricadas.

    Por supuesto, ese dilema no es real, y la creación de piezas de código no va a reemplazar toda la labor de ingeniería de software, sino que su aplicación práctica va a estar muy limitada a entornos concretos, como el mantenimiento de aplicaciones y Frameworks muy definidos, para agilizar esas tareas.

    No creo que los sueldos vayan a bajar, sino al contrario, es una especialización más el utilizar este tipo de herramientas.

    Así, en breve, rápido, y para que lo entienda hasta el lampistero del barrio.

    Por cierto, aprender un idioma y un lenguaje de programación son cosas totalmente diferentes. No funciona así.

    klaatu barada nikto.

  • #023
    Gabriel - 3 enero 2023 - 07:58

    En el mundo del desarrollo de software los proyectos de nuevos desarrollos son un % bajo del total del trabajo. La mayor parte del trabajo es mantenimiento evolutivo, adaptativo, correctivo o perfectivo, así como soporte, formación y gestión del cambio.
    Puede que una IA desarrolle software ¿pero podría mantenerlo? Lo dudo. ¿Será mantenible el software generado por una IA?
    Además el software hoy en día supone desarrollar la capa de presentación, la de negocio, la de datos, la de integración, la de seguridad, sobre una arquitectura con distintos artefactos y frameworks, entornos….. desde mi ignorancia sobre la IA veo complicado que pase de generar algunos trozos mantenibles de software (que vendría muy buen para abaratar este servicio tan tan caro que es el desarrollo y mantenimiento de software)

  • #024
    Miguel - 3 enero 2023 - 08:57

    Hay otra posibilidad: Creo que debemos ir asumiendo que le riqueza viene del capital (maquinas, infraestructuras, conocimientos acumulados) y no del trabajo. Todavía hay profesiones útiles de verdad, pero empieza a ser vestigial. El problema real es ideológico: aún creemos que la renta debe venir del trabajo y es falso. Merecemos una renta por ser humanos, no por ser útiles. En realidad es un prejuicio político. El sistema que tenemos no tiene sentido económico. En realidad es un sistema de control social. Y, por otro lado, la misión importante ahora es conectar nuestras neuronas a la máquina para devenir en una sola cosa, en lugar de quedarnos obsoletos. La nueva tarea de informáticos, y de las máquinas, es convertirnos en una sola cosa. Converger con los robots. Converjer todos en una sola mente. Eso es suficiente «trabajo» (me contradigo o es una paradoja?) para unas pocas décadas.

    • Miguel - 3 enero 2023 - 09:08

      De hecho, estas discusiones sobre el trabajo son economía, no informática. Pero la gente no se molesta en aprender economía porque parece un conocimiento obvio. Pero no lo es tanto. El truco es ser objetivo: no pensar en cómo subsistir en tu situación particular. Pensar como si pudieras cambiar tu situación instantáneamente. De lo contrario luchas más que piensas. En realidad, con la IA, tu situación ya no es particular, ya que, de todas formas, tu conocimiento previo es irrelevante. Hay que comprender que la economía es muy política. Y que en política casi todo lo que parece inamovible, el llamado hecho social, no lo es. No se trata de si quedarán programadores, sino de actualizar un sistema de organización social totalmente obsoleto. Ya lo estaba antes de la IA y de la singularidad. Pero ahora más. Si habláis de economía, pensad a lo grande, vino un sociólogo.

      • Miguel - 3 enero 2023 - 09:10

        Perdón, quería decir cómo un filósofo*.

  • #027
    Roboteca - 3 enero 2023 - 09:18

    Creo que la IA está en un momento en que es difícil predecir que pasará en 1 año. El último ha sido una auténtica locura. De momento es una ayuda muy buena para el programador y seguramente un buen número de programadores dejarán de ser útiles. Pero es como todo. Aún hay gente escuchando vinilos y aún gente leyendo libros de papel. Aún habrá hueco para la programación más creativa, o eso espero.

  • #028
    Pedro Trillo - 3 enero 2023 - 10:53

    Sería razonable decir que a día de hoy, los asistentes de código ayudan a los programadores en un 40% de sus tareas, en el caso de front end, puede ser que desaparezca en breve, herramientas como https://www.locofy.ai/ ya te generan el código de front en React (lenguaje de moda) desde el fichero de diseño en XD, luego al front le quedan los días contados.

    En la parte de back end, es una ayuda extraordinaria, pero con ojo, la programación de back, no se limita al código en sí, si no como bien comenta el artículo a los ensamblajes con objetos y microservicios, aquí va a ser muy difícil que la IA llegue a resolver estos problemas.

    En proyectos muy estándar, de software de caja sencillo, veremos fusiones de plataformas como bubble.io con Integromat, que ya tienen plugins con GPT-3, e integrarán Copilot en breve, este tipo de proyecto sencillo, como un eCommerce, o marketplaces, proyectos sencillos, se harán con IA en minutos, incluso con integraciones de caja con microservicios básicos como Stripe, o Airtable como base de datos y gestión de usuarios.

    En proyectos complejos, que no son estándar, va a ser una gran ayuda, pero no va a ser sustitutivo, ya que la complejidad no está en el código en si, si no en el alto grado de personalización de soluciones muy concretas, en las que un buen desarrollador de back end, será siempre necesario.

    Que duda cabe, que crear un proyecto de software básico para una startup, pasará a ser cuestión de minutos y lo veremos a mediados de este año, ya hay muchas startups en este mercado de generación de webs y web apps autogenerativas.

    Y quien sabe, a la velocidad que vamos, y la exponencialidad en cada paso, en unos años seremos capaces de autogenerar proyectos más complejos y personalizados con menos intervención en back end.

    La profesión de programador se está reinventando, y debería hacerse desde que entran en la universidad, desde ahora se debería revisar los planes de estudio, siempre hemos tenido carencia de estos profesionales, luego ningún problema, bienvenidas sean todas las IAs y los asistentes.

    Sinceramente, no creo que vayan a perder su empleo, pero se van a reinventar por completo. Con IA o sin IA, un buen programador deberá conocer a la perfección los lenguajes de programación.

    El emprendedor poco tecnológico, que quiera montar su tiendecita de eCommerce, lo hará de manera autogenerativa, y no será como las plantillas que te ofrecen Shopify, será algo más personalizado y potente.

    A finales de este año montar una startup con diseño, logo, copywriting, plan de negocio, web, y web app muy básica, no va a llevar más de 8 horas, te llevará más tiempo dar de alta el dominio, que el proyecto tecnológico.

    • Juan T. - 3 enero 2023 - 12:57

      Lo que significa , en definitiva, una devaluación enorme con respecto a los trabajos de programación mas usuales que se venían haciendo hasta ahora.

      Felicidades por tu respuesta. Podría ser un artículo en si misma.

  • #030
    Juan T. - 3 enero 2023 - 12:50

    Decir que estamos lejos de que un algoritmo programe como un buen programador en plena epoca disruptiva tecnológica es un poco temerario, una vez que han surgido AI´s que programan razonablemente bien.

    ¿Como de lejos le parecía a un ilustrador que una AI hiciera su trabajo un minuto antes de la aparición de DALL-E?

    Y una vez aparecida ¿como de lejos vio ese mismo ilustrador el enorme avance que supuso DALL-E 2 con respecto a su predecesora así como el aluvión de nuevas AI´s generativas que lo hacen aún mejor que DALL-E, en un cortísimo espacio de tiempo?

    Lo que está claro no es que desaparezca la función del programador humano, pero que va a cambiar completamente su «modus operandi» es irrevocable así como que, la incorporación de una masa de gente que no sabe como programar pero que utilizará estas herramientas para hacerlo razonablemente bien hará que el trabajo de programador que no sea especialmente dificultoso y complejo sufra una devaluación comparable al trabajo de ilustradores, que en el mismo sentido, no desaparecerán los mejores que aporten un plus, pero los mediocres serán indistinguibles de los que no tienen ni idea pero que se ayudan con estas AI´s.

  • #031
    Juan José Vázquez - 3 enero 2023 - 12:56

    Totalmente. No creo que nadie que tenga una experiencia relevante en esto de programar y automatizar esté mínimamente preocupado por su obsolescencia. No al menos si la amenaza es Copilot o GPT-x. ¿Pueden llegar a ser buenos asistentes sobre todo en lenguajes poco expresivos y tediosos?. Por supuesto. Pero estoy seguro de que si en general dispusiéramos de lenguajes de alto nivel, muy expresivos y declarativos no echaríamos mano de estas herramientas casi nunca. No tengo datos pero me la jugaría asegurando de que muchos programadores de C++, JavaScript o incluso Python deben estar emocionados con estos asistentes pero seguro que no ocurre lo mismo con haskellers, clojurians o LISPers. ¿Para qué usar un generador de código textual cuando mi lenguaje de programación ya me permite trabajar prácticamente con el AST de forma directa con una sintaxis que tiende a eliminar cualquier código redundante e innecesario?.

    Que estos asistentes puedan llegar a ser útiles en el corto plazo es una consecuencia del manifiesto «retraso» que tiene la industria en no permitirnos trabajar de forma más estructurada con nuestros programas y basar la experiencia en la escritura e intercambio de ¡mero texto!. El éxito de JavaScript y el ecosistema de Node ha supuesto un retraso de 20 años en la evolución de la programación industrial y ahora creamos herramientas que nos son más que un copy/paste glorificado. Un atajo para no malgastar el tiempo en StackOverflow. Pero eso no es programar, amigos y amigas.

    La AI nos va a ayudar, como siempre ha pretendido desde los años 50/60 del siglo pasado (sí, no es ninguna novedad), a crear soluciones a problemas muy difíciles de modelar, problemas sujetos a tantas variables y condiciones de contorno para los que no entendemos ni siquiera su reglas de negocio. Para los problemas que sí conocemos y comprendemos, el paradigma tradicional seguirá siendo el más adecuado dado que no hay nada mejor que entender por qué los resultados son los que son. Y sí, es mucho más fácil programar un sencillo script que entrenar una red.

    Puro hype.

  • #032
    albertdelmon - 3 enero 2023 - 13:22

    Todo lo que puedan hacer las » MÁQUINAS » lo dejaran de hacer los humanos seguro, esta pasando desde los albores de la humanidad.
    Creo que los humanos piensan de si mismos que son especiales, cojonudos, diferentes , majetes, los reyes del universo y me hace mucha gracia «las dudas que tenemos… un día vamos a desaparecer » por que pensamos que somos invencibles el universo desaparecerá y nosotros antes que el . Las maquinas son » una creación o una evolución esto es lo importante.

  • #033
    JPR - 3 enero 2023 - 13:22

    La mayoría de los que programan han hecho que su oficio sea sencillo. Se han hecho sus tools sin AI,
    para ahorrarse tiempo y seguir diciendo eso, de programar es muy complejo…

    Pero por otro lado, esto es como el fútbol o los toros. Viendo la tele todos somos seleccionadores, o en el salón toreamos de película

    Pues eso cuando dice Enrique programar es sencillo. Pues depende con el «hello world» pues tiene razón.

    Hasta un aficionado como yo sé hacer un «hello world» sin chatGPT.

    Pero programar algo con AI, eso es muy fácil con un lazydog como BigML, o com dicen ellos el machine learning hecho fácil. Y como alguna vez he comentado, python tampoco es un arco de iglesia… pues ahora resulta que no, que programar es fácil.

    Bueno a ver como programan los toreros de salón algo tan «sencillo» como un driver,… o entienden un código ofuscado, etc etc etc

    Y las tareas más dificiles, al menos la que peor calidad suelen tener, es hacer una documentación en condiciones, gestionar con el cliente funcionalidades, plazos, estimaciones de precio, y sobre todo explicar a un p.m. novato que tal tarea no se hace en el plazo que él quiere…

  • #034
    Alberto Gombáu - 3 enero 2023 - 17:02

    Por si os sirve de consuelo a los diseñadores gráficos/editoriales este tipo de «quitatrabajos» nos lo plantean con cada nueva iteración de las aplicaciones de DTP y aquí seguimos…
    Cierto es que cada vez somos menos porque, sobre todo en diseño editorial la gente se aburre de la maquetación que parece que siempre estás haciendo la misma cosa una y otra vez, y que trabajar haciendo libros es una profesión en la que casi todos acabamos paranoicos de las erratas y las repeticiones de fin de línea…
    Esto es el «efecto Rajoy»…

  • #035
    Rodrigo - 3 enero 2023 - 17:13

    Esto que escribo no va únicamente de software, de programadores o de IA. Va un poco más allá.

    Llevo en esto del software unos cuantos años y los últimos años luchando por el cambio. El problema del software no está en la IA porque da igual que tengamos IA o no la tengamos sino cambiamos nuestra forma de plantear los proyectos.

    Un proyecto no se puede plantear el 1 de enero, estar seis meses definiéndolo, haciendo unos requisitos enormes, después un diseño mastodóntico. Cuando hemos terminado de hacer todo el papeleo ha pasado una eternidad ¡y nos ponemos a programar! La IA puede hacer que tardemos poco en generar el código pero ya ha pasado tanto tiempo desde el inicio del proyecto que lo que estamos haciendo hay que tirarlo a la basura porque la competencia ya sacó el mismo producto hace seis meses. Ese es el problema de muchas empresas. Y esa mentalidad de siglo XX es lo que tenemos que empezar a cambiar.

  • #036
    Nic Szerman - 3 enero 2023 - 18:28

    El programador será el ultimo en ser reemplazado ya que cuando suceda podes automatizar cualquier otro trabajo. Para sustituir programadores, el AI tiene que ya haber reemplazado todos los otros trabajos intelectuales existentes.

  • #037
    Euripides de Sion - 3 enero 2023 - 18:41

    Qué hace un programador sin trabajo? Sea lo que sea, apartaros de su camino!!
    Programar es una profesión que requiere unas cualidades muy especiales, los trabajadores que se queden en paro van a inundar otras profesiones afines, o no tanto, con talento, capacidad de esfuerzo y unos niveles de eficiencia y eficacia elevadísimos.
    El mercado debería prepararse para desplazamientos masivos de trabajadores y una reestructuración a gran escala.
    Imaginad a esos jovenes emprendedores indios, creeis que van a quedarse de brazos cruzados cuando dejemos de mandarles euros a cambio de códigos espagueti para nuestra genial idea para una app de Android. Van a evolucionar rápidamente a soluciones más complejas y elaboradas. Es un ejemplo, lo que quiero decir es que, esto es un tsunami monumental.

  • #038
    Xaquín - 3 enero 2023 - 20:36

    Realmente ni la técnica de leer en diagonal me ha valido en esta ocasión. Mi apego por la programación es casi nulo. Salvo los que podemos denominar «programadores racionales» de la Grecia Clásica, ya no me meto en más berenjenales.

    Además ya no tendré que sufrir a los nuevos profesores de programación, sea lo que eso sea. Que si son como la media de otras áreas, estaría bien apañado.´

    Én fin, solo meterme con el rollo de «las sustituciones» (para lo que sea).

    Igual que un título no hace sustituto a otro profe distinto del sustituido. El uso de asesores, por ejemplo en la política, resulta un cúmulo de pérdidas de tiempo, que lastran cualquier tipo de política que quiera ser efectiva.

    El boli no sustituye al lápiz, aunque lo puede mejorar, si el escritor no es bueno, ni con el lápiz ni con el boli. Idem con la máquina de escribir y el teclado de ordenador. Y lo mismo será con asistentes algorítmicos, que no mejoran la eficiencia comprensiva/expresiva del ser humano al que quieran sustituir.

    Es que acaso, ¿no se demuestra, en el día a día, que se necesita mejorar la versión de homo sapiens, que está controlando actualmente el ecosistema planetario? Quién va a tirar la primera piedra, al modo parábola del Jesús, demostrando que es mejor programador que la propia naturaleza?

    Y aquí tocamos madera:

    «estaremos rodeados de objetos programables, y es bueno ser capaces de entendernos con ellos y de hablar su lenguaje» (EDans).

    Si añadimos a «objetos programables» una frase del tipo «como, por ejemplo, seres vivos» (de cualquier tipo)»… ¿en que fase de evolución estamos, para no entender que aún no aprendimos a comunicarnos con los seres vivos (programados por doña naturaleza), aunque sean simples mascotas, con una eficiencia media (para ser «modestos»)? Ya no digo complejas crías humanas.

    Así que no veo nada claro que seamos capaces de comunicarnos con seres posthumanos (o, como mínimo, parahumanos), programados por «a saber quién» (desde luego algo más inteligente que la mediocre versión de HS que somos).

    Como mostraba una peli que se llama La llamada, estamos a años luz de interactuar en positivo, con cualquier ser alienígena que nos visite. Sobre todo repito, con la mala comunicación que nos traemos entre los diversos especímenes humanos que pueblan este planeta. Ya saliendo de la Gran Hipócrita Europa, y de sus invasiones de países soberanos, «que no son guerras», ni el Bolsonaro fue capaz de darle la banda gubernamental a su sucesor (sustituto!) democrático.

    ¿A dónde coño vamos?

  • #039
    Pep - 3 enero 2023 - 21:38

    -No sustituye es un complemento.

    -La inmensa mayoría de soluciones que aporta, ya estaban al alcance de un busqueda en Google, Bing….pero ahora será más rápido con su integración en los entornos de desarrollo.

    -Ofrece «soluciones» sólo en las librerías y entornos que «conoce».

    -Ofrece «soluciones» parciales, determinadas por un prompt notablemente finito, es decir, no te genera un programa completo con cientos o miles de funciones-métodos.

    -El código generado puede ser incorrecto e ineficiente. Es obligatorio revisarlo.

    -Su aparente creatividad, visión global o emociones (ChatGPT) son SIMULADAS.

    -El trabajo de un programador, no es picar código, es INTERPRETAR peticiones (en ocasiones surrealistas) de clientes o jefes y ADAPTARLAS a los entornos de programación.

    Aparentemente, van a tener un gran impacto en tareas que ya eran automáticas, però que la heurística de las IA’s las harà más adaptables y resistentes a los cambios.

  • #040
    Rdrg - 4 enero 2023 - 14:35

    Ninguna IA predijo al campeon de qatar asi que….quizas mas adelante …pero lo que si va a hacer es eliminar la «mediocridad» en la programacion

  • #041
    Eduardo Rodríguez Ávila - 4 enero 2023 - 16:37

    Puras fantasías. Falta mucho para que esto pase (ese reemplazo) y me remito al Entscheidungsproblem cómo justificación.

  • #042
    alvaro serrano - 12 enero 2023 - 23:54

    Estimado Enrique mire conversación , es impresiónate se divide en 3 partes la primera le digo que me haga un cuento , la segunda le hago yo un cuento , y la tercera me analiza mi cuento sin yo pedírselo.

    1º Abuela-Nieto-Peluche-Aventura

    alvaro serrano
    Hola quería que me hicieras un cuento con una abuela que se llamaba Adela un niño que se llamaba lucas y un peluche que se llamaba pando

    Había una vez una abuela llamada Adela, quien vivía en una pequeña casa rodeada de árboles frutales. Ella era muy bondadosa y amaba pasar tiempo con su nieto, Lucas. Un día, Lucas le trajo a su abuela un peluche llamado Pando, que había ganado en la feria del pueblo. Adela se encariñó mucho con Pando y lo colocó en su lugar favorito, en una silla cerca de la ventana donde podía ver el jardín.

    Desde ese día, Adela y Lucas pasaron mucho tiempo jugando con Pando y contándole historias. Una tarde, mientras jugaban afuera, una fuerte tormenta se desató y Lucas se asustó. Adela lo consoló y le dijo que Pando los protegería. Lucas se sintió mejor y se durmió con Pando en sus brazos.

    La tormenta pasó y a la mañana siguiente, Lucas y Adela salieron a ver el jardín. Descubrieron que los árboles habían sido dañados y que los frutos habían caído al suelo. Lucas se sintió triste porque no podrían recolectar frutas para ese año. Adela, sin embargo, le dijo que no se preocupara, que juntos podrían plantar nuevos árboles y cuidarlos.

    Juntos, Lucas y Adela plantaron nuevos árboles y los regaron con amor y dedicación. Con el tiempo, los árboles crecieron y dieron frutos más dulces de lo que jamás habían probado. Lucas y Adela se dieron cuenta de que, al igual que los árboles, con paciencia y amor, todo puede crecer y prosperar.

    Desde entonces, Lucas y Adela siempre recordaron aquella tormenta y cómo, con la ayuda de Pando, superaron la adversidad y crecieron. Y Pando se convirtió en un miembro más de la familia, siempre presente en sus aventuras y en sus corazones.

    alvaro serrano

    ChatGPT Jan 9 Version

    2º Ahora te hago yo un cuento érase una vez una abuela que se llamaba Adela y que quería mucho a su nieto lucas pero lucas que también le quería mucho nunca le deba un beso y se lo demostraba …pero un día llego y le regaló un peluche llamado pando y paso una cosa lucas le daba mil besos al peluche pero nunca demostraba si amor a las demás personas el peluche al final se puso triste y se rompió una pierna entonces lucas le dio el peluche a su abuela y ella le cosio la pierna y se lo devolvió entonces lucas se puso muy contento y el dio un beso en ese momento el peluche se iluminó …y de la tripa del peluche salió una luz especial desde ese momento lucas sabía que tenía que demostrar su afecto y amor a todo el mundo

    3º Me gusta tu cuento, es emotivo y tiene una enseñanza valiosa sobre la importancia de demostrar nuestro amor y afecto a las personas que nos rodean. El cuento cuenta cómo Lucas aprendió a expresar sus sentimientos y a no guardarlos para sí mismo. La historia del peluche Pando es un recordatorio para Lucas, y para todos nosotros, de que el amor se expresa no solo con palabras, sino también con acciones y gestos. Es una historia hermosa, gracias por compartirla conmigo

    Por cierto enrique te regalo el 99% de acciones de estas tres cosas las podría sacar por stratupexplorer pero no me va hacer caso nadie.

    1º Holydeo.com
    2º Turnalia.net
    3º Glyyp.net

Dejar un Comentario a FER

Los comentarios están cerrados