Mostrando entradas con la etiqueta eclipse foundation. Mostrar todas las entradas
Mostrando entradas con la etiqueta eclipse foundation. Mostrar todas las entradas

viernes, 22 de mayo de 2026

Lenguajes que han muerto y que no estabas enterado: el caso de Ceylon

Ceylon fue un lenguaje de programación que prometía algo que otros han intentado sin éxito: ser el verdadero sucesor de Java.

Tampoco lo logró.

Fue creado por Gavin King, el mismo creador de Hibernate, y "lanzado" el año 2011.

Digo lanzado, porque las versiones "lanzadas" nunca llegaban a ser estables. Pues cada versión lanzada (valga la redundancia) afectaban al lenguaje y que confundían al pobre ingenuo que se acercaba al lenguaje con el objetivo de aprendera a usarlo.

Lo que aprendías en una versión lo debías desaprender en la nueva... y así sucesivamente.

Actualmente el lenguaje se encuentra archivado por la Fundación Eclipse: https://projects.eclipse.org/projects/technology.ceylon

Ceylon posee (¿debería hablar en presente?) una sintaxis similar a la de Java y C#. Quienes venían de esos lenguajes podían adentrase al lenguaje sin tanto problema.

Características principales:

  • Orientado a objetos. 
  • Soporte a la meta programación. 
  • Imperativo. 
  • De tipado estático. 
  • Soporte la construcción modular. 
  • Multiplataforma.
  • Además de tener su propio IDE (plugin para Eclipse).

Un vistazo a Ceylon

El clásico "Hola, mundo" en Ceylon.

holamundo.ceylon

shared void run(){
    print("Hola, mundo en Ceylon");
}

No mencionaremos cómo compilarlo y ejecutarlo ya que, como mencionamos, cada versión del lenguaje cambiaba todo. Desde cómo comentar código hasta como construir el ejecutable.

Entrevista sobre Ceylon a Gavin King

El tema central de la entrevista fue sobre el nacimiento y propósito del lenguaje Ceylon.

Gavin King comentó que, tras años trabajando con Java, detectó limitaciones en su sistema de módulos y en la coherencia del lenguaje. Ceylon surge para ofrecer una sintaxis más moderna y un modelo de tipos más seguro.

Observemos esta tabla comparativa entre Ceylon y Java.

Comparativa Ceylon y Java

Aspecto Java Ceylon
Origen y creador Desarrollado por Sun Microsystems (1995), liderado por James Gosling. Creado por Gavin King en Red Hat (2011).
Objetivo principal Lenguaje de propósito general para aplicaciones empresariales, móviles y web. Modernizar el ecosistema Java con un lenguaje más coherente, modular y expresivo.
Paradigma Orientado a objetos con soporte funcional desde Java 8. Mixto: orientado a objetos y funcional, con fuerte énfasis en modularidad y claridad semántica.
Tipado Estático y fuerte, pero con inferencia limitada. Estático y fuerte, con inferencia de tipos avanzada y tipos unión/intersección.
Sistema de módulos Introducido en Java 9 (Jigsaw), pero complejo y poco intuitivo. Sistema de módulos nativo desde el inicio, simple y coherente.
Interoperabilidad Corre sobre la JVM y puede interactuar con otros lenguajes del ecosistema. Compila para JVM y JavaScript, permitiendo ejecución en servidor y navegador.
Sintaxis Verbosa y orientada a clases. Más concisa, con sintaxis moderna y expresiva.
Herramientas Ecosistema maduro (IDE, frameworks, librerías). IDE propio con compilador, gestor de módulos y documentación integrada.
Enfoque de diseño Prioriza compatibilidad y estabilidad. Prioriza legibilidad, coherencia y seguridad de tipos.
Casos de uso Aplicaciones empresariales, Android, sistemas financieros. Aplicaciones modulares, APIs, servicios distribuidos y código multiplataforma.

Ceylon representó su intento de modernizar el paradigma Java, ofreciendo una alternativa más elegante y coherente para proyectos grandes y distribuidos. Fue una lástima que no lo haya logrado.

Enlaces:

https://en.wikipedia.org/wiki/Ceylon_(programming_language)
https://swizec.com/blog/cool-thing-thursday-ceylon/
https://codemonkeyjunior.blogspot.com/2012/04/ceylon-funcionando-correctamente.html
https://projects.eclipse.org/projects/technology.ceylon
https://web.mit.edu/ceylon_v1.3.3/ceylon-1.3.3/doc/en/spec/html_single/#:~:text=Ceylon%20is%20a%20general%2Dpurpose,oriented%2C%20and%20higher%2Dorder.


Pattern Matching en sencillas palabras (o no tanto)

El pattern matching es una técnica para comparar estructuras de datos contra un patrón y, si coincide, extraer valores o ejecutar lóg...

Etiquetas

Archivo del blog