5 nuevos lenguajes de programación que debes saber

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??


¿Ya no tenemos suficiente??

¿No son las herramientas existentes para hacer el trabajo??

Y luego están esos buscadores incansables que aprovechan la oportunidad de probar cosas nuevas y toparse con gemas. Para ellos, el aprendizaje es un fin en sí mismo, y no necesitan mucha convicción para quemar sus fines de semana construyendo un juego de cartas basado en la consola en ese oscuro y nuevo lenguaje..

No importa a qué campamento pertenezca, hay algo más allá del debate: todos queremos pasar tiempo en algo que tenga un futuro brillante.

Para las personas en el campamento heredado, su idioma existente favorito ya tiene un gran impulso y continuará teniendo un futuro brillante. Para ellos, debo recordar que su cadena de herramientas de desarrollo preferida ahora madura fue una vez “ayuda de kool” 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.

Si algo hace esto lo suficientemente radical, es probable que continúe arrebatando la mentalidad y llegue a la cima. Cuando eso suceda, no querrás quedarte atrás. ��

Y para aquellos 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, Brainfuck es un pequeño lenguaje increíblemente retorcido, parecido a un rompecabezas, divertido, pero es poco probable que se beneficie si lo persigue en serio. Quieres algo nuevo, sensible y con una base sólida.

Cómo se seleccionaron estos idiomas

La selección del idioma es un trabajo intimidante, especialmente cuando se están considerando nuevos idiomas para futuros beneficios en el empleo y la satisfacción. Todos los autores de idiomas están firmemente convencidos de que han creado el lenguaje perfecto posible y han resuelto todos los problemas que hay que responder. ¿Cómo, entonces, cortas??

Para esta publicación, me concentré en algunos parámetros para mantener mi búsqueda dentro de límites razonables.

Fecha de lanzamiento

Evité específicamente los idiomas que son muy, muy nuevos..

Nuevo, me refiero a idiomas de menos de 5 a 6 años en el momento de la escritura, y especialmente aquellos que no han alcanzado la estabilidad (versión 1.0, claro). Esto, desafortunadamente, descarta algunas gemas reales como Cristal, Pero espero volver a esto y escribir sobre su éxito algún día. ��

Un fragmento de código en Crystal (“Rápido como C, Pulido como Rubí”)

Para mí, 5-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 comunitario

Este es obvio, pero a menudo se ignora cuando nos entusiasmamos con algo nuevo. Ahora, para muchas personas, el respaldo de una gran empresa es un precedente suficiente para el éxito, pero no siempre es cierto.

Sí, el Objective-C de Apple y ahora Swift prosperaron porque estas eran las únicas opciones en un ecosistema altamente controlado, pero el de Facebook re y Cortar a tajos (una versión fea de un lenguaje ya feo, en mi opinión) sigue siendo poco más que experimentos.

La combinación ideal sería un lenguaje respaldado por una compañía grande y estable y que explotara en popularidad (como React).

Pero el meollo del asunto sigue siendo la comunidad. Si un idioma no está creando un zumbido, y no hay suficientes desarrolladores para educar y popularizar, no va a salir de su tumba de GitHub.

Para mí, esto descarta lenguajes maduros y fascinantes como Raqueta y Erlang, ya que se han mantenido planos en la curva de crecimiento.

USP enfocado y bien definido

La tercera cosa que busco es un objetivo claro para el idioma. Por ejemplo, una mejor versión de PHP que corrige problemas de nomenclatura y compila a PHP nativo no funciona para mí.

Los beneficios son demasiado pequeños como para justificar las grietas que ocurrirán si todos intentan avanzar. Con este criterio, no puedo evitar descartar intentos como CoffeeScript, y muchos otros lenguajes similares de compilación a JavaScript.

Honestamente, estoy obligado a descartar las mejoras solo de sintaxis de inmediato. La historia ha demostrado que la utilidad supera a la amabilidad cuando se trata de idiomas, por lo que si todos los nuevos idiomas se centran en una experiencia más agradable, me temo que no figurará en esta lista.

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 mantenibilidad del programador, por lo que es algo que seguramente aparecerá en mis cálculos aquí..

Junto con la sintaxis viene la idea de consistencia. 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 pena para todos nosotros. Entonces, sin más preámbulos, comencemos con nuestras cinco recomendaciones principales.

1. Julia

Para la gente del MIT, los idiomas disponibles para la ciencia de datos fueron un compromiso en el mejor de los casos. 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 fue lento para ellos (no las bibliotecas, ya que están escritas principalmente en C).

Pero tal vez el mayor desvío fue el modelo de concurrencia torpe y la falta de un modelo de computación paralela, el último de los cuales es un elemento básico en la supercomputación.

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 sobresale en computación numérica. Su sintaxis es excelente para las matemáticas, se admiten muchos tipos de datos numéricos y el paralelismo está disponible de forma inmediata. El envío múltiple de Julia es un ajuste natural para definir números y tipos de datos tipo matriz.

En cuanto a la sintaxis, Julia se puede ver como una combinación de Python y C. Sí, es probable que sea la primera vez que un lenguaje apunte a estas dos cualidades y tenga éxito.

Para simplificar las cosas, Julia no exige una escritura estricta y, sin embargo, es increíblemente rápida. Aquí hay algunos puntos de referencia:

Los puntos de referencia oficiales de Julia

Como puede ver, Julia es un poco peor que C, pero elimina a Java y Python del agua. ¿Y qué tipo de ojos dulces ofrece Julia??

Bueno, aquí está la implementación de una función para calcular la hipotenusa de un triángulo rectángulo:

Finalmente, mientras que la mayoría de los Julia ecosistema está fuertemente inclinado hacia el trabajo matemático, creo que tiene un futuro brillante de propósito general.

Es el primer idioma en mi conocimiento que tiene soporte de primera clase para la computación paralela, por lo que no será sorprendente ver que gana más popularidad en los dominios web e IoT..

2. óxido

Si ha probado las nuevas versiones del navegador Firefox, sabe que finalmente, después de años de trabajo, parece que podrían quitarle una parte del mercado de Chrome.

Si el navegador se siente ligero y ágil y se procesa rápidamente, todo es gracias al lenguaje desarrollado especialmente por Mozilla: Oxido.

Decir que Rust tiene un futuro brillante será una mentira; el lenguaje ya es un gran éxito, y si aún no has oído hablar de él, es porque su área de aplicación es especializada y su objetivo es aterrador: ¡reemplazar C ++! Sí, finalmente tenemos un lenguaje que no solo es capaz de hacer esto, sino que ya lo está haciendo..

Para las personas frustradas con el diseño sobrecargado de C ++ y los desafíos de administración de memoria, Rust viene como un soplo de aire fresco.

Así es como se ve un programa Rust:

Conciso y elegante, en mi opinión. Rust sigue el enfoque de programación funcional, lo que hace que su código sea más componible y no hay jerarquías orientadas a objetos con las que luchar.

Entonces, ¿qué le da a Rust el coraje para ir tras C ++? Es el nuevo modelo de memoria. En lugar de confiar en el viejo baile nuevo () / eliminar (), Rust presenta la idea de propiedad.

En lugar de asignar y acceder a la memoria directamente, las variables de Rust se “toman prestadas” unas de otras, con estrictas restricciones impuestas por el compilador. El concepto general es demasiado complicado para explicarlo en pocas palabras, así que no dude en consultar el documentos oficiales aprender más.

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 ha tomado el mundo de la programación del sistema por una tormenta. Ya es compatible con algunas plataformas, los navegadores de potencia y los motores de representación están reemplazando rápidamente el código C / C ++ en los sistemas de producción, y se está utilizando para escribir sistemas operativos.

Claro, no es del agrado de todos crear otro navegador o controlador de dispositivo, pero Rust ya se está extendiendo a otros dominios. Ya tenemos varios frameworks web completamente funcionales y ridículamente rápidos en Rust, y se están desarrollando más y más bibliotecas de aplicaciones.

Honestamente, si está interesado en un futuro emocionante, Rust es el idioma perfecto y ahora es el momento perfecto. Rust es un avión que despegó, pero todavía hay tiempo para subir a bordo mientras se dirige a las estrellas.!

Aprender Moho de Dmitri Nesteruk.

3. 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 es de extrañar, entonces, que el marco Rails continúe dominando el desarrollo completo de la pila para desarrolladores y startups serios. Pero no todos estaban contentos con Rails, especialmente uno de sus principales desarrolladores: José Valim. Creo que el creador mismo explica mejor la génesis de este lenguaje en un entrevista:

Es una larga historia, pero intentaré que sea corta y dulce. En 2010, estaba trabajando para mejorar el rendimiento de Rails cuando trabajaba con sistemas multinúcleo, ya que nuestras máquinas y sistemas de producción se envían con más y más núcleos. Sin embargo, toda la experiencia fue bastante frustrante ya que Ruby no proporciona la herramienta adecuada para resolver problemas de concurrencia. Fue entonces cuando comencé a mirar otras tecnologías y finalmente me enamoré de la máquina virtual Erlang.

Comencé a usar Erlang cada vez más y, con experiencia, noté que me faltaban algunas construcciones disponibles en muchos otros idiomas, incluidos los funcionales. Fue entonces cuando decidí crear Elixir, como un intento de traer diferentes construcciones y excelentes herramientas sobre la máquina virtual Erlang.

Y he aquí, Elixir nació!

Al igual que Scala mejora el lenguaje Java pero apunta a la misma máquina virtual debajo (JVM), Elixir también aprovecha la máquina virtual Erlang de décadas de duración 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 necesita mucha menos RAM y es más estable que Ruby (o PHP, Python y Java, para el caso).

Una máquina que ejecuta Ruby y alcanza un máximo de, por ejemplo, 10,000 conexiones simultáneas, puede manejar fácilmente 200,000 cuando usa Elixir y aún tiene suficiente RAM para ejecutar juegos 2D!

Fragmento de código de elixir

En cuanto a la sintaxis, Elixir copia descaradamente a Ruby, y su marco web dominante, Phoenix, copia descaradamente a Rails. Yo diría que eso también es bueno, porque junto con Laravel, Grails, Masonite, etc., estamos llegando a un punto en el que todos los idiomas tienen marcos similares a Rails que pueden facilitar la transición. Algunos podrían burlarse de la “falta de originalidad”, pero al menos no me quejo.

Finalmente, Elixir es una de esas tecnologías que son refrescantes, agradables y prácticas. Varias tiendas Ruby (e incluso no Ruby) se están mudando a Elixir, y grandes compañías como Pinterest lo están utilizando en producción con resultados extremadamente satisfactorios..

Mucha gente piensa que Node.js fue un intento improvisado de concurrencia y que pronto sería reemplazado por Elixir. Tengo que decir que estoy de acuerdo con ellos. ��

4. Kotlin

En 2017 I / O, Google desató una bomba contra la multitud desprevenida. La compañía anunció formalmente Kotlin como lenguaje principal para el desarrollo de Android, enviando ondas de choque a través de la industria.

Ahora, que Google ha estado buscando activamente reemplazar a Java no es una sorpresa después de ser mordido por una demanda de Oracle; sin embargo, la adopción de Kotlin fue algo inesperada, y todavía hay una buena posibilidad de que Google presente pronto su máquina virtual. Por el momento, sin embargo, Kotlin está disfrutando de una oleada.

Kotlin fue desarrollado por JetBrains, una compañía mejor conocida por su conjunto de editores de código increíblemente buenos. Uno de ellos, IntelliJ IDEA, forma la base de Android Studio. Los objetivos de diseño de Kotlin son seguridad, concisión y 100% de interoperabilidad con Java.

Más que cualquier otra cosa, el compilador de Kotlin trabaja muy duro para eliminar cualquier excepción de puntero nulo que es tan común en el mundo de Java. También elimina bastante la proverbial verbosidad de Java, lo que será un alivio para muchos.

Aquí hay una maravillosa comparación de código entre Java y Kotlin:

Crédito de imagen: hype.codes

El código de Kotlin es significativamente más corto y mucho menos sobrecarga cognitiva para abrirse paso.

Pero aclaremos una cosa: es muy poco probable que Kotlin reemplace a Java, aunque se está convirtiendo rápidamente en un favorito rápido. 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 lo note, y es mucho más agradable!

5. TypeScript

¡Dios sabe que tuve que contenerme para este lugar! Todo dentro de mí gritaba “¡Olmo! ¡Elm! ”, Pero no importa cuán revolucionarias sean sus ideas o cuán divina sea la sintaxis, Elm aún no se ha visto como una alternativa convencional para el trabajo front-end. �� De todos modos, pasemos a lo que es corriente: TypeScript.

JavaScript es como bayas silvestres: feo y desagradable, pero tienes que soportarlo si deseas sobrevivir a la jungla del desarrollo front-end. Se hicieron muchos intentos para reemplazarlo (y lo más probable es que el nuevo estándar WebAssembly tenga é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 de Mecanografiado: Angular fue el primer marco para adoptarlo desde la versión 2 en adelante, y la gente se apresuró a tomar nota. Esto se debe a que TypeScript agrega algunos superpoderes muy necesarios y fantásticos al lenguaje de programación más famoso del mundo.

Sí, finalmente es posible escribir código JavaScript nativo sin sufrir y maldecir el nacimiento!

Estas son las mejoras que TypeScript aporta a la tabla:

✓ Mecanografía fuerte: Finalmente, una cadena no es un número, y un número no es un objeto, que no es una matriz vacía!

✓ Verificación de tipo en tiempo de compilación: Si su código se compila correctamente, es más o menos seguro que estará libre de las verrugas del tiempo de ejecución de JavaScript.

✓ Clases y módulos: Sí, las clases son estándar en ES6, pero también se incluyen en TypeScript, además de un sistema de módulos ordenado.

✓ Inferencia de tipo: Para los tipos complejos, el compilador puede resolver fácilmente el tipo, lo que le ahorrará un poco de dolor de cabeza.

✓ Asíncrono / espera: Las palabras clave y patrones asíncronos / en espera son fundamentales, por lo que no hay que perder el tiempo con Promesas y devoluciones de llamada!

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.

Fragmento de código de TypeScript

El impacto de TypeScript no se puede negar. Impulsó intentos similares como el Dart de Google fuera del campo (aunque está intentando un regreso a través de Flutter, un marco de desarrollo móvil), y abrió los ojos de los desarrolladores de JS a los beneficios de los tipos más fuertes.

Como resultado, las bibliotecas importantes como React, D3, Vue (¡incluso jQuery!) Ahora tienen una versión TypeScript, y en las mejores tiendas de software de todo el mundo, todo el código JavaScript se escribe como código TypeScript. Los encabezados TypeScript ahora también están disponibles para Node.js (honestamente, si un nodo puede mejorar su historia de concurrencia y parchear su pésima gestión de memoria, durará para siempre).

Te sorprendería saber que el creador de Node.js, después de públicamente lamentando su creación, 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 idioma principal.

Las mejores noticias TypeScript es un pequeño idioma para aprender con considerables beneficios en el futuro. Si eres un desarrollador intermedio de JavaScript, recogerás suficiente TypeScript en dos días para transferir todo tu código existente!

Conclusión y descargo de responsabilidad

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 lenguaje principal, si no muy popular. Creo que en este momento Golang tiene varios competidores que mantendrán su cuota de mercado baja.
  • R: R ya está de moda entre los científicos de datos, y es poco probable que atraiga mucho a los desarrolladores de aplicaciones. Además, no debemos olvidar que las bibliotecas de aprendizaje automático están llegando lentamente a todos los idiomas principales (¡por el amor de Dios, incluso PHP las tiene ahora!), Por lo que todo lo que debe hacer es esperar un tiempo. ��
  • Swift: Apple tiene un control férreo sobre su ecosistema, y ​​Swift es el único idioma disponible allí. Sin duda, el objetivo C anterior era furor, como lo es Swift ahora. Considero que es una trampa y por eso me niego a incluirlo aquí. ��

El futuro siempre es incierto, y una forma de avanzar en su carrera es apegarse a lo que ya está funcionando y negarse a “distraerse”. Si haces eso, Java, PHP, Python, Ruby, etc., son excelentes lenguajes para seguir. Sin embargo, para algunos de nosotros, la norma no es suficiente. Quieren salir y explorar y apostar fuerte en el futuro. Si caes en el último campamento, uno de estos cinco idiomas debería estar en la parte superior de tu lista de tareas.

Finalmente, cuando intentes evaluar un idioma, no dejes que el esfuerzo incluido te abrume, porque no es tanto. Si ya conoce un par de lenguajes de programación, puede aprender cualquiera de estos dentro de un máximo de dos meses, pasando de 5 a 6 horas a la semana. Mientras que la felicidad y los rendimientos monetarios que se pueden generar en el futuro serán varias veces más.

¿Eché de menos algún lenguaje crítico aquí? ¿O tal vez tengo algo mal sobre los idiomas que se enumeran aquí? Si es así, por favor, deje un comentario y ayúdeme a mejorar. ��

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map