11 predicciones para el futuro de la programación

Lo único que vuela más rápido que el tiempo es el progreso de la tecnología. Una vez, después del almuerzo, un amigo diseñador de chips se disculpó rápidamente con la hábil explicación de que la ley de Moore significaba que tenía que hacer que su conjunto de chips fuera un 0,67 por ciento más rápido cada semana, incluso durante las vacaciones. Si no lo hiciera, los chips no duplicarían su velocidad cada dos años.

Ahora que 2017 está aquí, es hora de hacer un balance de los cambios tecnológicos que se avecinan, aunque solo sea para ayudarlo a saber dónde apostar en el desarrollo de habilidades de programación para el futuro.

Desde el creciente dolor de cabeza de seguridad del Internet de las cosas hasta el aprendizaje automático en todas partes, el futuro de la programación es cada vez más difícil de predecir.

La nube derrotará la ley de Moore

Hay detractores que afirman que las empresas de chips han chocado contra una pared. Ya no duplican la velocidad del chip cada dos años como lo hicieron durante los felices años de los 80 y los 90. Quizás, pero ya no importa porque los límites entre chips están menos definidos que nunca.

En el pasado, la velocidad de la CPU en la caja de tu escritorio importaba porque, bueno, solo podías ir tan rápido como el hámster de silicona del interior podía girar su rueda. Comprar un hámster más grande y más rápido cada pocos años también duplicó su productividad.

Pero ahora la CPU de su escritorio apenas muestra información en la pantalla. La mayor parte del trabajo se realiza en la nube, donde no está claro cuántos hámsters están trabajando en su trabajo. Cuando busca en Google, su nube masiva podría dedicar 10, 20, incluso 1,000 hámsters a encontrar la respuesta adecuada para usted.

El desafío para los programadores es encontrar formas inteligentes de desplegar elásticamente la potencia informática suficiente para el problema de cada usuario, de modo que la solución llegue lo suficientemente rápido y el usuario no se aburra y se pierda en el sitio de un competidor. Hay mucha potencia disponible. Las empresas de la nube le permitirán manejar la aglomeración de usuarios, pero debe encontrar algoritmos que funcionen fácilmente en paralelo y luego hacer arreglos para que los servidores funcionen en sincronía.

La seguridad de IoT solo se volverá más aterradora

La botnet Mirai que se desarrolló en el otoño pasado fue una llamada de atención para los programadores que están creando la próxima generación de Internet de las cosas. Estos pequeños dispositivos inteligentes pueden infectarse como cualquier otra computadora, y pueden usar su conexión a Internet para causar estragos y dejar escapar a los perros de la guerra. Y como todo el mundo sabe, los perros pueden hacerse pasar por cualquier persona en Internet.

El problema es que la cadena de suministro actual de dispositivos no tiene ningún mecanismo para reparar el software. El ciclo de vida de un dispositivo generalmente comienza con un largo viaje desde una planta de fabricación hasta un almacén y finalmente hasta el usuario. No es habitual que transcurran hasta 10 meses entre el montaje y el primer uso. Los dispositivos se envían al otro lado del mundo durante esos largos y prolongados meses. Se sientan en cajas esperando en contenedores de envío. Luego se sientan en palés en grandes almacenes o almacenes. Para cuando los desempaquetan, les podría haber pasado cualquier cosa.

El desafío es hacer un seguimiento de todo. Ya es bastante difícil actualizar las baterías de los detectores de humo cada vez que cambian los relojes. Pero ahora tendremos que preguntarnos por nuestro horno tostador, nuestra secadora de ropa y casi todo lo que hay en la casa. ¿Está actualizado el software? ¿Se han aplicado todos los parches de seguridad? La cantidad de dispositivos hace que sea más difícil hacer algo inteligente para monitorear la red doméstica. Hay más de 30 dispositivos con direcciones IP conectados a mi enrutador inalámbrico y solo conozco la identidad de 24 de ellos. Si quisiera mantener un firewall inteligente, me volvería loco abriendo los puertos correctos para las cosas inteligentes correctas.

Dar a estos dispositivos la oportunidad de ejecutar código arbitrario es una bendición y una maldición. Si los programadores quieren realizar tareas inteligentes y permitir que los usuarios tengan la máxima flexibilidad, las plataformas deben estar abiertas. Así es como florecen la revolución de los creadores y la creatividad de código abierto. Pero esto también brinda a los creadores de virus más oportunidades que nunca. Todo lo que necesitan hacer es encontrar una marca de widget que no haya actualizado un controlador en particular; voilà, han encontrado millones de widgets preparados para alojar bots.

El video dominará la web de nuevas formas

Cuando el comité de estándares HTML comenzó a incrustar etiquetas de video en HTML, probablemente no tenían grandes planes de rehacer el entretenimiento. Probablemente solo querían resolver los fallos de los complementos. Pero las etiquetas de video básicas responden a los comandos de JavaScript y eso las hace esencialmente programables.

Eso es un gran cambio. En el pasado, la mayoría de los videos se consumían de manera muy pasiva. Te sientas en el sofá, presionas el botón de reproducción y ves lo que el editor del video decidió que deberías ver. Todos los que ven ese video de gatos ven a los gatos en la misma secuencia decidida por el creador del video de gatos. Claro, algunos videos avanzan rápidamente, pero los videos llegan a su conclusión con tanta regularidad como los trenes suizos.

El control de JavaScript del video es limitado, pero los diseñadores web más hábiles están descubriendo formas inteligentes de integrar el video con el resto de la página web en un lienzo perfecto. Esto abre la posibilidad para que el usuario controle cómo se desarrolla la narrativa e interactúa con el video. Nadie puede estar seguro de lo que imaginarán los escritores, artistas y editores, pero necesitarán talento en programación para que esto suceda.

Muchos de los sitios web más ingeniosos ya tienen videos en ejecución en lugares inteligentes. Pronto todos querrán mover cosas. No será suficiente poner una IMGetiqueta con un archivo JPEG. Deberá capturar un video y lidiar con los problemas de estándares que han fragmentado el mundo de los navegadores.

Las consolas continuarán reemplazando a las PC

Es difícil enfadarse con las consolas de juegos. Los juegos son geniales y los gráficos asombrosos. Han construido excelentes tarjetas de video y plataformas de software relativamente estables para que nos relajemos en la sala de estar y soñemos con disparar a los malos o lanzar una pelota de fútbol.

Las consolas de la sala de estar son solo el comienzo. Los fabricantes de artículos para el resto de la casa siguen el mismo camino. Podrían haber elegido un ecosistema de código abierto, pero los fabricantes están construyendo sus propias plataformas cerradas.

Esto fragmenta el mercado y dificulta a los programadores mantener todo en orden. Lo que funciona con un interruptor de luz no funciona con otro. El secador de pelo puede utilizar el mismo protocolo que la tostadora, pero probablemente no lo hará. Es más trabajo para los programadores ponerse al día y menos oportunidades para reutilizar nuestro trabajo.

Los datos seguirán siendo el rey

Después de las elecciones presidenciales de EE. UU. De 2016, los expertos que hablaban mal se burlaban de los expertos que hablaban mal, sugiriendo que todo su análisis estadístico era un ejercicio de tontería. Las predicciones fueron dramáticamente erróneas y la gente de Big Data lució mal.

¿Cómo llegaron a esta conclusión? Comparando un conjunto de números (las predicciones) con otro conjunto de números (los resultados de las elecciones). Todavía necesitaban los datos.

Los datos son la forma en que vemos en Internet. La luz nos brinda información sobre el mundo real, pero los números nos dicen todo en línea. Algunas personas pueden hacer malas predicciones basadas en números imperfectos, pero eso no significa que debamos dejar de recopilar e interpretar los números.

La recopilación, recopilación, selección y análisis de datos seguirá siendo uno de los trabajos más importantes para la empresa. Los que toman las decisiones necesitan los números y los programadores seguirán teniendo la tarea de entregar datos de una manera que sea más fácil de entender. Esto no significa que las respuestas sean perfectas. El contexto y la intuición seguirán teniendo un papel, pero la necesidad de discutir datos no desaparecerá simplemente porque algunas personas predijeron que Donald Trump no sería elegido. Esto significa más trabajo para los programadores, ya que no se vislumbra un final para nuestra necesidad de crear software más grande, más rápido y con mayor uso de datos.

El aprendizaje automático se convertirá en la nueva característica estándar

Cuando los niños en la universidad toman un curso llamado "Estructuras de datos", aprenden cómo era la vida cuando sus abuelos escribían código y no podían depender de la existencia de una capa llamada "la base de datos". Los programadores reales tenían que almacenar, ordenar y unir tablas llenas de datos, sin la ayuda de Oracle, MySQL o MongoDB.

Los algoritmos de aprendizaje automático están a unos pocos años de dar ese salto. En este momento, los programadores y científicos de datos necesitan escribir gran parte de su propio código para realizar análisis complejos. Pronto, lenguajes como R y algunas de las herramientas de inteligencia empresarial más inteligentes dejarán de ser especiales y comenzarán a ser una característica habitual en la mayoría de las pilas de software. Pasarán de ser cuatro o cinco diapositivas especiales en la plataforma de ventas de PowerPoint a un pequeño rectángulo en el dibujo de arquitectura que se da por sentado.

No sucederá de la noche a la mañana y no está claro exactamente qué forma tendrá, pero está claro que cada vez más planes de negocios dependen de que los algoritmos de aprendizaje automático encuentren las mejores soluciones.

El diseño de la interfaz de usuario se volverá más complicado a medida que las PC continúen desapareciendo

Cada día parece que hay una razón menos para usar una PC. Entre el auge de los teléfonos inteligentes, las consolas de la sala de estar y la tableta, las únicas personas que todavía parecen aferrarse a las PC son los trabajadores de oficina y los estudiantes que necesitan entregar una tarea.

Esto puede ser un desafío para los programadores. Solía ​​ser fácil asumir que los usuarios de software o sitios web tendrían un teclado y un mouse. Ahora muchos usuarios tampoco tienen. Los usuarios de teléfonos inteligentes están aplastando sus dedos contra una pantalla de vidrio que apenas tiene espacio para las 26 letras. Los usuarios de la consola presionan las teclas de flecha en un control remoto.

Diseñar sitios web es cada vez más complicado porque un evento táctil es ligeramente diferente de un evento de clic. Los usuarios tienen diferentes niveles de precisión y las pantallas varían mucho en tamaño. No es fácil mantenerlo todo en orden, y solo empeorará en los próximos años.

El fin de la apertura

La desaparición de la PC no es solo la muerte lenta de un factor de forma en particular. Es la muerte de un mercado particularmente abierto y acogedor. La muerte de la PC supondrá un cierre de posibilidades.

Cuando se enviaron las PC por primera vez, un programador podía compilar código, copiarlo en discos, meter esos discos en bolsas ziplock y el mundo podía comprarlo. No había intermediarios, ni guardias, ni fuerza central severa que nos pidiera que dijéramos: "Madre, ¿puedo?"

Las consolas están bien cerradas. Nadie entra en ese mercado sin una inversión de capital. Las tiendas de aplicaciones son un poco más abiertas, pero siguen siendo jardines vallados que limitan lo que podemos hacer. Claro, todavía están abiertos a los programadores que saltan por los aros correctos, pero cualquiera que haga un movimiento en falso puede ser descartado. (De alguna manera, siempre están retrasando nuestras aplicaciones mientras el malware se filtra. Imagínese).

Esta distinción es importante para el código abierto. No se trata únicamente de vender disquetes en bolsitas. Estamos perdiendo la capacidad de compartir código porque estamos perdiendo la capacidad de compilar y ejecutar código. El fin de la PC es una gran parte del fin de la apertura. Por ahora, la mayoría de las personas que leen esto probablemente tengan un escritorio decente que pueda compilar y ejecutar código, pero eso está cambiando lentamente.

Menos personas tienen la oportunidad de escribir código y compartirlo. A pesar de toda la charla sobre la necesidad de enseñar a programar a la próxima generación, hay menos vectores prácticos para distribuir el código abierto.

El transporte autónomo llegó para quedarse

No son solo los autos. Algunos quieren hacer aviones autónomos que no se vean obstaculizados por la necesidad de carreteras. Otros quieren crear patinetas autónomas para viajes muy ligeros. Si se mueve, algún hacker sueña con decirle a dónde debe ir.

Los programadores no controlarán lo que la gente ve en la pantalla. Controlarán a dónde van las personas y cómo interactúan con el mundo. Y las personas son solo una parte del juego. Todas nuestras cosas también se moverán de forma autónoma.

Si desea la cena de un famoso chef del centro, una patineta autónoma con una cámara con calefacción puede llevarla a su casa. Si quiere que le corten el césped, una cortadora de césped autónoma reemplazará al niño del vecindario.

Y los programadores pueden usar todas las ideas geniales que tuvieron durante la primera revolución de Internet. Si pensaba que los anuncios emergentes eran malos en Internet, espere hasta que se les pague a los programadores para desviar sus patines autónomos más allá del respiradero de la cocina de un nuevo restaurante. ¿Tienes hambre todavía?

La ley encontrará nuevos límites

La tinta estaba apenas seca en la Declaración de Derechos cuando comenzaron los debates sobre lo que significa que una búsqueda de nuestros documentos sea razonable. Ahora, más de 200 años después, todavía estamos discutiendo los detalles.

Los cambios en la tecnología abren nuevas vías para la ley. Hace unos años, la Corte Suprema decidió que la tecnología de rastreo de vehículos requiere una orden judicial. Pero eso es solo cuando la policía coloca el rastreador en el auto. Nadie sabe realmente qué reglas se aplican cuando alguien solicita los datos de seguimiento de Waze, Google Maps o cualquiera de los cientos de otras aplicaciones que almacenan en caché nuestras ubicaciones.

¿Qué hay de influir en el funcionamiento de las máquinas? Una cosa es descargar datos, pero también es terriblemente tentador cambiarlos. ¿Es justo que la policía (o los actores privados) falsifiquen documentos, encabezados o fragmentos? ¿Importa si los objetivos son verdaderos terroristas o simplemente personas que han estacionado demasiado tiempo en un lugar prohibido sin alimentar el parquímetro?