Ceylon (programovací jazyk)
Projekt Ceylon je objektově orientovaný programovací jazyk a SDK. Je založen na jazyku Java, vyvíjený společností Red Hat. Programy napsané v jazyce Ceylon jsou spustitelné nad Java Virtual Machine a JavaScript Virtual Machine.
Název "Ceylon" je nepřímou referencí k Javě, neboť oba ostrovy Jáva a Srí Lanka (kdysi známá pod jménem Ceylon) produkují kávu.

Historie 
Vývojáři stojící za projektem Ceylon jsou fanoušky Javy a to až do takové míry, že se rozhodli jazyk si přizpůsobit vlastním představám a požadavkům dnešního moderního světa. První zmínky o novém jazyce byly zveřejněny přibližně v polovině roku 2011, přičemž první funkční předprodukční verze Milestone 1 byla vydána 20. prosince 2011, první produkční verze 1.0.0 spatřila světlo světa téměř dva roky poté, 12. listopadu 2013 a momentálně je Projekt Ceylon ve verzi 1.1.0.

Vlastnosti jazyka 
Jazyk Ceylon dědí většinu syntaxe od Javy. Program Hello World vypadá následovně:
shared void hello() {
    print("Hello, World!");
}

Polymorfismus operátorů 
Ceylon nepodporuje přetížení operátorů, neboť tento princip je obecně považován za matoucí. Namísto toho jazyk podporuje polymorfismus operátorů, přičemž operátor je zkratka pro metodu zabudovaného typu. Tento přístup je považován za jednodušší a bezpečnější než skutečné přetěžování operátorů.

Rozhraní 
Rozhraní jsou datové struktury, které obsahují definice členů, avšak ne jejich implementaci. Jsou nápomocné pro definování kontraktu mezi členy různých typů, kteří mají rozdílné implementace. Každé rozhraní je implicitně abstraktní.

Rozhraní je implementováno třídou, která používá klíčové slovo Satisfy. Je povoleno implementovat více než jedno rozhraní. V tomto případě jsou rozhraní napsány po klíčovém slově Satisfy v seznamu odděleném čárkou. Ceylon umožňuje mít v rozhraních kromě definic i omezený kód. Rozhraní nemůže obsahovat inicializační logiku, avšak může obsahovat mixin (třída, která obsahuje kombinaci metod jiných tříd).

shared interface Comparable<in T> {
   shared formal Comparison compare(T other);

   shared Boolean largerThan(T other) {
      return compare(other)==larger;
   }

   shared Boolean smallerThan(T other) {
      return compare(other)==smaller;
   }
   ...
}

Dědění 
Stejně jako v Javě, i v jazyce Ceylon mohou třídy dědit pouze od jedné třídy. Dědičnost je deklarována klíčovým slovem Extends. Třída může odkazovat sama na sebe pomocí klíčového slova this.

Abstraktní třídy jsou třídy, které slouží pouze jako šablona a nemohou mít instance. Kromě toho fungují přesně jako běžná třída.

Abstraktní metody mohou mít pouze abstraktní třídy. Abstraktní metody nemají žádnou implementaci a musí být nahrazeny podtřídou, s výjimkou případu, kdy je i tato třída abstraktní.

Licence 
Celá práce na projektu, včetně její webové stránky, specifikace jazyka a Ceylon Herd (repozitář pro moduly jazyce Ceylon) je volně dostupná pod licencemi open source.

Typový systém 
Základní principy typového systému jsou:
 Žádné speciální typy, tj. žádné primitivní nebo složené typy, "všechno je objekt".
 Žádné speciální funkce pro zabudované typy.
 Vše by mělo fungovat "jako to očekáváte" z Javy / C / atd.
 Nepřidávat složitost typovým systémem známým z Javy. Proto žádné přetěžování metod a wildcard typy.

Přijetí 
Ryan Paul tvrdí, že i přesto, že je motivace Red Hatu "výstřední", King ji umí dobře obhájit.
Neil McAllister na druhé straně ale tvrdí, že Ceylon je chyba a snaha Red Hatu by byla více přínosná, pokud by se rozhodli podpořit stávající alternativy založené na JVM, jako například Scala. Andrew Oliver z magazínu JavaWorld popisuje jazyk Ceylon ve verzi před 1.0.0 jako nadějný, avšak v momentální podobě nepřipravený k použití.

Reference

Externí odkazy 
 Oficiální stránka jazyka Ceylon (anglicky)

Java
Programovací jazyky
JVM programovací jazyky
Software pod licencí Apache