12 nuevos lenguajes de programación que debe conocer

Para algunas personas, aprender un nuevo lenguaje de programación es un exceso que es mejor evitar. ¿Por qué, oh, por qué, argumentan, necesitamos otro idioma más?
¿No tenemos suficiente ya?
¿No funcionan las herramientas existentes?
And then there are those tireless seekers who jump at the opportunity of trying new things and stumbling upon gems. Learning is an end in itself, and they don’t need much convincing to burn away their weekends building a console-based card game in that obscure, new language.

No matter which camp you belong to, there is something beyond debate: we all want to spend time on something that will have a bright future.
Para las personas en el campo del legado, su idioma existente favorito ya tiene mucho impulso y seguirá teniendo un futuro brillante. A ellos, debo recordarles que su cadena de herramientas de desarrollo preferida ahora madura fue una vez "kool-aid" que muchos se negaron a beber. Y así es hoy; se agregan nuevas tecnologías para resolver nuevos problemas o para aliviar el dolor del desarrollo.
If something does this radically enough, chances are it will continue to snatch mindshare and reach the top. When that happens, you don’t want to be left behind. 🙂
Y para aquellos a los que les gusta correr con las cosas brillantes, una advertencia: divertirse es esencial como programador, pero debemos tener cuidado de no desperdiciar nuestras energías sin rumbo fijo.
Por supuesto, mierda de cerebro es un pequeño idioma increíblemente retorcido, parecido a un rompecabezas y divertido, pero es poco probable que te beneficies si lo sigues con seriedad. Quiere algo que sea nuevo, sensato y que tenga una base sólida.
Cómo se seleccionaron estos idiomas

Language selection is an intimidating job, especially when new languages are being considered for future benefits in employment and satisfaction. Every language author is firmly convinced they’ve built the perfect language possible and solved all the problems there are to answer. How, then, do you cut?
Para esta publicación, me centré en algunos parámetros para mantener mi búsqueda dentro de límites razonables.
Fecha de lanzamiento
I specifically avoided languages that are very, very new.
New, I mean languages less than 5-6 years old as of writing, and especially those that haven’t reached stability (1.0 release, that is). But I do hope to come back to this and write about their success someday. 😀
Para mí, de 5 a 12 años es el punto óptimo, que es cuando un idioma se ha estabilizado y se están elaborando más refinamientos. Ahora, por supuesto, hay excepciones a esta regla, y se considerarán cuando corresponda.
Fuerte interés de la comunidad
Este es una obviedad, pero a menudo se ignora cuando nos entusiasmamos con algo nuevo. Ahora bien, para muchas personas el respaldo de una gran empresa es suficiente precedente para el éxito, pero no siempre es así.
Sí, Objective-C de Apple y ahora Swift prosperaron porque eran las únicas opciones en un ecosistema altamente controlado, pero Facebook D y corte (una fea versión de un lenguaje ya feo, en mi opinión) siguen siendo poco más que experimentos.

La combinación ideal sería un lenguaje respaldado por una empresa grande y estable y con una popularidad explosiva (como React).
But the meat of the matter is still the community. If a language is not creating a buzz, and there are not enough devs to educate and popularize, it’s not going to climb out of its GitHub grave.
Para mí, esto descarta lenguajes maduros y fascinantes como Raqueta y Erlang, as they’ve remained flat on the growth curve.
USP enfocado y bien definido
El third thing I’m looking for is a clear-cut goal for the language. For example, a better version of PHP that fixes naming issues and compiles to native PHP doesn’t work for me.
Los beneficios son demasiado pequeños para justificar las grietas si todos intentan moverse hacia él. Con este criterio, no puedo evitar descartar intentos como CoffeeScripty muchos otros lenguajes de compilación en JavaScript similares.

Honestly, I’m bound to dismiss syntax-only improvements immediately. History has shown that usefulness trumps friendliness when it comes to languages, so if all new languages focus on is a more pleasant experience, I’m afraid it won’t make this list.
Sintaxis clara y consistente
Sí, lo sé. Solo dije que la sintaxis no importa. Bueno, para ser precisos, dije que las “mejoras solo de sintaxis” no importan. Pero dicho esto, la sintaxis sigue siendo uno de los factores importantes en la productividad y el mantenimiento del programador, por lo que es algo que seguramente se incluirá en mis cálculos aquí.

Junto con la sintaxis surge la idea de coherencia. La denominación de funciones, la estructuración de módulos, etc., son cosas clave que un lenguaje no puede permitirse equivocarse. Es 2018, por el amor de Dios, y otro diseño de lenguaje similar a PHP sería una lástima para todos nosotros. Entonces, sin más preámbulos, comencemos con nuestras cinco recomendaciones principales.
Julia
Para la gente del MIT, los lenguajes disponibles para la ciencia de datos eran, en el mejor de los casos, un compromiso. Python, a pesar de su claridad y popularidad, carecía de construcciones nativas para tratar con objetos de datos. Además, al ser un lenguaje interpretado, Python era lento para ellos (no las bibliotecas, eso sí, ya que en su mayoría están escritas en C).
But perhaps the biggest turn-off was the clunky concurrency model, and the lack of a parallel computing model, the latter of which is a staple in super-computing.
Como resultado, Julia nació.
Julia alcanzó su lanzamiento estable el 29 de septiembre de 2018, apenas unos días antes de que se escribiera este artículo (¡habla sobre el tiempo!). Esto es lo que el sitio web oficial tiene que decir sobre sus capacidades:
Julia excels at numerical computing. Its syntax is great for math, many numeric datatypes are supported, and parallelism is available out of the box. Julia’s multiple dispatch is a natural fit for defining number and array-like datatypes.
Sintaxis-wise, Julia can be seen as a combination of Python and C. Yes, it’s probably the first time a language has aimed at both these qualities and succeeded.
To keep matters simple, Julia is blazing fast and doesn’t enforce strict typing. Here are some benchmarcas:

As you can see, Julia is slightly worse than C but blows Java and Python out of the water. And what sort of eye-candy does Julia offer?
Bueno, aquí está la implementación de una función para calcular la hipotenusa de un triángulo rectángulo:

finalally, while most of the Julia ecosistema is heavily tilted towards mathematical work, I believe it has a bright general-purpose future.
It’s the first language, to my knowledge, that has first-class support for parallel computing, so it will be no surprise to see it gaining more popularity in the Web and IoT domains.
Herrumbre
If you’ve tried the new Firefox browser releases, you know that finally, after years of working, it’s looking like they might be able to take away some market share from Chrome.
If the browser feels light and snappy and renders quickly, it’s all thanks to the language Mozilla specially : Herrumbre.
To say that Rust has a bright future will be a lie; the language is already a massive success, and if you’ve not heard of it yet, it’s because its area of application is specialized, and its goal scary: replacing C++! Yes, we finally have a language that not only is capable of doing this but is already doing it.
For people frustrated with C++’s over-burdened design and memory management challenges, Rust comes as a breath of fresh air.
Así es como se ve un programa de Rust:

Concise and elegant, in my opinion. Rust follows the functional programming approach, which makes your code more composable, and there are no object-oriented hierarchies to wrestle with.
Entonces, ¿qué le da a Rust el coraje de ir tras C ++? Es el nuevo modelo de memoria. En lugar de confiar en el antiguo baile nuevo () / delete (), Rust introduce la idea de propiedad.
Rather than allocating and accessing memory directly, Rust variables “borrow” from each other, with strict restrictions placed by the compiler. The overall concept is too complicated to explain in a few words, so feel free to check out the documentos oficiales para obtener más información.
El punto es que esto da como resultado una seguridad de memoria del 100% sin la necesidad de un recolector de basura, lo cual es un gran problema.
Rust has taken the system programming world by storm. It’s already supported on some platforms, powers browsers and rendering engines are quickly replacing C/C++ code on production systems, and is being used to write operating systems.
Sure, it’s not everyone’s cup of tea to create another browser or device driver, but Rust is already spreading itself to other domains. We already have several fully functional, ridiculously fast Web frameworks in Rust, and more and more application libraries are being developed.
Honestamente, si está interesado en un futuro emocionante, Rust es el lenguaje perfecto y ahora es un momento perfecto. Rust es un avión que ha despegado, ¡pero todavía hay tiempo para subir a bordo mientras se dirige hacia las estrellas!
Aprender Óxido de Dmitri Nesteruk.
Elixir
Entre los lenguajes que se centran en la felicidad del desarrollador, el primer lugar se ha reservado permanentemente para Ruby. Es un lenguaje que se lee como poesía y tiene suficientes atajos para reducir la fricción mental por orden de magnitud.
No wonder, then, that the Rails framework continues to dominate desarrollo de pila completa for serious developers and startups. But not everyone was happy with Rails, especially one of its core developers – José Valim. I think the creator himself best explains the genesis of this language in an entrevista:
It is a long story, but I will try to make it short and sweet. Back in 2010, I was working on improving Rails performance when working with multi-core systems, as our machines and production systems are shipping with more and more cores. However, the whole experience was quite frustrating as Ruby does not provide the proper tool for solving concurrency problems. That’s when I started to look at other technologies and I eventually fell in love with the Erlang Virtual Machine.
I started using Erlang more and more and, with experience, I noticed that I was missing some constructs available in many other languages, including functional ones. That’s when I decided to create Elixir, as an attempt to bring different constructs and excellent tooling on top of the Erlang VM.
Y he aquí Elixir ¡nació!
Al igual que Scala mejora el lenguaje Java pero apunta a la misma máquina virtual subyacente (la JVM), Elixir aprovecha la máquina virtual Erlang de décadas de antigüedad y probada en batalla.
Ahora, una discusión sobre Erlang está más allá del alcance de este artículo, pero lo mínimo que debe saber es que es el secreto mejor guardado de la industria de las telecomunicaciones: si nuestras redes telefónicas son mucho más confiables que nuestros sistemas basados en la Web, todo es gracias a Erlang.
En términos aún más simples, lo que significa es esto. Si está creando un sistema en tiempo real como el chat, Elixir requiere mucha menos memoria RAM y es más estable que Ruby (o PHP, Python y Java, para el caso).
A machine that runs Ruby and maxes out at 10,000 concurrent connections can easily handle 200,000 when using Elixir and still have enough RAM to run 2D games!

Sintaxis-wise, Elixir shamelessly copies Ruby, and its dominant Web framework, Phoenix, shamelessly copies Rails. I’d say that’s a good thing, too, because along with Laravel, Grails, Masonite, etc., we are reaching a point where all languages have Rails-like frameworks which can ease the transition. Some might scoff at the “lack of originality,” but at least I’m not complaining.
finalally, Elixir es una de esas tecnologías refrescantes, agradables y condenadamente prácticas. Varias tiendas Ruby (e incluso que no son Ruby) se están mudando a Elixir, y grandes empresas como Pinterest lo están utilizando en producción con resultados extremadamente satisfactorios.
Many people think that Node.js was a makeshift attempt at concurrency and would soon be replaced by Elixir. I have to say I agree with them. 🙂
Kotlin
In 2017 I/O, Google unleashed a bomb upon the unsuspecting crowd. The company formally anunció Kotlin as the primary language for Android development, sending shock waves a través de la industria.
Now, that Google has been actively looking to replace Java comes as no surprise después de ser bitten by an Oracle lawsuit; however, the adoption of Kotlin was somewhat unexpected, and there’s still a good chance Google will come out with its virtual machine soon. For the time being, though, Kotlin is enjoying a surge.
Kotlin fue desarrollado por JetBrains, una empresa mejor conocida por su conjunto de editores de código increíblemente buenos. Uno de ellos, IntelliJ IDEA, constituye la base de Android Studio. Los objetivos de diseño de Kotlin son la seguridad, la concisión y el 100 % de interoperabilidad con Java.
More than anything else, the Kotlin compiler works extra hard to eliminate any null-pointer exceptions that are so common in the Java world. It also takes down the proverbial Java verbosity quite a bit, which will come as a relief to many.
Aquí hay una maravillosa comparación de código entre Java y Kotlin:

El código de Kotlin es significativamente más corto y tiene mucha menos sobrecarga cognitiva para atravesar.
Pero aclaremos una cosa: es muy poco probable que Kotlin reemplace a Java, aunque rápidamente se está convirtiendo en un favorito. Creo que dentro de diez años, los equipos pequeños y medianos no buscarán más allá de Kotlin, mientras que los grupos grandes continuarán usando Java simplemente por razones heredadas.
Dicho esto, Kotlin tiene un futuro extremadamente brillante ya que hace todo lo que hace Java, puede fusionarse con el código Java sin que nadie se dé cuenta, ¡y es mucho más agradable!
Mecanografiado
God knows I had to restrain myself for this spot! Everything inside me was screaming “Elm! Elm!”, but no matter how revPor muy revolucionarias que sean sus ideas o cuán divina sea su sintaxis, Elm aún no se ha visto como una alternativa convencional para el trabajo front-end. 🙁 De todos modos, pasemos a lo que is corriente principal: TypeScript.
JavaScript es como las bayas silvestres: feo y desagradable, pero tienes que soportarlo si deseas sobrevivir en la jungla del desarrollo front-end. Se hicieron muchos intentos de reemplazarlo (y muy probablemente, el nuevo WebtrackingAssembly estándar tendrá éxito), pero lo que realmente llamó la atención de todos fue el superconjunto desarrollado por Microsoft.
Hay excelentes posibilidades de que hayas oído hablar Mecanografiado: Angular fue el primer framework en adoptarlo desde la versión 2 en adelante, y la gente se apresuró a tomar nota. Esto se debe a que TypeScript agrega superpoderes fantásticos y muy necesarios al lenguaje de programación más famoso del mundo.
Yes, it’s finally possible to write native JavaScript code without suffering and cursing one’s birth!
Estas son las mejoras que TypeScript aporta a la mesa:
✓ Escritura fuerte: finalally, a string is not a number, and a number is not an object, which is not an empty array!
✓ Verificación de tipo en tiempo de compilación: Si su código se compila correctamente, está más o menos garantizado que estará libre de las fallas del tiempo de ejecución de JavaScript.
✓ Clases y módulos: Sí, las clases son estándar en ES6, pero también están incluidas en TypeScript, además de un sistema de módulos ordenado.
✓ Inferencia de tipo: Para los tipos complejos, el compilador puede determinar fácilmente el tipo, lo que le ahorra algunos dolores de cabeza.
✓ Unsync/await: La Async/await keywords and patterns are fundamental, so no more messing around with Promises and Callbacks!
Espacios de nombres, genéricos, tuplas. . . Podría seguir y seguir, pero debería ser suficiente decir que TypeScript convierte una de las peores experiencias de desarrollo en una de las mejores.

No se puede negar el impacto de TypeScript. Impulsó intentos similares como el Dart de Google fuera del campo (aunque está intentando regresar a través de Flutter, un marco de desarrollo móvil) y abrió los ojos de los desarrolladores de JS a los beneficios de tipos más fuertes.
Como resultado, bibliotecas importantes como React, D3, Vue (¡incluso jQuery!) ahora tienen una versión de TypeScript, y en las mejores tiendas de software del mundo, todos El código JavaScript se está escribiendo como TypeScript code. TypeScript headers are now available for Node.js as well (honestly, if a node can improve its concurrency story and patch its lousy memory management, it will last forever)
You might be surprised to know that the creator of Node.js, after publicly arrepentido su creation, está trabajando en un nuevo tiempo de ejecución (no hay un sitio web oficial en este momento; solo el repositorio de GitHub) que tiene TypeScript como su idioma principal.
¿La mejor noticia? TypeScript es un pequeño idioma para aprender with considerable benefits in the future. If you’re an intermediate JavaScript developer, you’ll pick up enough TypeScript within two days to port over all your existing code!
olmo
olmo is as quick as its name can be pronounced and is used for front-end applications, graphics, and games. It is a functional programming language created by Evan Czaplicki in 2012.
Elm is said to have no runtime exceptions – that’s where it shines. As a statically typed language, the compiler validates all the errors at compile-time (wow!) with friendly messages (the messages are full texts and not weirdly thrown codes).
¡Qué suspiro de alivio para los desarrolladores (depuradores)! Podrás aprender a codificar en Elm a medida que sigas recibiendo más errores: ¡el compilador te dice qué está mal y sugiere lo que debes hacer para corregirlo!
Elm se jacta de ser más rápido que Reaccionar y más fuertemente tipado que incluso TypeScript. El código de Elm está muy organizado y ordenado y te hará un mejor desarrollador.
Since Elm is module based, you can easily create remordimientosable components. Elm compiles to JavaScript that you can run on the browser. So, all you need for Elm to work is node and npm, and you can simply get Elm by using the command:
npm install -g elm@<version>
Puedes poner la versión que quieras instalar, por ejemplo, 0.19.1.
You can then check if Elm is adequately installed by using the –version
dominio. Si aún no desea realizar toda la instalación y configuración, simplemente vaya a su página web oficial y usa el editor en línea para jugar.
So, let’s play around a little bit, ¡entonces!
Si no está utilizando el compilador en línea, tendrá que instalar todas las dependencias para el programa que escribiremos ahora (aunque es bastante fácil).
Let’s ask a user to type his name inside a text box and print the same on the page with a hello.
import Browser
import Html exposing (Html, Attribute, div, input, text)
import Html.Attributes exposing (..)
import Html.Events exposing (onInput)
-- MAIN
main =
Browser.sandbox { init = init, update = update, view = view }
-- MODEL
type alias Model =
{ content : String
}
init : Model
init =
{ content = "" }
-- UPDATE
type Msg
= Change String
update : Msg -> Model -> Model
update msg model =
case msg of
Change newContent ->
{ model | content = String.append "Hello..." newContent }
-- VIEW
view : Model -> Html Msg
view model =
div []
[ input [ placeholder "Type your name", onInput Change ] []
, div [] [ text (model.content) ]
]
Aquí está la pantalla inicial cuando construyes el programa:

Escriba un nombre y esto es lo que obtendrá en la pantalla:

Although this program might seem overkill for its purpose, as the program complexity increases, you will appreciate how easy it becomes to debug and maintain.
You can see a clear separation between the model, view, and controller (update). Similar to how we use HTML tags, we can create forms in Elm using the model div tags.
En el evento 'al ingresar' (es decir, el usuario ingresa un texto), el programa llama a 'Cambiar', y el programa imprime el nombre de usuario junto con 'Hola' usando la función String.append.
Poni
Poni is compiled and follows an actor model of computation designed for asynchronous behavior – i.e., highly concurrent applications.
Traditional programming languages provide a ‘lock’ feature to handle concurrency, which impacts performance. Pony doesn’t have a lock, thereby avoiding any blocking operations or deadlock scenarios. Each actor is single-threaded.
Pony también proporciona seguridad basada en capacidades, donde los usuarios deben usar una "capacidad de referencia" para acceder a un objeto en particular, lo que garantiza un manejo seguro de los datos. Por ejemplo, las capacidades describen qué otros alias se niegan en lugar de qué se permiten.
Notions like mutability and isolation are based on these capabilities. This ‘deny’ capability feature makes Pony free from the data race.
Pony is safe, fast, and accurate and saves development time, making it a good choice for banking and finance applications.
Pony ensures type safety for data handling. It doesn’t have any exceptions – only errors need to be handled to compile the code. The main reason for this is that Pony is statically typed. You need to explicitly specify the type (like Java, and unlike Python) of a variable before using it
let name: String
Similar to Java, you can create constructors. Suppose you have an employee class with name and age:
class Employee
let name: String
let age: U64
new create(name': String) =>
name = name'
Java developers might note that there are subtle differences in the syntax (no curly braces, wow!). There is also a ‘’’ at the end of the class attributes. You can also create funciones:
fun get_emp_name(): String => name
Alcance para escribir funciones, ¿eh?
Ahora, la parte principal – de actores y promesas.
Pony actors have Behaviours – similar to functions – but only asynchronous – they are executed at some time in the near future but not necessarily immediately when called. But they ‘promise’ that the behaviours will be executed for sure.
actor Employee
// actor has fields, similar to class
let name: String
// and of course, constructor
new create(name': String) =>
name = name'
// Note the behaviour 'be' instead of the fun function
be get_emp_name(promise: Promise[String]) => promise(name)
Well, promises can be rejected, too – if the actor cannot fulfill the asynchronous request being sent. You can create a promise:
// Create a new promise
let promise = Promise[String]
E invocar el comportamiento del actor pasando la promesa a cumplir (en nuestro caso, obteniendo el nombre del empleado).
employee.emp_get_name(promise)
¿Crees que este código compilará?
Otra gran característica de Pony es que es seguro para la memoria, sin NULL ni desbordamientos de búfer. Cualquier código que pueda devolver un valor nulo nunca se compilará a menos que se corrija.
Bueno, todavía no le hemos dicho al programa qué es 'empleado' (nuestro actor):
let employee = Employee(“J K Rowling”)
Unlike any other programming language, Pony allows division by zero, y el resultado es zero. Existen mathematical proofs para todas las funciones de Pony.
Para escribir programas Pony, necesitas instalar el compilador Pony. Dado que Pony es un lenguaje compilado, debe compilar el programa usando 'ponyc' antes de ejecutarlo.
Una vez que instale el compilador, pruebe el hola programa mundial.
Vyper
Vyper is a smart contract programming language based on Python. Like Python, it is human-readable, easy to code, and secure. Vyper compiles down to the Ethereum Virtual Machine (EVM) bytecode. EVM identifies the state of Ethereum para cada bloque en la cadena de bloques.
Para comprender por qué Vyper es especial, comprendamos los contratos inteligentes.
Los contratos inteligentes son programas almacenados en una cadena de bloques que definen y ejecutan un acuerdo entre el vendedor y el comprador cuando se cumplen los requisitos del contrato.
Estos son procesos self-executing automated contracts that do not need human intervention. However, smart contracts are prone to vulnerabilities.
For example, smart contracts might be made to release ether to arbitrary addresses or killed by arbitrary addresses, or they may not be able to release ether. These vulnerabilities are usually introduced via the code – unintentionally o intenciónally.
Vyper eliminates this issue by providing secure code, making it difficult to introduce vulnerable or misleading code. Although Vyper is based on Python, it doesn’t follow many programación orientada a objetos paradigmas, como herencia, sobrecarga, recursividad, etc. Esto evita la complejidad del código (tener múltiples archivos, lo que dificulta la auditoría).
Vyper also doesn’t support inline assembly, which means programs cannot perform any actions directly on the EVM, thus avoiding attacks.
Estas características hacen que Vyper sea bastante seguro para escribir código para contratos inteligentes utilizados en cadenas de bloques.
Para practicar la escritura de programas en Vyper, puede utilizar el remezclarncompilador de línea.
También puede instalar Vyper usando docker o pip (si tiene Python) siguiendo las instrucciones en el Página de documentación de Vyper.
R
R es uno de los lenguajes de programación más populares para el análisis de datos y máquina de aprendizaje. It has APIs for all the complex mathematics, statistics and scientific calculations, machine learning algorithms, and visual representations.
R is open source and widely popular for its rich graphical user interface. It has a vibrant and stable community and can easily integrate with other languages like C, C++, etc.
Obtenemos todas las funciones anteriores a través de CRAN (Comprehensive R Archive Network), que contiene más de 10000 paquetes para estadística, probabilidad, análisis de datos, informática, gráficos y muchos más.
Para ver la magia de R, probemos un programa simple para encontrar el promedio (media) de 11 números. Para encontrar la media, tomamos la suma de los números y la dividimos por el número total de valores (11 en nuestro caso). R tiene una función llamada 'media' que hace todos estos cálculos por nosotros.
mynums <- c(51, 52, 53, 94, 88, 61, 31, 34, 76, 20, 10)
mean(mynums)
El resultado es:
[1] 51.81818
Podemos graficarlos usando el método plot:
boxplot(mynums)
Hay muchos paquetes avanzados, como ggplot2, dplyr y muchos más, para mostrar gráficos enriquecidos en R.
También podemos ver un histograma rápido con los valores anteriores para ver el rango donde encajan los valores.
hist(mynums, breaks = 10, col = "sky blue", main = "Histogram of marks", xlab = "Height Bin")
Tenga en cuenta que le hemos dado un descanso de 10; podemos cambiar esto a cualquier número dependiendo de las divisiones que queramos.
The above variable, mynum was a vector that contained a list of numbers. Similar to Python, we create a data frame in R to work with more dimensions.
This is most useful for analytics. For example, we can combine multiple vectors, create a data frame, and manipulate the same depending on the number of variables and the type of analysis we need.
Let us say we have employee name, skill, and age vectors. We can create a dataframe and display the data together:
employees = data.frame(Name = c("John","Mac","April","Ron","Matt"),
Age = c(23,28,30,43,31), Skill = c("Java", "Python", "C++", "R", "PHP"))
print(employees)
> print(employees)
Name Age Skill
1 John 23 Java
2 Mac 28 Python
3 April 30 C++
4 Ron 43 R
5 Matt 31 PHP
Another interesting feature of R is the ease of matrix manipulation using arrays. R will blow you away by performing complex matrix calculations with a breeze. All you have to do is create the matrix and give it to the programa R.
M1 <- matrix(c(1, 2, 1, 2), ncol=2)
M2 <- matrix(c(3, 4, 3, 4), ncol=2)
print(M1*M2)
>print(M1*M2)
[,1] [,2]
[1,] 3 3
[2,] 8 8
Apache Groovy
Después de una cuidadosa consideración y evaluación, he incluido Maravilloso en mi lista de los mejores lenguajes de programación. Este lenguaje es como la mantequilla en la parte superior de un delicioso pastel, brindando sabor y realce adicionales a cualquier proyecto.
One of the main reasons Groovy deserves a spot on the list is its wide range of features, which have contributed to its growing popularity in the tech world. As an agile and dynamic language for the Java Virtual Machine (JVM), it enables modern programming features for Java developers with a minimal learning curve.

Vale la pena señalar que la JVM es una abreviación para máquina virtual de Java. JVM es una parte integral de Java y proporciona una plataforma para ejecutar código de bytes de Java en cualquier dispositivo. Groovy, construido sobre JVM, ofrece una amplia gama de características que mejoran su rendimiento y lo convierten en un attractCinco opciones para los desarrolladores.
In simple terms, it provides a platform for running Java bytecode, making it possible to use Java on any device. From a performance perspective, Groovy can statically type-check and compile your code for improved robustness and performance.
Groovy’s seamless integration with existing Java classes and libraries sets it apart from other programming languages. It can also compile straight to Java bytecode, making it easy to use anywhere you can use Java. This feature adds to the flexibility and versatility of Groovy and makes it a top choice for developers looking to create efficient and reliable software.
La naturaleza dinámica de Groovy puede hacer que la verificación de tipos sea problemática y que la depuración del código sea más desafiante, lo cual es una desventaja potencial. Sin embargo, muchos programadores creen que la flexibilidad y la simplicidad de Groovy superan cualquier desventaja potencial.
As a developer, it’s essential to recognize the unique value that Groovy brings to the table. To illustrate this point, I would like to share an example that showcases how Groovy’s powerful features can enhance your code.
def greeting = "Hello, World!"
println greeting
// Define a list of numbers
def numbers = [1, 2, 3, 4, 5]
// Use a closure to map the list to its squares
def squares = numbers.collect { it * it }
println squares
In this example, we illustrate the versatility and expressiveness of the Groovy language by defining a string variable and printing it to the console using the println function.
Adiciónally, we showcase how Groovy simplifies complex operations, such as transforming a list of numbers using a closure to create a new list containing the squares of each number. This demonstrates how Groovy can enhance your productivity as a developer by providing concise, readable syntax for everyday programming tasks.
Por lo tanto, es evidente por qué Groovy merece la atención de todos los desarrolladores.
Cristal
Después de una extensa investigación, no pudimos evitar agregar Cristal a nuestra lista. ¡Y no, no estamos hablando de minerales! Crystal es un lenguaje de programación orientado a objetos de propósito general lanzado en 2014. Fue diseñado para tener una sintaxis muy parecida a Ruby y, al mismo tiempo, ser rápido y eficiente. Con su sistema de tipo estático y compilación anticipada, Crystal ofrece a los desarrolladores la velocidad de C y la simplicidad de Ruby.
Crystal es un lenguaje de programación relativamente nuevo que está ganando popularidad entre los desarrolladores debido a su impresionante velocidad y facilidad de uso. A menudo se describe como "Rápido como C, ingenioso como Ruby", destacando su capacidad para proporcionar un rendimiento ultrarrápido mientras mantiene la sintaxis y la legibilidad fáciles de usar de Ruby.

Sin embargo, Crystal logra su impresionante velocidad sacrificando algunos de los aspectos dinámicos de Ruby y restringiendo ciertas construcciones de programación. Sin embargo, esta compensación ha convertido a Crystal en una attractTengo una opción única para crear aplicaciones de alto rendimiento en un lenguaje más fácil de usar para los desarrolladores.
# Define a class for a person with name and age attributes
class Person
getter name : String
getter age : Int32
def initialize(@name : String, @age : Int32)
end
end
# Create an array of Person objects
people = [Person.new("Alice", 25), Person.new("Bob", 30), Person.new("Charlie", 35)]
# Use a block to filter the array by age and map the names to uppercase
names = people.select { |person| person.age >= 30 }.map { |person| person.name.upcase }
# Print the resulting array of uppercase names
puts names.inspect
Este código demuestraates Crystal’s benefits in syntax, performance, and type safety. Crystal’s syntax is similar to Ruby’s, making it easy to read and write. However, Crystal compiles to native code, resulting in faster execution than interpreted languages like Ruby.
Adiciónally, Crystal is statically typed, which provides type safety at compile-time and improves performance. In this example, the code uses a block to filter an array of Person objects by age and map the names to uppercase, demonstrating the flexibility and expressiveness of Crystal’s syntax.
Razón
Razón es un lenguaje de programación contemporáneo con una sintaxis similar a JavaScript u otros lenguajes de la familia C con el robusto sistema de tipos de OCaml. Debido a sus sólidas capacidades de verificación de tipos, los desarrolladores pueden encontrar problemas antes y escribir un código más sólido y confiable.
La interfaz fácil de usar y el diseño sencillo de Reason lo convierten en una opción fantástica para varios trabajos de programación, independientemente de su nivel de experiencia en programación.

Reason and OCaml are highly versatile programming languages that can be used across various environments thanks to numerous projects that support them. One way to use them is to build native executables that can run directly on your machine using the standard compiler. In addition, several tools like “dune” and “esy” that aid in this process.
Another option is compiling Reason to JavaScript code compatible with browsers, which can be achieved through projects like ReScript (formerly BuckleScript) and Js_of_ocaml. These versatile options make Reason and OCaml appealing to developers across various industries.
Reason es un lenguaje de programación contemporáneo con una interfaz fácil de usar y una sintaxis similar a JavaScript. Su versatilidad y diseño sencillo lo convierten en una opción popular para los desarrolladores en diversas industrias.
Conclusión y descargo de responsabilidad
Bueno, todos tenemos diferentes favoritos, pero vale la pena probar los idiomas anteriores, ya que vienen con todas las características nuevas y resuelven muchos de los problemas que dejaron los idiomas anteriores.
Elm is great for neater code separation and modular programming. Pony is one of the best for asynchronous programming.
Si bien Vyper es bastante nuevo en el mundo del lenguaje de contratos inteligentes, ofrece una alternativa prometedora a Solidity. Vyper obtiene una buena puntuación en particular en lo que respecta a la definición de contratos y el manejo de errores. R, por otro lado, se considera uno de los mejores lenguajes para análisis y ya cuenta con una gran comunidad.
Los idiomas específicos están ganando tanta popularidad como los de este artículo, pero no se han incluido en la lista por varias razones. Aquí hay un vistazo rápido:
- Golang: ya establecido como un idioma convencional, aunque no muy popular. Creo que en este punto, Golang tiene varios competidores que mantendrán baja su participación de mercado.
- Swift: Apple tiene un control férreo sobre su ecosistema, y Swift es el único idioma disponible allí. Anteriormente, el Objective C estaba de moda, como ahora lo está Swift. Lo considero una trampa y me niego a incluirlo aquí. 😀
El futuro siempre es incierto, y una forma de seguir con su carrera es atenerse a lo que ya está funcionando y negarse a “distraerse”. Si lo hace, Java, PHP, Python, Ruby, etc., son todos lenguajes excelentes para seguir. Sin embargo, para algunos de nosotros, la norma no es suficiente. Quieren salir a explorar y apostar a lo grande en el futuro. Si cae en el último campo, uno de estos cinco idiomas debería estar en la parte superior de su lista de tareas pendientes.
finalally, when trying to assess a language, don’t let the effort overwhelm you because it’s not that much. If you already know a few programming languages, you can learn any of these within two months max, spending 5-6 hours a week. Whereas the happiness and monetary returns that can be generated in the future will be several times more.
A continuación, puede consultar lenguajes de programación para usar en ciencia de datos.