2. ¿Qué es Ceylon?
• Nuevo lenguaje de programación
• Con su propio SDK
• Sistema de módulos integrado
• Ejecución en JVM y Javascript
• Herramientas CLI y un IDE (Eclipse)
3. ¿Por qué Ceylon?
• Fans de Java desde sus inicios
• La plataforma es excelente y sigue
mejorando
• El lenguaje evoluciona de forma muy
lenta, su deuda tecnológica crece
• SDK sigue mejorando pero cada vez
más lento, es demasiado grande
4. ¿Por qué aquí y ahora?
• Los cambios en esta industria son
rápidos y frecuentemente impredecibles
• Ejemplo personal:
– Estudiando la carrera de 1991 a 1996
– 4GL's, CASE (Computer-Aided SW Eng.)
– 1993 nace www, 1995-6 llega a México
– 1996 sale Java 1.0
5. Ceylon: Inspirado en Java
• Tipado estático
• Sintaxis similar (para lo más básico)
• Generics (parámetros de tipo)
• Anotaciones
• Paquetes (namespaces)
• Clases e interfaces (y métodos!)
• Argumentos variables en métodos
6. Ventajas sobre Java
• Sistema de tipos poderoso pero entendible
• Todo es un objeto (no hay tipos nativos)
• Interfaces con miembros concretos
• Funciones y atributos de primer nivel
• Funciones de orden superior
• Funciones anidadas
• Unión e intersección de tipos
• Atributos (en vez de campo+setter+getter)
• Tipos algebraicos en vez de enums
• Extensibilidad formal
• Cadenas multilínea y con interpolación
7. Ventajas sobre Java
• Varianza en declaraciones en vez de donde se usa
• Covarianza y contravarianza entendible (y por tanto usable)
• Null con seguridad de tipo (no hay NullPointerException)
• Parámetros con valor por defecto
• Invocaciones por nombre de argumentos
• Comprensiones, tuplas
• Inmutabilidad por defecto
• Inferencia local de tipos
• Modularidad (repositorios locales, remotos, privados, etc)
• SDK renovado y mejorado
• Singletons
• Alias de tipos
8. Hola mundo
//Java
public class HolaMundo {
public static void main(String... args) {
System.out.println(“hola, Java!”);
}
}
//Ceylon
void run() {
print(“hola, Ceylon!”);
}
9. Legibilidad
• Últimamente muchos lenguajes se han
enfocado a que el dev pueda escribir
menos código
• En la mayoría de los proyectos se
termina dedicando más tiempo a leer
código ya hecho que a escribir nuevo
código
12. Ejemplos en vivo
• Inferencia, null
• Unión e intersección de tipos
• Referencias a métodos
• Iterables y comprensiones
• Tipos algebraicos
• Varianza
• Tuplas
13. Status del proyecto
• Hoy: M5
• Ceylon 1.0 para fin de año
– Metamodelo, anotaciones
• SDK sigue en progreso
– IO
– Sockets, HTTP
– DBC
– Time