La elección de lenguaje de programación es uno de los puntos clave para los equipos de DevOps de cara al éxito tanto en integración como en entrega continua, así como en escalabilidad. En la actualidad hay muchos lenguajes, algunos extremadamente populares, por lo que escoger el adecuado en cada caso es complicado. Para conseguirlo hay que tener en cuenta, según ITProToday, varios factores, que dependerán entre otras cosas de las necesidades de la empresa.
En general, cuando se intenta identificar el lenguaje más adecuado para DevOps, hay que tener en cuenta las características que deben tener las aplicaciones desarrolladas. En general, deben ser escalables, para adaptarse a las demandas de los usuarios. También eficientes, tanto en cuanto a rendimiento como a tiempo de ejecución. Y modulares, lo que redunda en una mayor eficiencia de los programas, aparte de facilitar el desarrollo de aplicaciones para pequeños servicios. Por último, deben tener un alto grado de portabilidad, ya que el entorno de desarrollo o el sistema operativo en el que se utilizan pueden cambiar en el futuro. El lenguaje seleccionado debe contribuir a conseguir que las aplicaciones desarrolladas con él cumplan estos requisitos.
En general, los principales lenguajes de programación para DevOps que pueden contribuir al desarrollo de software según lo mencionado (aunque puede que algunos ingenieros de DevOps prefieran otros) son los siguientes: Google Go (Golang), Python, Ruby, Scala y C. El primero, a pesar de que parece estar experimentando un cierto estancamiento, es un lenguaje que ofrece un excelente rendimiento. Está desarrollado en C y se diseñó para sacar partido a la concurrencia, lo que impacta positivamente en el rendimiento. Es altamente portable y, aunque es un lenguaje compilado, con él no hay que preocuparse por las dependencias al compilar apps creadas con él. Por lo tanto, se pueden desarrollar con rapidez. Su creación es bastante reciente y surgió casi al mismo tiempo que DevOps empezaba a ser popular, por lo que se han desarrollado casi a la par. Aparentemente, entre sus pocas desventajas está que al ser muy nuevo no es muy conocido, por lo que los ingenieros de los equipos DevOps tienen que aprenderlo de cero.
Python, nacido en la década de los 80, es muy popular en la actualidad. Al ser un lenguaje de scripts, es muy útil para tareas concretas, como la gestión de infraestructura. Pero también es muy valorado en el desarrollo de aplicaciones. Además, su ingente cantidad de módulos disponibles públicamente facilita su rápida adopción sin necesidad de escribir código redundante. Por otro lado, sus necesidades estilísticas refuerzan las buenas prácticas de programación. Así, el código que escribe un programador en Pyhton lo puede comprender casi cualquier otro, algo muy importante en un entorno DevOps. Python es probablemente uno de los lenguajes más versátiles que existen. Es muy adaptable y se utiliza en todos los campos, desde Big Data a Internet de las Cosas.
Al igual que Python, uno de los principales usos de Ruby, un lenguaje multiplataforma, está en gestión de infraestructura, aunque también puede utilizarse en gran cantidad de tareas y aspectos. Es otro de los lenguajes de gran aceptación en equipos de DevOps que cuenta con gran cantidad de módulos generados por la comunidad y que cualquiera puede integrar en sus aplicaciones. Esto las aportarán funcionalidad y sin tener que escribir nuevo código. Aparte de esto, Ruby permite un enfoque de la programación muy flexible. Se puede escribir código en este lenguaje orientado a objetos en programación por procedimientos, pero también deja generar código para ejecutarlo a través de un intérprete.
Scala es un lenguaje diseñado para aprovechar todo lo bueno de Java, un lenguaje también utilizado ampliamente en DevOps, pero sin lo malo. Es orientado a objetos, y el código generado con él suele ser más limpio y conciso que el de Java. Permite importar clases y librerías de Java, lo que facilita su adopción. En cuanto a aspectos negativos, no mejora en rendimiento a Java. Además, para ejecutar aplicaciones creadas con él se necesita un entorno Java. En cuanto a C, un lenguaje nacido a principios de la década de los 70 del siglo pasado, es uno de los más antiguos que sigue en uso. Quizá a ello contribuye que las aplicaciones creadas con él son rápidas. También que lo conoce la inmensa mayoría de programadores. Eso sí, tiene sus desventajas. La principal es que los binarios generados en C no son muy portables, aunque el código lo sea. Además, no es un lenguaje orientado a objetos, lo que dificulta el desarrollo modular. En este caso, es más recomendable utilizar C++, derivado de C.