¿Estás estudiando Informática para cumplir tu sueño de ganarte la vida gracias a tus habilidades escribiendo código? Pues siento ser yo el que te dé la noticia, pero llegas tarde.  Todavía quedan algunos programadores sueltos pero más temprano que tarde se habrán extinguido. ¿Todos? ¡No! siempre quedarán algunos irreductibles, dedicados a tareas tan específicas que no es  rentable sustituirlos por “algo” más productivo. Lo sé, utilizar Astérix como comparativa es un recurso fácil pero como lo tengo al lado, geográficamente hablando, me permito usarlo.

Te estarás preguntando, y ¿ahora qué hago? ¿me pongo a estudiar humanidades? Espera, tranquilo, tampoco hace falta ser tan drástico. De hecho, la extinción de los programadores, entendiendo “programador” como aquél que programa (dad las gracias a la RAE por esta definición tan brillante) es decir aquél que escribe el código o secuencia de instrucciones que lo componen, no es una mala noticia.

En lugar de ser programador, ahora puedes aspirar a ser desarrollador… que encima ¡cobran más! Para ser precisos, la palabra “desarrollador” no aparece en el diccionario de la RAE pero Google dice que hay casi 6 millones de entradas para este término con lo que ¿a quién vas a creer?. Tal y como lo entiendo yo (y más o menos lo que también viene a decir la Wikipedia) un desarrollador es una persona que produce software, no necesariamente programándolo o como mínimo no programando él mismo en su totalidad. En su origen, desarrollador y programador eran sinónimos pero cada vez más podemos desarrollar software sin tener que “ensuciarnos” las manos (en un sentido metafórico, sigue leyendo, ya tendrás tiempo de acordarte de mi familia en los comentarios al final, un poco más de paciencia) programándolo.

Veamos, pues, cuáles son mis tres razones para afirmar que podemos, cada vez más, prescindir de los programadores:

1.     Hay una API para ti

Para todo lo que quieras en la vida, hay una API que alguien ya ha escrito y que hace exactamente lo que necesitas… no siempre gratis, claro, pero hay una licencia tipo Creative Commons para APIs llamada API commons.  Por ejemplo, una sola web, Programmable web, tiene clasificadas más de 10.000 para todos los dominios imaginables.  ¿Quieres hacer una aplicación relacionada con temas de comida? Ahí encontrarás APIs para saber los componentes nutricionales de cada alimento,  recetas para combinarlos y restaurantes donde comerlos, por poner sólo algunos ejemplos.

Como espero que no sufras del síndrome no-inventado-aquí , antes de escribir una sola línea de código busca la/s APIs que te proporcionen los datos que necesitas y limítate a combinarlas. Para las APIs más comunes tienes incluso servicios como IFTTT que hacen el trabajo por ti. Sí, a lo mejor esto ya lo has oído antes (el boom de los componentes?  los servicios web?) pero nunca a esta escala y con una facilidad de reutilización tan elevada.

IFTTT ofrece miles de “recetas” (combinaciones de servicios en su terminología) como la del ejemplo que permite guardar automáticamente nuevas fotos tuyas en Instagram en tu carpeta DropBox

IFTTT ofrece miles de “recetas” (combinaciones de servicios en su terminología) como la del ejemplo que permite guardar automáticamente nuevas fotos tuyas en Instagram en tu carpeta DropBox

2.     Convierte un framework en tu esclavo

La última vez que escribí una aplicación web (para un familiar, no hace falta decir que hacerlo fue una muy mala idea) ni me planteé escribirlo todo de cero. Dediqué más tiempo a buscar el framework más productivo (me decanté por Spring Roo, pero ojo que ya partía del prerrequisito de que el lenguaje fuera  Java) que a utilizarlo para escribir la aplicación en sí.

Una vez tuve Roo instalado en mi Eclipse IDE y ligado a una cuenta gratuita de CloudBees para el despliegue automático de la aplicación desde mi entorno local me bastó con utilizar la consola de Roo para crear el modelo de datos de la aplicación (muy parecido a crear un diagrama de clases UML pero textual, y de hecho, se podría escribir muy fácilmente un generador UML ->Roo, pero el tema del porqué deberías modelar más lo dejamos para otro día, no hace falta provocar más de la cuenta) y dejar que Roo hiciera todo el trabajo, desde crear las tablas correspondientes en la base de datos hasta crear la interfaz gráfica por mí con toda la funcionalidad básica necesaria (patrón CRUD: create/read/update/delete). ¿Qué tú la harías más bonita? Puede que sí, y eres libre de modificar cualquier parte del código generado por Roo (y además Roo va a respetar tus cambios en el futuro), pero para la gran mayoría las opciones por defecto de Roo nos permiten  llegar muuuuuy lejos (por si a alguien le interesa hace unos años hicimos un estudio que adaptado a este contexto vendría a decir que lo que Roo genera cubre un 80% o más de toda la funcionalidad que necesita una aplicación).

Ejemplo de UI creada por ROO. Para cada campo de la clase se crea un control del tipo adecuado (y con las verificaciones necesarias)

Ejemplo de UI creada por ROO. Para cada campo de la clase se crea un control del tipo adecuado (y con las verificaciones necesarias)

 3.     Más fácil todavía. Hazlo todo con WordPress

Ya hace mucho tiempo que WordPress (pon aquí tu CMS preferido, da igual) dejó de ser una herramienta para escribir tu blog y se convirtió en un framework muy potente que permite a cualquier usuario (incluso sin conocimientos reales de programación) crear muchos tipos de aplicaciones web comunes simplemente instalando los plugins de WordPress adecuados.

¿Control de usuarios? ¿Autenticación con Google, Facebook o Twitter? ¿Carrito de la compra? ¿Web multilingüe? ¿Logs de errores? ¿Sistema avanzado de plantillas? ¿Integración con Google Maps o cualquier otro servicio de Google? Todo a un click de distancia:  el que te lleva al repositorio de plugins de WordPress.

Cierto,  no vas a poder construir el software de control para el nuevo modelo de Airbus con WordPress ni tampoco simplemente conectando un par de APIs públicas ni Roo va a ser nunca capaz de generar un software certificado automáticamente. Y por eso digo que siempre habrá algún programador que va a sobrevivir a la extinción masiva. ¿Pero cuántos modelos de  Airbus se crean cada año? (la respuesta es que el número tiende a cero). ¿Y en comparación, cuantas aplicaciones web para la visualización y entrada de datos (de facturación, proyectos, clientes,…) se crean cada día y se podrían desarrollar sin casi escribir una sola línea de código?

Los programadores han hecho un gran trabajo. Dejemos que se extingan en paz y aprovechemos la gran herencia que nos han dejado para ser mucho más productivos y dedicarnos a la parte más creativa del desarrollo de software en lugar de reeescribir código ya escrito millones de veces anteriormente.

Jordi Cabot es profesor titular en la École des Mines de Nantes (Francia) donde dirige el equipo de investigación en Ingeniería del Software AtlanMod adscrito a INRIA.  Es además cofundador de la empresa Nelio Software S.L., especializada en ofrecer servicios relacionados con el mundo WordPress.

via iNFoRMáTiCa++ http://ift.tt/1eWwi2E

Advertisements