El pasado mes de agosto, el instituto IEEE (Institute of Electrical and Electronics Engineers) publicaba en Spectrum, el ranking anual sobre el Top Programming Languages 2021, donde se destacaba Python como el lenguaje de programación más popular en 2021. Según este estudio, Python se convierte en la plataforma «de facto» para las nuevas tecnología IT y la principal conclusión que se puede sacar de su constante predominio es que hay que aprender Python:
Learning the language well enough to use one of the vast number of libraries written for it is probably worth your time.
Aprender este lenguaje lo bastante bien como para poder usar una de las muchas bibliotecas escritas para él probablemente valga la pena
Python es una opción interesante para realizar todo tipo de programas que se ejecuten en cualquier máquina. Con este lenguaje podemos desarrollar software para app científicas, para comunicaciones de red, para app de escritorio con interfaz gráfica de usuario (GUI), para crear videojuegos, para smartphones, para Inteligencia Artificial, para automatización de tareas y por supuesto, para programación web. Su predominio que tiene mucho que ver con su versatilidad: lenguaje multiparadigma, al poder ser enfocado a varios estilos; y de código abierto, lo que permite que cualquiera pueda acceder a él. Actualmente, Python es el lenguaje de programación de referencia para grandes tecnológico como Google, Facebook o Netflix lo utilizan.
Por otro lado, cabe decir que muchas tareas siguen demandando soluciones especializadas como R, SQL y Matlab. Así como, otros lenguajes generalistas también siguen siendo de peso en proyectos IT como son los que aparecen, junto a Python, en el top 5 del ranking: Java, C, C++ y JavaScript.
FUENTE: https://spectrum.ieee.org/
Acerca del ranking…
La publicación Spectrum sobre «Top Programming Languages 2021» tiene el objetivo de clasificar docenas de lenguajes de programación en base a su popularidad. Se trata de un ranking interactivo: se puede filtrar excluyendo sectores que no sean relevantes para quien lo quiera visualizar (ej. filtar como «Web» o «Integrado»). Las clasificaciones se crean ponderando y combinando 11 métricas de ocho fuentes: CareerBuilder, GitHub, Google, Hacker News, IEEE, Reddit, Stack Overflow y Twitter. El ranking, por defecto, posee unos filtros asociados preestablecidos por IEEE, pero si el usuario desea realizar su propio ranking, la publicación Spectrum ofrece la posibilidad de customizar los criterios de clasificación a través del botón «Create Custom Ranking», como se muestra en la siguiente imagen:
FUENTE: https://spectrum.ieee.org/
Este ránking de IEEE puede resultar un tanto polémico ya que se incluyen algunos «lenguajes» a los que no todos considerarían lenguajes de programación como tal, ejemplos de esto son: el puesto 9, HTML; y el puesto 11, Arduino. Según afirma su autor, Stephen Cass, «adoptamos un enfoque pragmático para definir qué es un lenguaje de programación; HTML no puede ser de propósito general, pero creemos que sería una locura excluirlo sobre esa base. De la misma forma que se podría argumentar que el código Arduino simplemente está escrito en un subconjunto de C ++, pero eso no es lo que la gente busca cuando intentan que sus LEDs parpadeen«.
La vigésima edición de Developer Economics reveló en su estudio que JavaScript es el lenguaje de programación más popular con bastante diferencia, casi 14 millones de desarrolladores a nivel mundial (de 24,3 millones activos) frente al resto. Asimismo, se destaca a dos lenguajes de programación Rust y Lua que, a pesar de ser aún desconocidos, han sido los que más han crecido en los últimos 12 meses. Por este motivo, queremos ahondar más en Rust, un lenguaje de programación que además de su reciente crecimiento, grandes empresas como Facebook y Microsoft están interesados en él.
Antes de desglosaros qué ventajas posee este lenguaje de programación de sistemas de código abierto, veamos brevemente un poco cómo fue su origen. Rust nace gracias a Mozilla Firefox en el año 2006, de la mano de Graydon Hoare, quien buscaba un lenguaje que permitiese escribir un código tan rápido como C o C++, eliminando los inconvenientes con el recolector de basura (garbage recollector) con el fin de evitar los problemas derivados de la gestión de memoria. Rust comienza a evolucionar gracias al impulso de Firefox y de un gran número de contribuidores de la comunidad. Sin embargo, debido a algunos problemas de capital de la compañía para asumir el proyecto, los responsables de Rust deciden independizarse creando una fundación homónima. Así nace la Fundación Rust en 2010, una nueva organización sin ánimo de lucro cuyo objetivo es dirigir y apoyar el desarrollo del lenguaje de programación Rust y su ecosistema. En la actualidad, Rust está financiada por grandes entidades como Amazon AWS, Microsoft Azure, Google Cloud, Facebook y, desde sus inicios, Mozilla Firefox.
¿Qué ventajas vienen de la mano de Rust?
Interoperabilidad fácil y segura de Rust con C++
Existe una gran cantidad de código C++ que es necesario para comunicarse con los sistemas de back-end en los que se basan los servicios. Por lo que es necesario que los desarrolladores puedan utilizar estas bibliotecas de forma segura y sencilla sin sacrificar los beneficios que ofrece Rust. Además, si se desea ver los componentes de Rust integrados con los binarios de C++ más grandes, se necesita una interoperabilidad inteligente en tiempo de ejecución en código asincrónico.
Asegurar una excelente gestión de memoria
Tal como hemos comentado antes, Rust garantiza la seguridad de la memoria sin un recolector de basura. Si se llena una memoria, se produce un error en el sistema y, por lo tanto, una brecha que puede ser explotada. Un «garbage recollector» asegura que los objetos innecesarios desaparezcan de la memoria pero, claro está, esto hace que la ejecución del cogido se ralentice. Sin embargo, Rust somprueba si puede haber errores en la memoria en tiempo de compilación por lo que el recolector de basura se queda obsoleto.
Alta velocidad y lenguajes de alto nivel. No afecta al rendimiento.
Al igual que Co C++, el lenguaje Rust está muy cerca del hardware, lo que garantiza una alta velocidad. Adicionalmente, gracias al compilador de este, se cumplen convenientemente las garantías de seguridad del resto de las validaciones que conllevan que este lenguaje sea eficiente y seguro. Si te preguntas si estas sólidas medidas de seguridad provocan una bajada del rendimiento, la respuesta es que no. Esto se debe, como hemos dicho, a la ausencia del recolector de basura pero también debido a que Rust permite programar de manera abstracta sin afectar el rendimiento.
Fácil uso
Por último, tanto los programadores con menos conocimientos, como los profesionales, pueden aprender a utilizar Rust rápidamente. En términos de uso, el lenguaje apenas difiere de las alternativas más conocidas. Una gran ventaja es su elaborado sistema de emisión de mensajes de error: donde otros lenguajes de programación solo generan avisos crípticos, Rust proporciona consejos aplicables para solucionar los errores.
¿Quieres aprender más de Rust?
Rust cuenta con una excelente documentación en su web oficial con recursos totalmente guiados, diversos ejercicios a modo de ejemplo en su site oficial en Github y múltiples recursos en su canal oficial en Youtube.
¿Por qué está creciendo tan rápido en el ultimo año?
Probablemente, el apoyo por parte de Facebook como miembro Platinum en la Fundación Rust y el lanzamiento de «Rust for Windows’ por parte de Azure, sean indicadores que existe un interés en la comunidad de implementar este lenguaje de programación.
Lo más significativo de «Rust for Windows» es que, no sólo ofrece un ‘crate’ (componente) que permite al software desarrollado en Rust comunicarse con cualquier API de Windows, sino que lo acompaña de todo un pack de herramientas para desarrollar con Rust en Windows. Microsoft está trabajando para buscar las características de seguridad de memoria de Rust para crear un nuevo lenguaje para la programación de infraestructura segura bajo el Proyecto Verona. La versión para Windows del compilador de Rust está disponible en la web, pero si vamos a usar ‘Rust for Windows’ necesitaremos usarlo conjuntamente con Visual Studio o con Visual Studio Code (acompañado, en este último caso, de las extensiones Rust-Analyzer y CodeLLDB).
¿Qué es ML.NET?
ML.NET ofrece la posibilidad de agregar el aprendizaje automático en aplicaciones de .NET, ya sea en escenarios on line o sin conexión. Con esta funcionalidad, es posible realizar predicciones automáticas usando los datos disponibles para la aplicación sin tener que estar conectado a una red.
Aprendizaje automático en ML.NET, ¿qué predicciones puede hacer?
Algunos ejemplos del tipo de predicciones que puede hacer con ML.NET son los siguientes:
ML.NET ofrece Model Builder (una herramienta de interfaz de usuario simple) y ML.NET CLI para que sea muy fácil crear modelos de aprendizaje automático personalizados. Estas herramientas utilizan Automated ML (AutoML), una tecnología de vanguardia que automatiza el proceso de creación de modelos con el mejor rendimiento para su escenario de Machine Learning. Lo único que se necesita es cargar tus dato y AutoML se encarga del resto del proceso de construcción del modelo.
¿En qué se caracteriza ML.NET?
¿Quieres saber más? Puedes consultar todos los tutoriales, ejemplos de código, referencia de API y otra documentación en la web de docs.microsoft.com