Ceylon

El lenguaje de programación creado por Gavin King para aplicaciones empresariales

Ceylon: Introducción rápida

Una forma de contribuir con Ceylon, o con cualquier otro proyecto de open source, es escribir en la lengua de Cervantes (modificada por Bárbaro), mucho de lo que ya está escrito en el sitio de Ceylon en la lengua de Shakespeare ( modificada por Gavin). Mi intención es traducirlo todo al español y confío en Manzanero con su semana de más de 7 días.
Por lo pronto lo que sigue es una traducción libre de Quick Introduction

Introducción rápida

Es imposible captar la esencia de un lenguaje de programación observando solamente la lista de características. Lo que realmente hace al lenguaje es la combinación de esa pequeñas cosas trabajando juntas. Y resulta que es imposible apreciar esa sinergia sin escribir código. En esta sección vamos a mostrar de manera rápida lo suficiente de Ceylon para lograr un interés suficiente que te conduzca a probar el lenguaje. Lo que sigue por supuesto que no es una lista completa de las características del lenguaje.

Una sintaxis legible y familiar

Hola Ceylon, adiós NullPointerException

Todo programador que haya hecho aunque sea la más pequeña aplicación en Java, se ha topado en algún momento con la odiosa NullPointerException. Una excepción que sólo ocurre en tiempo de ejecución, cuando resulta que nuestro código invoca un método o quiere obtener un miembro de un objeto que realmente apunta a null. Y puede ocurrir por cosas tan simples como esto:

String x = "hola";
//algunas líneas más abajo...
if (cualquierCosa) { hola = null; }
//y otras líneas más abajo
int largo = x.length();

El código compila perfectamente. Es más, esto es código que compila sin darnos ningún error, ni advertencia, ni nada:

String x = null;
x.length();

Y uno se pone a pensar... es tan difícil que el compilador se diera cuenta que tengo una variable que apunta a null, y en la siguiente línea estoy invocando un método sobre ese null??????; pero pues así funciona Java. Y si lo anterior es posible, por supuesto puede ocurrir dentro de cualquiera de nuestros métodos que esperan recibir un objeto.

coach factory store desperate

Tipos en Ceylon: Un sistema de tipos con sentido

Para mi primer post acerca de Ceylon, quiero hablar un poco acerca del sistema de tipos. Una de las metas de Ceylon es la legibilidad del código; otra es tener un sistema de tipos que sea sencillo pero a la vez poderoso (Ceylon es un lenguaje de tipado estático). A continuación pretendo demostrar cómo estos dos objetivos se unen, dando como resultado código más legible, con un ejemplo sencillo: una lista heterogénea (es decir, que contiene elementos de distintos tipos). Veamos el ejemplo en un par de lenguajes de tipado estático, incluso en algunos de tipado dinámico. Primero obviamente en Java:

List<Object> list = Arrays.asList(new Object[]{ 0, "uno", 2, "tres", 4, "cinco" });
for (Object elem : list) {
  if (elem instanceof String) {
    //Para hacer algo con el string requerimos un cast
    String minusc = ((String)elem).toLowerCase();
    System.out.println(minusc);
  } else if (elem instanceof Number) {
    //Igual aqui
    int doble = 2 * ((Number)elem).intValue();
    System.out.println(doble);
  }
}

Primeras impresiones de Ceylon

Como bien saben, hace un par de días contamos con la presencia de Gavin King en las Opentalks, hablando de Ceylon, un nuevo lenguaje de programación que en el que ya lleva cerca de 3 años trabajando. Es un proyecto prioritario dentro de RedHat, pues la intención es tener un nuevo lenguaje de nivel enterprise que sustituya a Java.

Esto no es una reseña del evento; quiero enfocarme a hablar del lenguaje Ceylon, algunas de mis impresiones en este primer contacto que tuve (porque la verdad, no había tenido tiempo de meterme a fondo, más allá de ver aquellos slides que se habían filtrado hace unos meses de una conferencia en China o no sé dónde). He estado pensando acerca de si es mejor hacer una comparativa con otros lenguajes o simplemente hablar de las características de Ceylon sin hablar de ningún otro lenguaje, más que acaso Java, ya que finalmente será un lenguaje que funciona sobre la JVM. Y pues creo que habrá momentos para hacer comparaciones y otros donde es mejor sólo hablar de Ceylon.

Razón de ser

Ceylon surge por razones muy similares a las que han salido otros lenguajes para JVM: Java está evolucionando muy lentamente, se ha vuelto más complicado cada vez, hay que escribir demasiado código para realizar tareas simples, etc. Pero a diferencia de otros lenguajes, la intención de Ceylon es tener adopción a nivel enterprise; es un lenguaje pensado para hacer sistemas grandes con equipos de desarrollo grandes (varios integrantes trabajando sobre una misma base de código, etc). Una consideración importante en el diseño de Ceylon es la legibilidad, tomando en cuenta que en desarrollos grandes, un programador generalmente pasa más tiempo leyendo código ajeno (y propio) que escribiendo código. Por eso es que la legibilidad es una característica muy importante.

Distribuir contenido