Lenguajes que podrían reinventar el futuro del desarrollo de software

Lenguajes que podrían reinventar el futuro del desarrollo de software

Dart, Go, F# o Ceylon pueden dominar el futuro de la programación. Detrás de ellos se encuentran empresas tan influyentes como Google, Microsoft o Red Hat.
BBVAOpen4U
|
21 Abr. 2015

El desarrollo de software es uno de los principales impulsores de la innovación en el mundo. Eso lo saben bien sus profesionales, que tienen que estar en un continuo proceso de búsqueda y aprendizaje de nuevos lenguajes de programación. Dart, Go, F# o Ceylon pueden dominar el futuro de la programación. Detrás de ellos se encuentran empresas tan influyentes como Google, Microsoft o Red Hat. Este es un pequeño tutorial de introducción a estas nuevas sintaxis de la industria.

Dart

Lars Bak y Karper Lund, creadores del motor V8 de JavaScript para el navegador Google Chrome, son los dos principales responsables de la creación de este lenguaje de programación. Dart es un lenguaje de código abierto, estructurado y flexible orientado a objetos, fácil de aprender y adaptado a todos los navegadores web. El código de Dart se puede compilar en JavaScript para su ejecución en cualquier navegador. Además, permite a los desarrolladores de software la creación de aplicaciones web más complejas y con un rendimiento mucho más elevado.

 

Dart es una opción muy interesante para el desarrollo de aplicaciones en la nube por una razón, permite un único lenguaje para el cliente, para el servidor y todo a través de la plataforma en la nube de Google (Google Cloud Platform).

Para expertos en Dart como Moisés Belchín, autor de Web Programming with Dart y Aprende Dart junto a Patricia Juberías y del blog en castellano blogdart.es, este lenguaje de programación tiene algunos extras muy interesantes:

  • dartfmt, herramienta para formatear código;

  • dartanalyzer, detector de errores de código en tiempo real; y

  • docgen, generador de toda la documentación de tus proyectos.

Ejemplos en Dart de cómo insertar elementos dentro del DOM (Modelo de Objetos del Documento, la interfaz de programación de aplicaciones que sirve para acceder y modificar el contenido de documentos con lenguajes como JavaScript o Dart).

<code>

LIElement nuevoLi = new LIElement(); nuevoLi.text = 'Texto cualquiera en el nuevo LI'; querySelector('#lista').children.add(nuevoLi);

</code>

Por ejemplo, en HTML algunas etiquetas habituales en el DOM son <input>, <ul> y <li>, mientras que en Dart esas etiquetas pasan a ser InputElement, UListElement y LIElement.

 

Go

Go es un lenguaje lanzado en 2009, que se compila de una forma rápida y eficiente, inspirado en la sintaxis de C, con recolector de basura y un excelente biblioteca estándar.  Detrás de Go también se encuentra Google. Sus primeros diseñadores fueron Robert Griesemer, Rob Pike y Ken Thompson, que comenzaron sus trabajos de desarrollo dos años antes de su lanzamiento, en 2007.

Al ser un lenguaje inspirado en la sintaxis de C, puede ser una arquitectura ideal para aquellos desarrolladores que conozcan ese lenguaje de programación. Con la ventaja de que lenguajes como C, C++ o Java son más pesados y voluminosos, mientras que Go es todo lo contrario.

A la hora de programar se puede evitar la declaración explícita de variables. Para declarar una variable, se usa la palabra “var”, seguida del nombre de la variable y de su tipo (en el ejemplo de abajo se usa “int” para indicar que es número entero).

<code>

package main

import "fmt"

func plus(a int, b int) int {

   return a + b

}

func plusPlus(a, b, c int) int {

   return a + b + c

}

func main() {

   res := plus(1, 2)

   fmt.Println("1+2 =", res)

   res = plusPlus(1, 2, 3)

   fmt.Println("1+2+3 =", res)

}

$ go run functions.go

1+2 = 3

1+2+3 = 6

</code>

Go también dispone de las facilidades de los lenguajes que admiten la tipificación dinámica de datos (Duck Typing), característica de otros lenguajes más utilizados como Python, Ruby o JavaScript. Además, Go no es un lenguaje orientado a objetos, no hay clases, ni objetos ni herencia. En su lugar vamos a declarar un tipo de estructura llamada Fund, con una función para crear nuevas estructuras de fondo.

 

F# (F Sharp)

F# es un lenguaje de programación multiparadigma de código abierto, orientado a objetos y admite funciones para la plataforma .NET. Además, está incluido en el paquete de Visual Studio desde 2010. Este programa fue desarrollado en un principio por Don Syme, ingeniero de Microsoft Research, y actualmente se encuentra bajo el paraguas de la Microsoft’s Developers Division. Aquellos desarrolladores que quieran iniciarse en la programación de F# pueden leer Expert F# (Expert’s Voice in .NET), escrito por Don Syme, Adam Granicz y Antonio Cisternino.

Además, aquí dispones de un tutorial online para empezar a aprender. F# puede usarse en disciplinas que en estos momentos tienen un enorme tirón dentro de la industria asociada a los Big Data o el desarrollo del software:

  • Ciencia de datos (se puede aprender a usar F# para trabajar con números, cálculos estadísticos y machine learning).

  • Visualización de datos (crear gráficos y filtrar datos de forma eficaz).

  • FinTech (cálculos de volatilidad, simulación de precios de activos, cálculos numéricos…).

Dos ejemplos:

- Programación en F# de un conversor de monedas:

<code>

/// Conversion rate representing 1 EUR in GBP

let rateEurGbp = 0.783M

/// Converts amount in EUR to GBP

let euroToPounds eur = eur * rateEurGbp

// Convert EUR 1000 to GBP

let gbp = euroToPounds 1000.0M</code>

 

- Programación en F# de un conversor dólar-yenes japoneses:

<code>let convertCurrency rate value : decimal  = rate * value

let rateUsdJpy = 79.428M

// Convert USD 1000 to JPY

convertCurrency rateUsdJpy 1000M

</code>

 

Ceylon

Ceylon es un lenguaje de programación orientado a objetos, desarrollado por Red Hat, compañía responsable de la creación del sistema operativo de código abierto GNU/Linux. Este lenguaje, también de código abierto, tiene una sintaxis parecida a Java. En cierta forma es una actualización de Java por parte de la comunidad de desarrolladores de open source.

Por tanto, cualquier desarrollador que sepa Java o C# podría aprender Ceylon sin problemas. Lo bueno es que cualquier proyecto hecho en Ceylon está disponible para todos en GitHub, la plataforma colaborativa de desarrollo de software. Y eso da una fuente de conocimiento y de aprendizaje muy alta para los noveles.

Aunque la sintaxis de Ceylon se parece a la de Java, hay que decir que la del primero es mucho más legible, más regular y que se apoya en estructuras de árbol. Es una sintaxis que persigue una programación de proyectos de desarrollo más funcional que la de Java porque elimina y simplifica elementos de ese lenguaje.

En este ejemplo tenemos la programación de una clase simple en Ceylon:

<code>

"A polar coordinate"

class Polar(Float angle, Float radius) {

 

   shared Polar rotate(Float rotation)

           => Polar(angle+rotation, radius);

 

   shared Polar dilate(Float dilation)

           => Polar(angle, radius*dilation);

 

   shared String description

           = "(``radius``,``angle``)";

}

</code>