Ceylon (programovací jazyk)

Ceylon
VývojářRed Hat a Gavin King
Aktuální verze1.3.3 (21. srpna 2017)
Operační systémmultiplatformní software
PlatformaJava Virtual Machine
JavaScript
Vyvíjeno vJava
Typ softwaruobjektově orientovaný programovací jazyk, svobodný software, programovací jazyk, funkcionální programovací jazyk, multiparadigmatický programovací jazyk, imperative programming language a JVM language
LicenceApache License, Version 2.0
Webceylon-lang.org
Některá data mohou pocházet z datové položky.

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.[1] 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.[2] 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,[3] první produkční verze 1.0.0 spatřila světlo světa téměř dva roky poté, 12. listopadu 2013[4] a momentálně je Projekt Ceylon ve verzi 1.1.0.[5]

Vlastnosti jazyka

Jazyk Ceylon dědí většinu syntaxe od Javy. Program Hello World vypadá následovně:[1]

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.[6]

Typový systém

Základní principy typového systému jsou:[7]

  • Žá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.[8] 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.[9] 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í.[10]

Reference

V tomto článku byly použity překlady textů z článků Ceylon (programovací jazyk) na slovenské Wikipedii a Ceylon (programming language) na anglické Wikipedii.

  1. a b Ceylon: Quick introduction [online]. [cit. 2015-01-31]. Dostupné online. (anglicky) 
  2. Gavin King. Introduction to Ceylon Part 1 [online]. [cit. 2015-01-31]. Dostupné online. (anglicky) 
  3. Gavin King. First official release of Ceylon [online]. [cit. 2015-01-31]. Dostupné online. (anglicky) 
  4. Gavin King. Ceylon 1.0.0 is now available [online]. [cit. 2015-01-31]. Dostupné online. (anglicky) 
  5. Gavin King. Ceylon 1.1.0 is now available [online]. [cit. 2015-01-31]. Dostupné online. (anglicky) 
  6. Ceylon: Licenses [online]. [cit. 2015-01-31]. Dostupné online. (anglicky) 
  7. Gavin King. The Ceylon Type System [online]. [cit. 2015-01-31]. Dostupné v archivu pořízeném dne 2012-11-22. (anglicky) 
  8. PAUL, Ryan. The rationale for Ceylon, Red Hat’s new programming language [online]. 15.4.2011 [cit. 2015-01-31]. Dostupné online. (anglicky) 
  9. MCALLISTER, Neil. Red Hat's Ceylon language is an unneeded tempest in a teapot [online]. 22.4.2011 [cit. 2015-01-31]. Dostupné online. (anglicky) 
  10. OLIVER, Andrew. A first look at Gavin King's Ceylon [online]. 25.4.2013 [cit. 2015-01-31]. Dostupné online. (anglicky) 

Externí odkazy