Ceylon (programovací jazyk)

**Projekt Ceylon** je objektovo orientovaný programovací jazyk a SDK. Je založený na jazyku Java, vyvíjaný spoločnosťou Red Hat. Programy napísané v jazyku **Ceylon** sú spustiteľné nad Java Virtual Machine a JavaScript Virtual Machine.
Názov "Ceylon" je nepriamou referenciou k Jave, keďže oba ostrovy Jáva a Srí Lanka (kedysi známa pod menom Ceylon) produkujú kávu.

## História
Vývojari stojaci za projektom Ceylon sú fanúšikmi Javy a to až do takej miery, že sa rozhodli jazyk si prispôsobiť vlastným predstavám a požiadavkam dnešného moderného sveta. Prvé zmienky o novom jazyku boli zverejnené približne v polovici roka 2011, pričom prvá funkčná predprodukčná verzia *Milestone 1* bola vydaná 20. decembra 2011, prvá produkčná verzia *1.0.0* uzrela svetlo sveta takmer dva roky po tom, 12. novembra 2013 a momentálne je Projekt Ceylon vo verzii *1.1.0*.

## Vlastnosti jazyka
Jazyk Ceylon dedí väčšinu syntaxe od *Javy*. Program Hello World vyzerá následovne:

```java
shared void hello() {
    print("Hello, World!");
}
```


### Polymorfizmus operátorov
Ceylon nepodporuje preťaženie operátorov, keďže tento princíp je vo všeobecnosti považovaný za mätúci. Namiesto toho jazyk podporuje polymorfizmus operátorov, pričom operátor je skratka pre metódu zabudovaného typu. Tento prístup je považovaný za jednoduchší a bezpečnejší ako skutočné preťažovanie operátorov.

### Rozhrania
Rozhrania sú dátové štruktúry, ktoré obsahujú definície členov, avšak nie ich implementáciu. Sú nápomocné pre definovanie kontraktu medzi členmi rôznych typov, ktorí majú rozdielne implementácie. Každé rozhranie je implicitne abstraktné.

Rozrhanie je implementované triedou, ktorá používa kľúčove slovo `satisfies`. Je povolené implementovať viac ako jedno rozhranie. V tomto prípade sú rozhrania napísané po kľúčovom slove `satisfies` v zozname oddelenom čiarkou. Ceylon umožňuje mať v rozhraniach okrem definícií aj obmedzený kód. Rozrhanie nemôže obsahovať inicializačnú logiku, avšak môže obsahovať mixiny (trieda, ktorá obsahuje kombináciu metód iných tried).


```java5
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;
   }
   ...
}
```


### Dedenie
Takisto ako v Jave, aj v jazyku Ceylon môžu triedy dediť iba od jednej triedy. Dedičnosť je deklarovaná kľúčovým slovom `extends`. Trieda môže odkazovať sama na seba pomocou kľúčového slova `this`.

Abstraktné triedy sú triedy, ktoré slúžia iba ako šablóna a nemôžu mať inštancie. Okrem toho fungujú presne ako bežná trieda.

Abstraktné metódy môžu mať iba abstraktné triedy. Abstraktné metódy nemajú žiadnu implementáciu a musia byť nahradené podtriedou, s výnimkou prípadu, kedy je aj táto trieda abstraktná.

## Licencia
Celá práca na projekte, vrátane jej webstránky, špecifikácie jazyka a Ceylon Herd (repozitár pre moduly jazyku Ceylon) je voľne dostupná pod licenciami open source.

## Typový systém
Základné princípy typového systému sú:
* žiadne špecíalne typy, tj. žiadne primitívne alebo zložené typy, "všetko je objekt".
* žiadne špeciálne funkcie pre zabudované typy.
* všetko by malo fungovať "ako to očakávate" z Javy / C / atď.
* nepridávať zložitosť typovým systémom známym z Javy. Preto žiadne preťažovanie metód a wildcard typy.

## Prijatie
Ryan Paul tvrdí, že aj napriek tomu, že je motivácia Red Hatu "výstredná", King ju vie dobre obhájiť.
Neil McAllister na druhej strane ale tvrdí, že Ceylon je chyba a snaha Red Hatu by bola viac prínosná, ak by sa rozhodli podporiť existujúce alternatívy založené na JVM, ako napríklad Scala. Andrew Oliver z magazínu JavaWorld popisuje jazyk Ceylon vo verzii pred 1.0.0 ako nádejný, avšak v momentálnej podobe nepripravený na použitie.

## Referencie

## Externé odkazy
* Oficiálna stránka jazyka Ceylon 

## Zdroj

Kategória:Java (programovací jazyk)
Kategória:Programovacie jazyky