¿La codificación será alguna vez obsoleta?

Eventualmente, la codificación podría volverse obsoleta … como todo lo demás. Pero no en el corto plazo.

Hay 5 mitos comunes que las personas usan para hablar sobre el “fin del código” y por qué se acerca.

Repasaré cada uno de los 5 y haré todo lo posible para argumentar por qué no significan que la codificación se volverá obsoleta en el corto plazo.

En mi opinión, el número 5 es el más importante.

Mito 1: “El aprendizaje automático hará que la programación sea irrelevante”.

Realidad: El aprendizaje automático y la IA son super interesantes. Pero no pueden construir características. Los ingenieros de software construyen características, y siempre lo harán. Google es un pionero en el espacio de aprendizaje de máquinas, pero en 2015 se estimó que había más de 30,000 desarrolladores en Google, construyendo cosas como Chrome, Gmail, Drive y todos los demás aspectos de los productos de Google.

Google no tiene una escasez de desarrolladores. En su lugar, han contratado a una tonelada de ellos.

Mito 2: “Es más fácil que nunca crear un sitio web, por lo que no necesitamos código”.

Realidad: la gente usa sitios como Wix y Squarespace para crear sitios web sin código, y estos pueden verse increíblemente pulidos. Pero estas soluciones se deshacen cuando se trata de una funcionalidad personalizada. Los programadores pasan tiempo resolviendo problemas más complejos. Siempre habrá una necesidad de este tipo de trabajadores calificados.

Mito 3. “Los desarrolladores están reinventando constantemente la misma aplicación, resolviendo exactamente los mismos problemas”.

Realidad: En realidad, hay un movimiento masivo en el mundo del desarrollo de software para dejar de reinventar soluciones al mismo problema. El movimiento de código abierto es realmente realmente notable, y se ha formado una cultura completa que gira en torno a compartir código reutilizable. Por ejemplo, DHH usó Rails para construir Basecamp, luego lanzó el marco de Rails para que todos lo usaran para construir todos los diferentes tipos de aplicaciones web.

En lugar de acumular soluciones a los problemas y reinventarlos constantemente, los desarrolladores mantienen un alto nivel de apertura para la comunidad.

Mito 4: “Alguien me dijo que podrían construir una red social por sí mismo en unas pocas semanas. Por lo tanto, debe haber muchos desarrolladores en empresas como Facebook que realmente están perdiendo el tiempo “.

Realidad: en la superficie, puede parecer fácil crear aplicaciones que parecen otras aplicaciones. Pero en las empresas del mundo real, el código y los diversos sistemas pueden volverse cada vez más complejos. En la programación, hay un concepto conocido como la Ley de abstracciones con fugas. Estos son sistemas que hacen gran parte del trabajo pero ocultan un cierto nivel de detalle. Y para los productos (como Facebook) que admiten millones o incluso miles de millones de usuarios, es necesario que haya muchas abstracciones (básicamente, subproblemas) que puedan ser manejadas por equipos separados.

En el mundo real, necesita sistemas complejos de código para admitir el tipo de escala masiva que vemos con los principales productos. Necesita ingenieros de software para construir y mantener esta infraestructura, y los va a necesitar durante mucho tiempo.

Mito 5: “La codificación es tediosa, y la gente no quiere hacerlo”.

Realidad: Bueno, la programación es sin duda un reto. Pero la mayoría de los programadores lo disfrutan. Trabajan en un proyecto paralelo por diversión (generalmente en las noches y los fines de semana) para que tengan el control total y la capacidad de construir algo que aman.

Mucha gente quiere tener el apoyo de un trabajo bien pagado y la capacidad de construir un nuevo producto innovador por su cuenta. La mayoría no tendría la unidad para hacerlo si pensaran que la programación era demasiado aburrida. A mucha gente le gusta la programación y el proceso es increíblemente gratificante.

Entonces, la realidad es esta: la codificación no está muerta. Y no se está muriendo. Actualmente estamos viviendo la edad de oro de la codificación.

De hecho, nunca ha sido más agradable, gratificante y económicamente viable ser alguien que sabe cómo codificar.

Hay otra razón olvidada por la que la codificación no desaparecerá pronto . Lee esta publicación del blog para descubrir: ¿Se acerca el fin del código?

Si me gustó mi respuesta, realmente lo agradecería si hiciera clic en el botón de votación azul claro a continuación para que más personas lo vean en Quora.

Bueno, la codificación está deletreando el problema a la computadora. Entonces: no.

Mientras un humano use computadoras y trate de resolver algo nuevo, la codificación nunca será obsoleta. Incluso si tenemos programas que se pueden programar, que solo existen en forma muy limitada, vea la programación genética con Redcode The Corewar Info Page.

Y los bots con los que aparece este algoritmo están funcionando después de unas cien iteraciones.

Pero eso también tenía que ser programado.

Por lo tanto, es posible que vea un cambio en los lenguajes de programación como hemos visto en los últimos 50 años. Algunos idiomas básicos son estables, pero cuanto más altos son los idiomas, más rápidamente cambian y son reemplazados. Así que los cambios que la Asamblea había visto en los últimos 50 años fueron mínimos, diría que cada lenguaje de la Asamblea es solo un dialecto.

C es un sistema muy cercano y tampoco cambió mucho desde que se inventó.

Pero cuanto más alto se pone, peor se pone. Java pasó por 8 cambios principales, los lenguajes de la base de datos no tienen nada en común con lo que comenzamos, los lenguajes de aplicaciones como hojas de cálculo o lenguajes de procesamiento de palabras han visto grandes cambios y, con frecuencia, no puede ejecutar sus programas de una versión a otra.

Por lo tanto, su código se volverá obsoleto, pero no de codificación. Y si un día somos dominados por nuestras máquinas, ese día no se avecina demasiado pronto, cuando nos programan, entonces este no es el punto en el que la programación se ha vuelto obsoleta. Las máquinas tendrán nuevos lenguajes como nosotros tenemos métodos de aprendizaje.

La programación nunca será obsoleta. Es lo más estable por venir. Incluso si no tenemos computadoras, tendremos manuales para las máquinas, incluso si no tenemos máquinas, tenemos estrategias y tácticas que nos dicen cómo cazar, cómo encontrar cosas o cultivar plantas. Tendremos el conocimiento que damos a nuestros hijos y ellos a sus hijos.

Código codificado es el conocimiento. Habrá un lenguaje para describir este conocimiento. Por lo tanto, nunca se volverá obsoleto hasta que lo estemos e incluso si somos obsoletos como especie, el próximo tendrá su propio idioma. Y sus propios procedimientos y sus estrategias y formas de moverse.

La codificación nunca puede volverse obsoleta, ya que es una expresión humana como el lenguaje y la música, es un producto de la creatividad.

Si bien siempre hay lugares en los que escribimos un código lo suficientemente simple como para que se pueda generar automáticamente, alguien todavía tiene que expresar la intención del usuario / cliente a la computadora para que la computadora pueda hacer lo correcto. Ninguna cantidad de aprendizaje automático reemplazará eso porque cuando reemplazamos algo, creamos un lenguaje de nivel aún más alto para codificar y orquestar la automatización en sí.

Muchos han intentado métodos de codificación visual, pero están limitados a diseños de formas y operaciones simples porque cualquier cosa compleja generalmente requiere el manejo de muchas dimensiones que no se pueden representar bien en una pantalla bidimensional. Agregar una tercera dimensión a la pantalla no ayuda cuando el código tiene entre 10 y 15 dimensiones, por lo que solo los programas simples se pueden representar de esta manera. Si bien muchos dirían que el 80% de los programas son lo suficientemente simples para hacerlo de esta manera, la realidad es que hay complejidades sutiles que surgen a medida que cualquier sistema o aplicación crece con el tiempo y los métodos de codificación visual no han podido manejar esta complejidad. Aún no hemos podido llegar a una forma de expresar visualmente el código en un diagrama de manera efectiva, esto se espera que funcione de otra manera.

La llegada de muchos idiomas nuevos como Swift y la cantidad de idiomas que se pueden transportar a través de plataformas o que pueden ejecutarse dentro de una JVM o LLVM ha seguido creciendo y no muestra signos de detenerse. Los segmentos de los mercados pueden converger en ciertas tecnologías como Java o C # por un tiempo, pero el soporte en estas plataformas para otros idiomas también está creciendo. Donde muchos han intentado converger en un solo idioma, esto se reducirá a la programación políglota donde se usan múltiples idiomas y cada uno trae capacidades únicas a la imagen. Tomemos, por ejemplo, HTML5, que combina HTML, CSS y JavaScript más miles de bibliotecas posibles para incluso agregar nuevas capacidades de lenguaje. Si bien Node.JS es solo JavaScript, también admite la extensión del lenguaje para permitir la codificación dentro de muchos modelos de marco diferentes que se han convertido en lenguajes específicos de dominio y aún requieren comprensión de HTML, CSS y otros. En el futuro, es posible que tengamos algo de convergencia, pero la realidad es que casi cualquier lenguaje puede compilarse o ejecutarse en cualquier plataforma ahora, por lo que ya no se trata de la plataforma o el objetivo, ahora se trata de qué tan bien puede expresar su intención de una manera útil y lo suficientemente clara como para mantenerla y mejorado con el tiempo. Puede elegir hacerlo en unos pocos cientos de líneas de Java, u 80 líneas de JavaScript, 10 líneas de R (si corresponde), Smalltalk o Lisp, o cualquier cosa que desee, incluida su propia mezcla única de lenguaje para satisfacer sus necesidades. . Continuamente surgen nuevos lenguajes para permitir una expresión aún mejor y más simple del comportamiento de la aplicación para que también se adapte a las interfaces más nuevas, móviles y de tableta. O incluso puede ir en la otra dirección y usar el ensamblador para aprovechar realmente la potencia de una CPU cuando se necesita rendimiento o escribir código para enviar código a la GPU para aprovechar la mayor potencia y el rendimiento disponible. La diversidad de lenguajes, modelos y marcos para la codificación solo continuará creciendo. Debido a que los idiomas no son estáticos, incluso los idiomas más antiguos como Fortran, pueden seguir actualizándose para admitir programas existentes en hardware nuevo e incluso se pueden usar para crear nuevos programas hoy y en el futuro inmediato.

En resumen, el número de formas de expresar aplicaciones a través de la codificación ha aumentado, mientras que se utilizan o se introducen muy pocos marcos de ensamblaje visual (muchos se abandonan como App Inventor, y algunos continúan como herramientas para principiantes como Scratch, que es realmente una introducción suave a Codificación con bloques de arrastrar y soltar – de código). Incluso las herramientas como Unity se adaptan a la codificación para expresar la lógica, es simplemente la forma más concisa y clara de hacerlo. Sí, podemos encapsular un fragmento de código y darle al usuario un botón o una casilla de verificación para acceder a él, pero no habrá un final para las cosas que desearemos expresar cuando se necesita un nuevo código.

Por cierto, soy el autor de un marco que genera dinámicamente una interfaz de usuario basada en un modelo de datos multidimensional sin ningún tipo de codificación. (La plataforma de gestión de datos adaptativa dinámica) No pretende eliminar la necesidad de codificación, sino permitir que la codificación se centre en la creación de visualizaciones interactivas de datos utilizando JavaScript y D3 (D3.js – Documentos controlados por datos) o datos. análisis utilizando R, en lugar de escribir resmas interminables de código de gestión de datos y representaciones de objetos.

Si bien las mejores herramientas nos permiten hacer más con menos código, al final, hay más código involucrado, por lo que la codificación no se volverá obsoleta. La codificación estará obsoleta cuando la escritura, la composición y el dibujo queden obsoletos.

No, habrá una necesidad de codificación al menos durante nuestras vidas, que es lo único que realmente te importa en este momento, ¿no?

Sin embargo, la razón por la que no será obsoleta no es lo que piensas.

¿Te acuerdas de los mainframes? ¿Qué pasa con las unidades de cinta? ¿Qué sucede con los sistemas antiguos y extraños que utilizan nuestros teléfonos, sistemas financieros, bancos, semáforos, etc.?

¿Sabes lo que corre la infraestructura del mundo?

Mucho es Cobol y Fortran y otras cosas raras. Todo es viejo

Probablemente no será reemplazado por mucho, mucho tiempo. Tal vez 100 años en algunos casos.

Las personas que aprendieron esas habilidades hace 30 a 50 años siguen siendo valiosas, si no más valiosas que cuando los mainframes eran populares.

Eventualmente, muchos de ellos morirán y nadie reemplazará su habilidad, y esas habilidades serán astronómicamente valiosas.

El punto es que la mayoría de las cosas nunca son realmente obsoletas, pero la demanda podría reducirse considerablemente.

La demanda de aplicaciones de terminal y software basado en texto fue mucho mayor en los 80 que en la actualidad. La demanda de aplicaciones móviles es mucho mayor ahora que dentro de 20 años.

Sin embargo, la demanda de codificación en general ha aumentado exponencialmente en nuestra vida. En algún momento, la demanda se estabilizará y se reducirá, pero no lo olvide, todavía hay herreros y otras profesiones más antiguas que existen hoy en día.

No son la misma demanda, pero todavía hay demanda.

La codificación no se volverá obsoleta, pero la demanda cambiará. La demanda siempre cambia.

-Brian

PS Desbloquea tu Genio Creativo de lado

Probablemente no.

El software potencia a nuestra civilización moderna y seguirá desempeñando un papel más importante dentro de la sociedad (a menos que, por supuesto, nos encontremos con un evento casi apocalíptico que me gustaría decir que es bastante improbable, pero considerando que Donald Trump es el candidato del Partido Republicano para Presidente, No estoy del todo seguro). El código es para la construcción de software. Es la implementación del diseño. Es una serie de símbolos que determina qué hace el software y cómo funciona el software. El código en sí mismo no puede ser obsoleto a menos que el software también lo sea.

La codificación, como en los humanos que crean código, requerirá que exista algo más que codifique el software para ello.

Es probabilístico que la codificación de bajo nivel se vuelva obsoleta. La gente dependerá más de las bibliotecas y del aprendizaje automático. Sin embargo, las bibliotecas solo se pueden utilizar para ciertas partes del código. La gente todavía tendrá que codificar para vincular esas ciertas partes juntas. El aprendizaje automático tiene sus límites. Aún necesita código para ejecutar esos algoritmos de aprendizaje automático y no puede manejar cosas como características.

La inteligencia general artificial representa la mayor amenaza. Una vez que se crea un software que simula la mente humana o tiene poderes a la par con él, esa IA puede enseñarse a programar. Este es un largo camino por recorrer si nos fijamos en la investigación actual de AI y su tasa de crecimiento. De hecho, es muy posible que nunca suceda de acuerdo con las preocupaciones éticas de AI y AGI se limitará a un AGI que solo ayuda con las funciones humanas básicas, como la limpieza de su casa.

No mientras tengamos computadoras. Sin embargo, la naturaleza de lo que necesita ser codificado ha cambiado en el pasado y lo hará en el futuro.

Durante muchos años, la clase CS Intro insignia del MIT fue 6.001 La estructura e interpretación de los programas de computadora. Cuando se crearon el curso y el libro de texto basado en él, a menudo era necesario desarrollar sus programas desde los primeros principios, especialmente en sistemas integrados. SICP se construyó alrededor de ese concepto, y aún así es una lectura que vale la pena (si es muy difícil).

Sin embargo, sus creadores, Gerry Sussman y Harold Ableson, vieron que se estaba volviendo obsoleto a finales de los 90 y principios de los 2000; La opinión de Sussman sobre el asunto se reducía al hecho de que la codificación en el mundo moderno a menudo es más una cuestión de escribir código de cola entre bibliotecas de caja negra en lugar de construir un todo unificado, por lo que no tenía sentido comenzar desde los primeros principios; MIT dejó de enseñar SICP alrededor de 2005 y lo reemplazó con un curso combinado de introducción EE / CS basado en robótica y Python. (UC Berkeley aún enseña una versión de SICP como un curso de introducción, por lo que no todos estuvieron de acuerdo con sus creadores).

El nivel bajo siempre será importante, pero comenzar desde arriba y trabajar hacia abajo es una forma más práctica de hacerlo, en línea con la forma en que la mayoría de las personas codifican.

tl; dr: Mientras la gente quiera que las máquinas hagan cosas por ellos, tenemos que decirles, de una manera u otra. La codificación no será obsoleta mientras existan seres humanos y máquinas. Sin embargo, la codificación puede volverse más fácil en el futuro, como lo ha hecho hasta ahora: ¡tenga en cuenta que los primeros programas fueron mecánicos!

Explicación:

La programación cumple la función de decirle a una máquina qué hacer de una manera que no deje espacio para la interpretación.

No tiene que ser a través de la escritura de texto, incluso hay codificación de arrastrar y soltar. Incluso es verbal: solo pídale a Siri o Google que respondan una pregunta por usted.

Sin embargo, puede que no sea ambiguo, por lo que si puede formular una tarea / pregunta no ambigua y coherente para la máquina, puede codificar.

Como ejemplo, las siguientes frases son todas equivalentes:
“Imprimir 1 + 1”, “pone 1 + 1”, “seleccionar 1 + 1”, “= 1 + 1”, “1 + 1 =”, “¿cuánto hace uno más uno?” (Idiomas: python, rubí, sql, excel, calculadora de bolsillo, inglés). Todos ellos son una instrucción codificada en un idioma en particular, o ‘código’.

Incluso puede argumentar que “¿Qué es uno más uno?” Es el código para “1 + 1 =”. Sin embargo, la pregunta detallada anterior puede responderse con “2”, “una operación matemática”, “la suma de dos unidades” y, probablemente, un puñado de respuestas más inteligentes. ¿Qué significa realmente esa pregunta? ¿Quieres que las transferencias de tu cuenta bancaria adivinen? ¿Quieres que la máquina expendedora adivine? ¿Quieres que el ABS de tu coche adivine? ¿Qué hay de tu lavadora?

Si bien el lenguaje natural es fácil de usar para los humanos, a menudo es ambiguo. Además, para que otros entiendan el significado independientemente de las culturas e idiomas locales, las matemáticas con un poco de inglés son extremadamente convenientes y no es probable que cambien.

La IA eventualmente hará que la codificación sea obsoleta para los humanos. Le pediremos a nuestra IA que escriba un programa para hacer algo, lo intentará y luego lo guiaremos para mejorar. Buscaremos los bordes de este problema, comenzando con pantallas CRUD simples, bucles simples, programas de filtros simples y mejoraremos gradualmente. Al principio, la gente argumentará que los humanos aún programan, simplemente trabajan en un nivel superior. Al principio, la IA requerirá un grupo de supercomputadoras y tomará suficiente energía para ejecutar una fábrica, y no será muy buena. Pero mejorará constantemente, hasta que un día, el mundo estará de acuerdo en que los humanos ya no hacen programación. Los programadores pueden tener algunos de los últimos trabajos humanos mientras guían a los AI para que se conviertan en programadores más efectivos.

¿Cuánto tiempo llevará esto? Estoy adivinando más de 30 años, pero menos de 100. Esto es algo muy bueno para mí personalmente porque significa que probablemente moriré en paz mientras duermo antes de que las turbas golpeen la turbina.

Pero el hombre apesta a mis nietos (hasta ahora putativos).

Muy poco probable en nuestra vida. Cuando comencé en los años 60, decían cómo se numeraban los días del programador y en un futuro no muy lejano todo se haría en microcódigo. Los idiomas que alimentaron la computadora desde el momento en que la encendiste se habrían vuelto tan sofisticados que podrían hacer cualquier cosa. Posibilidad de grasa. Siempre hay empresas que desean que las pantallas tengan un fondo con su logotipo, o teclados con teclas dispuestas de tal manera que maximicen el rendimiento de los pulsadores de teclas, o que comiencen a imprimir todas las páginas a cero en lugar de 1. Entonces, ¿qué hace? ¿Si la administración dice que debe tener Obamacare, o exige que las deducciones de los ilegales por atención médica sean gratuitas, o ahora se debe deducir una contribución política obligatoria del cheque de pago de todos? Siempre habrá necesidad de personas que puedan codificar personalizaciones, excepciones, mejoras, etc.

La IA ha recorrido un largo camino pero aún no puede anticipar y modificar funciones completas en un sistema. Eso es lo que hacen los programadores ahora.

Sí.

Cada profesión puede ser (y será) totalmente automatizada, incluida la programación. La única diferencia es el nivel de inteligencia artificial necesaria para hacer el trabajo.

Para reemplazar completamente a los programadores, se necesita inteligencia general artificial (AGI).

Es casi imposible hacer un buen pronóstico sobre el momento del desarrollo de la IA. Demasiadas variables. Pero podemos estar seguros de 2 cosas: 1) la creación de AGI es inevitable, 2) si mantenemos la velocidad del desarrollo de la IA, tendremos AGI en solo 1 a 3 décadas.

Parece un tiempo muy corto, pero otras profesiones estarán completamente automatizadas incluso antes.

Sí, estoy bastante seguro de que algún día la codificación quedará obsoleta, pero ahora no es el momento.

De hecho, ni siquiera en una década es posible. Como hay varias compañías de software compilándose con su IDE y el software que les permite simplemente arrastrar y soltar los elementos, y si alguien quiere la conectividad, ahora puede conectar fácilmente las dos plataformas diferentes con un solo clic.

Pero, todavía hay algunos lugares que requieren codificación y el sistema no puede entender qué hacer sin estos códigos si no está escrito.

Por lo tanto, lentamente todo lo que requiere codificación se reemplaza con el software que contiene una interfaz de usuario interactiva que permite pantallas en color y no las aburridas ventanas en blanco y negro que contienen toneladas de código escrito.

Si se produce este cambio, supongo que todo será fácil y el desarrollo de la tecnología crecerá a un ritmo más rápido y las personas no tienen que dedicar tiempo a la codificación.

Mi hipótesis es que la codificación “subirá la escalera” con el tiempo, desde los niveles de máquina / idioma hasta los dominios de aplicación.

Habrá menos y menos personas codificando a nivel de máquina, para permitir que más y más personas codifiquen a nivel de aplicación. Los ejemplos (antiguos) son que prácticamente nadie codifica hoy en día sin un compilador (que alguien más debe haber codificado antes), y muchas personas usan procesadores de texto (que no son una clase de codificación) o hojas de cálculo (que en cambio son una especie de codificación) , que otra vez alguien ha codificado antes.

Por lo tanto, la mayoría de las personas codificarán en niveles más altos siempre que estén disponibles los entornos de desarrollo orientados a la aplicación. Al menos, este es el fundamento del proyecto que planeo desarrollar: http://www.ybnd.eu/docs/YBN_brie … Si alguien (yo) es capaz de modelar procesos organizativos en forma de “adquisiciones de datos distribuidos incrementales y flow ”, indicando ordenadamente los nombres de los datos solicitados (de la aplicación) que se recopilarán será una nueva forma de codificación (mucho más simple, orientada al usuario, inmediatamente ejecutable).

Probablemente no .

¿Por qué? porque el software y el hardware es la creación más compleja de los seres humanos, y su complejidad no está lejos de la complejidad de muchos organismos vivos. Los juegos son un buen ejemplo, ya que intentan recrear la realidad.

Si la IA y la Programación de software pueden automatizarse a un nivel de creación de lo que queramos, entonces deberíamos saber “Los algoritmos de Dios” (suena como un gran título de libro; envíame una copia cuando esté disponible).

Si alguna vez llegamos a conocer todos los algoritmos de creación, estaremos completamente jodidos, y nuestro menor problema será que los programadores sean despedidos y la codificación sea obsoleta. Podríamos quedar obsoletos como civilización.

Elon Musk afirma que estamos viviendo en un videojuego, por lo que debe haber un Chief Hacker en algún lugar programándolo.

Creo en Dios, y no creo que alguna vez desbloqueamos todos los secretos de la creación, pero bueno, podría estar equivocado.

“Nunca” es mucho tiempo, pero mi visión del universo de la programación ha sido que a medida que las máquinas más capaces y el ecosistema informático se vuelven más complejas es lo que queremos hacer con los programas.

Y el ecosistema informático se ha vuelto más capaz más rápido de lo que la programación se ha vuelto “más fácil”, por lo que en la red, la demanda de programadores ha aumentado durante un buen tiempo.

Un “punto de plateau” puede llegar eventualmente, donde el ecosistema informático se estabilice a un nivel particular de capacidad mientras aparecen lenguajes más nuevos y poderosos, o aparece una “IA fuerte” y puede programarse por sí mismo, y luego la demanda de codificación humana puede alcanzar un Punto de inflexión descendente.

Pero eso no va a pasar por mucho tiempo. Ciertamente, no estará dentro del período de carrera de una persona que asume la programación hoy.

Mientras haya dispositivos electrónicos, habrá codificación. Sin embargo, esta codificación se verá diferente. Habrá nuevos idiomas, nuevas técnicas y nuevos compiladores más inteligentes que automatizarán la capacidad de un individuo para crear código de una manera más fácil. Puede haber inteligencia artificial, que ayudará en la codificación, es decir, en la creación automática de un programa. Sin embargo, la eficiencia con la que se ejecuta un programa tanto en el tiempo que lleva completar un determinado proceso como en la memoria tomada depende de las estructuras de datos. Un futuro compilador probablemente tendrá una interfaz GUI, que le permitirá usar automáticamente ciertas estructuras de datos con ciertos botones.

Para lo que vale la pena, la gente piensa que estaremos vigilando las máquinas que hacen la codificación, entrenándolos como cachorros, y haciendo la codificación real:

Pronto no programaremos computadoras. Los entrenaremos como perros,

Pero un contrapunto:

Cada vez que alguien publica uno de estos ensayos de “codificación finalizada” en Medium, deshacen una buena parte de …

Ya está obsoleto y ha estado obsoleto desde finales de los años cincuenta.

Originalmente, la codificación significaba la traducción manual de una especificación de programación de alto nivel al lenguaje de máquina por un especialista en esta área.

Aunque el proceso fue automatizable, se desarrollaron lenguajes formales de alto nivel junto con compiladores para lograr esta tarea. Así, la codificación se volvió obsoleta hace mucho, mucho tiempo.

Lo que hacemos ahora es programar, no codificar. La codificación implica algo oscuro e incomprensible para la persona promedio. Los programas deben ser expresivos y no oscuros.

Siempre habrá programación a algún nivel: queremos que se haga algo, configuramos un programa para hacerlo.

No, no lo creo.

La programación es una combinación de creatividad y pensamiento lógico. Es la traducción de los deseos humanos expresada como Haz lo que quiero decir en instrucciones lógicas de Haz exactamente lo que te digo.

Creo que las computadoras siempre ayudarán a los programadores con el trabajo y harán más en el futuro. Pero eso solo hace posible escribir código más rápido y ofrecer aún más funciones en menos tiempo. Nunca he trabajado en un trabajo donde la lista de tareas se haya terminado. Crece continuamente con solicitudes de características e informes de errores menores.

Además, con cada programa, la función intencional suele ser la parte simple. Probablemente dos tercios del programa están ahí para manejar todas las posibles condiciones de error y recuperarse de ellas. Sin embargo, eso casi nunca está cubierto en la especificación. Los programadores a menudo simplemente hacen eso en el acto. Los programadores experimentados ven estos casos venir y tenerlos en cuenta. Y no puede tratar el error de la misma manera en todos los programas porque el contexto es muy importante.

Estoy de acuerdo con otros en que AGI podría reemplazar a los programadores humanos. Sin embargo, en un sentido que AGI es una persona también. O, en cualquier caso, si confiamos en que AGI escriba el software de vehículo de auto-conducción para nosotros, lo trataremos MEJOR como persona.

No

Gödel ya respondió a la pregunta de si Matemáticas y Lógica pueden ser completamente automatizadas o no. Su respuesta fue “no”: los teoremas de incompletitud de Gödel

Depende de lo que definas como codificación. Si es el proceso de convertir la solicitud del cliente del inglés simple (“lenguaje natural”) al código, entonces sí, se va a quedar obsoleto muy pronto.

De hecho, acabo de ver un prototipo en funcionamiento de un sistema que toma cosas como “Quiero un botón en el centro de la pantalla para que cuando lo presiones recibas un mensaje que diga hola” y lo convierta en una aplicación que funcione. . Y esto es algo que está funcionando * hoy *.

¿Cuánto tiempo pasará hasta que tengamos algo lo suficientemente robusto como para que la palabra hablada nos diga qué hacer? No tan largo.

Si define la codificación como algo más, por favor hágamelo saber.