La influencia de Ruby

Es curioso que Ruby sea uno de los lenguajes de programación de los que uno oye más hablar y sin embargo es de los que luego no se encuentra demasiadas empresas que se dediquen a trabajar con él, por lo menos en el ámbito cercano que me rodea. Para mí la comunidad de Ruby siempre ha sido una comunidad rica en lo más importante, "las ideas". El frawework de desarrollo Rails ha generado fuertes influencias en otras comunidades, las cuales han copiado sus ideas de una forma clara.

La programación con Ruby es muy sencilla a la vez que bastante innovadora. Ruby esta fuertemente orientado a reducir el código a la minima expresión posible manteniendo la claridad. Veamos un ejemplo sencillo de una estructura tipo bucle. El siguiente bloque de código imprime por pantalla tres veces "hola mundo":

3.times do
  puts "hola mundo"
end 

Como he comentado la sintaxis es compacta e innovadora pero a la vez bastante clara y elegante. La mayor parte de los éxitos de este lenguaje de programación han venido los últimos años a través de Rails su framework MVC. Sin embargo en este artículo voy a hablar de otro framework de de su plataforma que se llama Sinatra.

¿Que es Sinatra?

Es un framework para desarrollar aplicaciones Web que simplifica sobremanera el código y aunque no implemente por si mismo de forma completa el patrón MVC si se puede convertir en MVC añadiendole de forma sencilla algún framework de persistencia adicional de la plataforma. Vamos a ver un sencillo bloque de código que nos permite devolver un mensaje de HolaMundo cuando solicitamos la url "/hola".

require 'sinatra'
get '/hola' do
  "Hola Mundo"
end

La verdad es que el código no puede ser mas expresivo y tampoco mas compacto.

Sinatra y la influencia sobre Javascript

¿Cómo afecta a veces el diseño de un framework en una plataforma al desarrollo de otros frameworks en plataformas distintas?. Bueno en este caso vamos a usar Express que es el framework MVC de Node.js plataforma de Javascript de servidor para realizar una comparativa.

El código a contruir equivalente al de Sinatra en Javascript es el siguiente:

app.get(‘/hola’, function(req, res){
  res.send(‘Hola Mundo’);
});

Podríamos darle muchas vueltas al tema pero yo creo que es evidente que el código es prácticamente idéntico y los conceptos esenciales iguales. Eso sí varía un poco ya que Node.js es asíncrono. Vamos a ver otro ejemplo similar con Java y Spark.

Spark y la influencia sobre Java

Spark Web Framework es una framework de desarrollo Java que poco a poco esta cogiendo tracción en la comunidad debido a su sencillez y al uso de expresiones lambda.

A continuación vamos a mostrar la misma funcionalidad pero usando Spark

import static spark.Spark.*;

public class HelloWorld {
   public static void main(String[] args) {
   
      get(“/hola”, (req, res) -> “Hola Mundo”);
   
   }
}

Bueno visto el código no creo que tengamos mucho que decir. Es otra copia de Sinatra pero visto desde la perspectiva Java. A mí me gusta de vez en cuando echar un vistazo a la plataforma de Ruby y a las ideas que aportan ya que en "muchas ocasiones" otras plataformas realizan un "copy/paste" de las ideas bastante "literal".

Ver todos los comentarios en https://www.genbeta.com

VER 0 Comentario

Portada de Genbeta