Ceylon (programovací jazyk)

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

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. +more prosince 2011, první produkční verze 1. 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.

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. +more 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. +more 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í. +more 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 { 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. +more 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". +more * Žá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. +more Andrew Oliver z magazínu JavaWorld popisuje jazyk Ceylon ve verzi před 1. 0 jako nadějný, avšak v momentální podobě nepřipravený k použití.

Reference

Externí odkazy

[url=http://ceylon-lang.org]Oficiální stránka jazyka Ceylon[/url] (anglicky)

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

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top