Dos veces por año, los analistas expertos de tecnología de RedMonk estudian las tendencias de adopción de los lenguajes de programación basándose en datos de GitHub y Stack Overflow, El siguiente es la revisión de enero de este año que hacen los expertos de Redmonk
La idea de este análisis no es más que revisar las posibles tendencias futuras dentro del ambiente de programación.
Para ser incluido en este análisis, un lenguaje debe ser observable dentro de GitHub y Stack Overflow.
El Top 20 de los lenguajes de programación es:
1 JavaScript
2 Java
3 Python
4 PHP
5 C#
5 C++
7 CSS
7 Ruby
9 C
10 Objective-C
11 Scala
11 Shell
11 Swift
14 R
15 Go
15 Perl
17 TypeScript
18 PowerShell
19 Haskell
20 Clojure
20 CoffeeScript
20 Lua
20 Matlab
Sin embargo, aquí les damos unas sugerencias de 5 lenguajes que sería bueno aprenderlos este 2017
Groovy
Groovy es un lenguaje de programación dinámico orientado a objetos para la máquina virtual Java (JVM) que se puede utilizar en cualquier lugar dónde se utilice Java. El lenguaje puede ser utilizado para combinar módulos de Java, ampliar las aplicaciones existentes de Java o escribir nuevas aplicaciones.
Groovy puede servir como un lenguaje de programación para los nuevos desarrolladores de la plataforma Java y también puede ser útil para los veteranos desarrolladores de Java interesados en aprender este flexible lenguaje.
Groovy tiene una sintaxis similar a Java y funciona a la perfección con el bytecode de Java. Muchas de las características del lenguaje se parecen a las de Perl, Python, Ruby y Smalltalk.
Otras características incluyen:
• Curva de aprendizaje corta.
• Soporte para lenguajes específicos de dominio (domain-specific languages)
• Sintaxis compacta
• Soporte para tipado dinámico
• Potentes primitivas de procesamiento
• La facilidad de desarrollo de aplicaciones Web
• Soporte para las pruebas unitarias.
Rust
Si no has visto nada sobre Rust aún, lo primero que deberías leer es el libro introductorio, El lenguaje de programación Rust. Te dará una idea de cómo es Rust, cómo instalarlo, y te explicará su sintaxis y conceptos. Luego de leer el libro, serás un desarrollador de Rust de nivel intermedio, y tendrás un buen conocimiento sobre las ideas fundamentales de Rust.
Rust es un nuevo lenguaje de programación que se centra en el rendimiento, la paralelización, y la seguridad de la memoria. Con la construcción de un lenguaje a partir de cero y la incorporación de elementos de diseño del lenguaje de programación moderno, los creadores de Rust evitaron una gran cantidad de “legado” (requisitos de compatibilidad con versiones anteriores) que los lenguajes tradicionales tienen que tratar. En cambio, Rust es capaz de fusionar la sintaxis expresiva y flexibilidad de lenguajes de alto nivel con el control sin precedentes y el rendimiento de un lenguaje de bajo nivel.
La elección de un lenguaje de programación por lo general implica ventajas y desventajas. Aunque la mayoría de los lenguajes modernos de alto nivel proporcionan herramientas para la seguridad de concurrencia y la seguridad de la memoria, lo hacen con una sobrecarga añadida (por ejemplo, mediante el uso de un GC (recolector de basura)), y tienden a carecer de rendimiento y control refinado.
Para hacer frente a estas limitaciones, se tiene que recurrir a lenguajes de bajo nivel. Sin las redes de seguridad de la mayoría de los lenguajes de alto nivel esto puede ser frágil y propenso a errores. Uno tiene repentinamente para hacer frente a la gestión manual de memoria, asignación de recursos, los punteros colgantes, etc. Crear software que puede aprovechar el creciente número de núcleos presentes en los dispositivos de hoy en día es difícil – asegurándose de que dicho código funciona correctamente es aún más difícil.
Rust 1.0.0 estable acaba de ser lanzado. El idioma ya tiene una comunidad vibrante, un creciente ecosistema de cajas (bibliotecas) en su gestor de paquetes, y desarrolladores que aprovechan sus capacidades en una variedad de proyectos. Incluso si nunca has tocado un lenguaje de bajo nivel, ¡éste es el momento perfecto para aprender!
Elixir
Elixir es un lenguaje de programación, creado por Jose Valim, está construido sobre la plataforma de erlang; Elixir es un lenguaje dinámico y funcional, diseñado para construir aplicaciones escalables y mantenibles, además tiene una sintaxis muy flexible.
Elixir cuenta con las siguientes características:
• Compila bytecode para la Erlang Virtual Machine (BEAM)
• Se puede invocar código Erlang dentro de Elixir y viceversa
• Polimorfismo
• Pattern Matching
• Funciones de alto orden
• Inmutabilidad
Go
Go es un nuevo lenguaje de programación para sistemas lanzado por el todopoderoso Google en Noviembre del 2009. Aunque empezó a ser desarrollado en septiembre del 2007 por Robert Griesemer, Rob Pike y Ken Thompson.
Go es un lenguaje de pogramación compilado, concurrente, imperativo, estructurado, no orientado a objetos —de una manera bastante especial— y con recolector de basura que de momento está soportado en diferentes tipos de sistemas UNIX, incluidos Linux, FreeBSD y Mac OS X. También está disponible en Plan 9 puesto que parte del compilador está basado en un trabajo previo sobre el sistema operativo Inferno. Las arquitecturas soportadas son i386, amd64 y ARM. Existe un port no oficial a Microsoft Windows pero es bastante inestable. Actualmente se está trabajando para llevarlo al sistema operativo de Microsoft.
• Go usa una sintaxis parecida a C por lo que los programadores que hayan usado dicho lenguaje se sienten muy cómodos con él
• Go usa tipado estático (estatically typed) y es tan eficiente como C
• Go tiene muchas de las características y facilidad de lenguajes dinámicos como Python
• Aun siendo un lenguaje diseñado para la programación de sistemas, provee de un recolector de basura, reflexión y otras capacidades de alto nivel que lo convierten en un lenguaje muy potente
• Go no está orientado a objetos porque no existe jerarquía de tipos pero implementa interfaces
Go, al igual que C y C++, es un lenguaje compilado, obviamente, comparte características con otros lenguajes compilados, pero lo cierto es que tiene algunas características únicas.
R
R, también conocido como” GNU S”, es un entorno y un lenguaje para el cálculo estadístico y la generación de gráficos. R implementa un dialecto del premiado lenguaje S, desarrollado en los Laboratorios Bell por John Chambers et al.
Para los no iniciados diremos que R provee un acceso relativamente sencillo a una amplia variedad de técnicas estadísticas y gráficas.
Para los usuarios avanzados se ofrece un lenguaje de programación completo con el que añadir nuevas técnicas mediante la definición de funciones.
“S ha modificado para siempre la forma en la que las personas analizan, visualizan y manipulan los datos” (Association of Computer Machinery Software System Award 1998 a John Chambers).
Actualmente, S y R son los dos lenguajes más utilizados en investigación en estadística.
Los grandes atractivos de R/S son: La capacidad de combinar, sin fisuras, análisis ”preempaquetados”(ej., una regresión logística) con análisis ad-hoc, específicos para una situación: capacidad de manipular y modificar datos y funciones. Los gráficos de alta calidad: visualización de datos y producción de gráficos para papers. La comunidad de R es muy dinámica, con gran crecimiento del número de paquetes, e integrada por estadísticos de gran renombre (ej., J. Chambers, L. Terney, B. Ripley, D. Bates, etc.). Hay extensiones específicas a nuevas áreas como bioinformática, geoestadística y modelos gráficos. Es un lenguaje orientado a objetos. Se parece a Matlab y a Octave, y su sintaxis recuerda a C/C++. R es la implementación GNU de S. Filosofía y objetivos del proyecto GNU.
Fuentes: Hongkiat, Codejobs, Mozilla, Github, Genbetadev, UB
Los había escuchado (leído) en muchos sitios pero no pensé que fueran tan
importantes. El mundo de la tecnología es muy variante y debemos actualizarnos
todo el tiempo. Saludos Ernesto.
Hola Gregor
Así es, este mundo es cambiante día a día y hay que estar actualizado y aprender muchas cosas, pero no hay que permitir distraernos, si estamos enfocados en cierta área, actualizarnos sobre esa área, aprender sobre esa área, así seremos mejores en nuestro trabajo.
Gracias por tus comentaros Gregor.