Ceylon (Programmiersprache)
| {{#if: | | {{#invoke:WLink|getArticleBase}} }} | |||
|---|---|---|---|
colspan="2" class="notheme" style="text-align:center; background-color:#Vorlage:Standardfarbe;" | |
{{#if: {{#invoke:Wikidata|claim|P154}} |
|
[[Datei:{{#invoke:Wikidata|claim|P154}}|150px]]
}} }} | ||
| {{{Screenshot}}}{{#if: | }}| }} | |||
| Basisdaten | |||
| Paradigmen: | Objektorientierte Programmiersprache
}} | ||
| Erscheinungsjahr: |
{{#if: {{#invoke:Wikidata|claim|P571}} |
|
Erscheinungsjahr: | claim|P571|references=ja}}
}} }} |
| Designer: |
{{#if: {{#invoke:Wikidata|claim|P287}} |
|
Designer: | claim|P287|parameter=link|references=ja|list=, }}
}} }} |
| Entwickler: | Gavin King, Red Hat |
{{#if: {{#invoke:Wikidata|claim|P178}} |
|
Entwickler: | claim|P178|parameter=link|references=ja|list=, }}
}} }} |
| Aktuelle Version: | 1.3.3 (21. August 2017) |
{{#if: {{#invoke:Wikidata|claim|P348}} | |
Aktuelle Version | {{#invoke:Wikidata|claim|P348|references=ja}}{{#if: {{#invoke:Wikidata|claim|Version|qualifier=P577}} | ({{#invoke:Wikidata|claim|Version|qualifier=P577}})}}}}
}} |
| Aktuelle Vorabversion: | ()
}} | ||
| Typisierung: | stark, statisch
}} | ||
| Wichtige Implementierungen: |
}} | ||
| Dialekte: |
}} | ||
| Standardisierungen: |
}} | ||
| Beeinflusst von: | Smalltalk, ML, Java |
{{#if: {{#invoke:Wikidata|claim|P737}} |
|
Beeinflusst von: | claim|P737|parameter=link|references=ja|list=, }}
}} }} |
| Beeinflusste: |
}} | ||
| Betriebssystem: | plattformunabhängig |
{{#if: {{#invoke:Wikidata|claim|P306}} |
|
Betriebssystem: | claim|P306|parameter=link|references=ja|list=, }}
}} }} |
| Lizenz: | GNU General Public License/Java Community Process |
{{#if: {{#invoke:Wikidata|claim|P275}} |
|
Lizenz: | claim|P275|parameter=link|references=ja|list=, }}
}} }} |
ceylon-lang.org |
{{#if: {{#invoke:Wikidata|claim|P856}} |
| |||
{{#invoke: WLink | formatURL | {{#invoke:Wikidata|claim|P856|parameter=link}}}}
}} }} | |||
Ceylon war eine Programmiersprache mit einem Software Development Kit (SDK), die auf Java basierte und für die Java Virtual Machine kompiliert wurde.<ref>Java-Variante Ceylon erreicht ersten Meilenstein. heise.de/newsticker</ref><ref>First official release of Ceylon. ceylon-lang.org</ref>
Im Jahr 2023 beendete die Eclipse Foundation das Projekt Eclipse Ceylon.<ref>This project is archived</ref>
Einordnung
Der Name Ceylon ist gleichzeitig die ehemalige Bezeichnung der Insel Sri Lanka sowie des von dort stammenden Tees. Dies kann als Anspielung auf Java gesehen werden, das nach dem Arabica-Kaffee benannt wurde, der auf der Insel Java angebaut wird. Das Projekt wollte eine Sprache und ein SDK nach heutigen Designstandards entwickeln, wobei sowohl aus den richtigen als auch den falschen Entscheidungen des Java-Projekts gelernt werden sollte.<ref name="Einführung in das Ceylon Poject">Introducing the Ceylon Project – Gavin King presentation at QCon Beijing 2011. slideshare.net</ref> Im April 2023 erklärte die Eclipse Foundation die Beendigung der Entwicklung von Ceylon.<ref>{{#if:2023-04-23|{{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}| |}}}}{{#if:|{{{autor}}}: }}{{#if:https://web.archive.org/web/20230423134055/https://projects.eclipse.org/projects/technology.ceylon/reviews/termination-review%7C{{#if:Eclipse Ceylon™ Termination Review|[{{#invoke:Vorlage:Internetquelle|archivURL|1={{#invoke:URLutil|getNormalized|1=https://web.archive.org/web/20230423134055/https://projects.eclipse.org/projects/technology.ceylon/reviews/termination-review}}}} {{#invoke:Vorlage:Internetquelle|TitelFormat|titel=Eclipse Ceylon™ Termination Review}}]{{#if:| ({{{format}}})}}{{#if:| {{{titelerg}}}{{#invoke:Vorlage:Internetquelle|Endpunkt|titel={{{titelerg}}}}}}}}}|{{#if:https://projects.eclipse.org/projects/technology.ceylon/reviews/termination-review%7C{{#if:{{#invoke:TemplUtl%7Cfaculty%7C1}}%7C{{#invoke:Vorlage:Internetquelle%7CTitelFormat%7Ctitel={{#invoke:WLink%7CgetEscapedTitle%7C1=Eclipse Ceylon™ Termination Review}}}}|[{{#invoke:URLutil|getNormalized|1=https://projects.eclipse.org/projects/technology.ceylon/reviews/termination-review}} {{#invoke:Vorlage:Internetquelle|TitelFormat|titel={{#invoke:WLink|getEscapedTitle|1=Eclipse Ceylon™ Termination Review}}}}]}}{{#if:| ({{{format}}}{{#if:1Eclipse Foundation2023-04-05https://web.archive.org/web/20230423134055/https://projects.eclipse.org/projects/technology.ceylon/reviews/termination-review{{#if: 2023-04-23 | {{#if:{{#invoke:TemplUtl|faculty|}}||1}}}}
| )
| {{#if:{{#ifeq:en|de||{{#if:en|1}}}}| ;
| )}}}}}}{{#if:| {{{titelerg}}}{{#invoke:Vorlage:Internetquelle|Endpunkt|titel={{{titelerg}}}}}}}}}}}{{#if:https://projects.eclipse.org/projects/technology.ceylon/reviews/termination-review%7C{{#if:{{#invoke:URLutil%7CisResourceURL%7C1=https://projects.eclipse.org/projects/technology.ceylon/reviews/termination-review}}%7C%7C}}}}{{#if:Eclipse Ceylon™ Termination Review|{{#if:{{#invoke:WLink|isValidLinktext|1=Eclipse Ceylon™ Termination Review|lines=0}}||}}}}{{#if: | In: {{#invoke:Vorlage:Internetquelle|TitelFormat|titel={{{werk}}}}}}}{{#if: Eclipse Foundation| Eclipse Foundation{{#if: 2023-04-05https://web.archive.org/web/20230423134055/https://projects.eclipse.org/projects/technology.ceylon/reviews/termination-review%7C,%7C{{#if: 2023-04-23 | {{#if:{{#invoke:TemplUtl|faculty|}}||,}}}}}}}}{{#if: 2023-04-05| {{#if:{{#invoke:DateTime|format|2023-04-05|noerror=1}}
|{{#invoke:DateTime|format|2023-04-05|T._Monat JJJJ}}
|{{#invoke:TemplUtl|failure|1=Fehler bei Vorlage:Internetquelle, datum=2023-04-05|class=Zitationswartung}} }}{{#if: https://web.archive.org/web/20230423134055/https://projects.eclipse.org/projects/technology.ceylon/reviews/termination-review%7C,%7C{{#if: 2023-04-23 | {{#if:{{#invoke:TemplUtl|faculty|}}||,}}}}}}}}{{#if: | S. {{{seiten}}}{{#if: https://web.archive.org/web/20230423134055/https://projects.eclipse.org/projects/technology.ceylon/reviews/termination-review%7C,%7C{{#if: 2023-04-23 | {{#if:{{#invoke:TemplUtl|faculty|}}||,}}}}}}}}{{#if: https://web.archive.org/web/20230423134055/https://projects.eclipse.org/projects/technology.ceylon/reviews/termination-review{{#invoke:TemplUtl%7Cfaculty%7C1}}%7C+{{#if:2023-04-05Eclipse Foundation|{{#if:https://web.archive.org/web/20230423134055/https://projects.eclipse.org/projects/technology.ceylon/reviews/termination-review%7Carchiviert%7Cehemals}}%7C{{#if:https://web.archive.org/web/20230423134055/https://projects.eclipse.org/projects/technology.ceylon/reviews/termination-review%7CArchiviert%7CEhemals}}}}+{{#if:https://web.archive.org/web/20230423134055/https://projects.eclipse.org/projects/technology.ceylon/reviews/termination-review%7Cvom%7Cim}}+Vorlage:Referrer{{#if:{{#invoke:TemplUtl|faculty|1}}| (nicht mehr online verfügbar)}}{{#if: 2023-04-23| am {{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}|2023-04-23{{#if:2496137||(?)}}}}}}{{#if: 2023-04-23|;}}}}{{#if: 2023-04-23| {{#if:2023-04-05Eclipse Foundationhttps://web.archive.org/web/20230423134055/https://projects.eclipse.org/projects/technology.ceylon/reviews/termination-review{{#invoke:TemplUtl%7Cfaculty%7C1}}%7Cabgerufen%7CAbgerufen}} {{#switch: {{#invoke:Str|len| {{#invoke:DateTime|format| 2023-04-23 |ISO|noerror=1}} }}
|4=im Jahr
|7=im
|10=am
|#default={{#invoke:TemplUtl|failure|1=Fehler bei Vorlage:Internetquelle, abruf=2023-04-23|class=Zitationswartung}} }} {{#invoke:DateTime|format|2023-04-23|T._Monat JJJJ}}
| {{#invoke:TemplUtl|failure|1=Vorlage:Internetquelle | abruf=2026-MM-TT ist Pflichtparameter}} }}{{#if:{{#ifeq:en|de||{{#if:en|1}}}}|{{#if:1Eclipse Foundation2023-04-05https://web.archive.org/web/20230423134055/https://projects.eclipse.org/projects/technology.ceylon/reviews/termination-review{{#if: 2023-04-23 | {{#if:{{#invoke:TemplUtl|faculty|}}||1}}}}
| (
| {{#if: | | (}}
}}{{#ifeq:{{#if:en|en|de}}|de||
{{#invoke:Multilingual|format|en|slang=!|split=[%s,]+|shift=m|separator=, }}}}{{#if: |{{#ifeq:{{#if:en|en|de}}|de||, }}{{{kommentar}}}}})}}{{#if: 2023-04-05https://web.archive.org/web/20230423134055/https://projects.eclipse.org/projects/technology.ceylon/reviews/termination-review{{#if: 2023-04-23 | {{#if:{{#invoke:TemplUtl|faculty|}}||1}} }}en|{{#if: |: {{
#if:
| „{{
#ifeq: {{#if:{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|de}} | de
| Vorlage:Str trim
| {{#invoke:Vorlage:lang|flat}}
}}“
| {{#ifeq: {{#if:{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|de}} | de
| „Vorlage:Str trim“
| {{#invoke:Text|quote
|1={{#if:
| {{#invoke:Vorlage:lang|flat}}
| {{#invoke:Vorlage:lang|flat}} }}
|2={{#if: {{#invoke:TemplUtl|faculty|}}|de-CH|de}}
|3=1}} }}
}}{{#if:
| (<templatestyles src="Person/styles.css" />{{#if: | : }}{{#if: | , deutsch: „“ }})
| {{#if:
| ({{#if: | , deutsch: „“ }})
| {{#if: | (deutsch: „“) }}
}}
}}{{#if: {{{zitat}}}
| {{#if:
| {{#if: {{{zitat}}}
| Vorlage:": Text= und 1= gleichzeitig, bzw. Pipe zu viel }} }}
| Vorlage:": Text= fehlt }}{{#if: | {{#if: {{#invoke:Text|unstrip|{{{ref}}}}}
| Vorlage:": Ungültiger Wert: ref=
| {{{ref}}} }}
}}|.{{#if:{{#invoke:TemplUtl|faculty|1}}|{{#if:https://web.archive.org/web/20230423134055/https://projects.eclipse.org/projects/technology.ceylon/reviews/termination-review%7C%7C{{#ifeq: 1 | JaKeinHinweis |{{#switch:
|0|=Vorlage:Toter Link/Core{{#if: https://projects.eclipse.org/projects/technology.ceylon/reviews/termination-review | {{#if: | [1] }} (Seite {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar{{#if: | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. Suche im Internet Archive ){{#if: | {{#if: deadurlausgeblendet | | Vorlage:Toter Link/archivebot }} }} | (Seite {{#switch:|no|0|=|#default=dauerhaft }}nicht mehr abrufbar{{#if: | , festgestellt im {{#invoke:DateTime|format||F Y}} }}.) }}{{#switch: |no|0|= |#default={{#if: || }} }}{{#invoke:TemplatePar|check |opt = inline= url= text= datum= date= archivebot= bot= botlauf= fix-attempted= checked= |cat = Wikipedia:Vorlagenfehler/Vorlage:Toter Link |errNS = 0 |template = Vorlage:Toter Link |format = |preview = 1 }}{{#if: https://projects.eclipse.org/projects/technology.ceylon/reviews/termination-review | {{#if:{{#invoke:URLutil|isWebURL|https://projects.eclipse.org/projects/technology.ceylon/reviews/termination-review}} || {{#if: || }} }} | {{#if: | {{#if: || }} | {{#if: || }} }} }}{{#if: | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}} || {{#if: || }} }} }}{{#switch: deadurl |checked|deadurl|= |#default= {{#if: || }} }}|#default= https://wiki-de.moshellshocker.dns64.de/index.php?title=Wikipedia:Defekte_Weblinks&dwl=https://projects.eclipse.org/projects/technology.ceylon/reviews/termination-review Die nachstehende Seite ist {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar]{{#if: | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. (Suche im Internet Archive. ) {{#if: | {{#if: deadurlausgeblendet | | Vorlage:Toter Link/archivebot }} }}Vorlage:Toter Link/Core{{#switch: |no|0|= |#default= {{#if: || }} }}{{#invoke:TemplatePar|check |all = inline= url= |opt = datum= date= archivebot= bot= botlauf= fix-attempted= checked= |cat = Wikipedia:Vorlagenfehler/Vorlage:Toter Link |errNS = 0 |template = Vorlage:Toter Link |format = |preview = 1 }}{{#if: https://projects.eclipse.org/projects/technology.ceylon/reviews/termination-review | {{#if:{{#invoke:URLutil|isWebURL|https://projects.eclipse.org/projects/technology.ceylon/reviews/termination-review}} || {{#if: || }} }} }}{{#if: | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}} || {{#if: || }} }} }}{{#switch: deadurl |checked|deadurl|= |#default= {{#if: || }} }}[https://projects.eclipse.org/projects/technology.ceylon/reviews/termination-review }}|{{#switch: |0|=Vorlage:Toter Link/Core{{#if: https://projects.eclipse.org/projects/technology.ceylon/reviews/termination-review | {{#if: | [2] }} (Seite {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar{{#if: | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. Suche im Internet Archive ){{#if: | {{#if: | | Vorlage:Toter Link/archivebot }} }} | (Seite {{#switch:|no|0|=|#default=dauerhaft }}nicht mehr abrufbar{{#if: | , festgestellt im {{#invoke:DateTime|format||F Y}} }}.) }}{{#switch: |no|0|= |#default={{#if: || }} }}{{#invoke:TemplatePar|check |opt = inline= url= text= datum= date= archivebot= bot= botlauf= fix-attempted= checked= |cat = Wikipedia:Vorlagenfehler/Vorlage:Toter Link |errNS = 0 |template = Vorlage:Toter Link |format = |preview = 1 }}{{#if: https://projects.eclipse.org/projects/technology.ceylon/reviews/termination-review | {{#if:{{#invoke:URLutil|isWebURL|https://projects.eclipse.org/projects/technology.ceylon/reviews/termination-review}} || {{#if: || }} }} | {{#if: | {{#if: || }} | {{#if: || }} }} }}{{#if: | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}} || {{#if: || }} }} }}{{#switch: |checked|deadurl|= |#default= {{#if: || }} }}|#default= https://wiki-de.moshellshocker.dns64.de/index.php?title=Wikipedia:Defekte_Weblinks&dwl=https://projects.eclipse.org/projects/technology.ceylon/reviews/termination-review Die nachstehende Seite ist {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar]{{#if: | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. (Suche im Internet Archive. ) {{#if: | {{#if: | | Vorlage:Toter Link/archivebot }} }}Vorlage:Toter Link/Core{{#switch: |no|0|= |#default= {{#if: || }} }}{{#invoke:TemplatePar|check |all = inline= url= |opt = datum= date= archivebot= bot= botlauf= fix-attempted= checked= |cat = Wikipedia:Vorlagenfehler/Vorlage:Toter Link |errNS = 0 |template = Vorlage:Toter Link |format = |preview = 1 }}{{#if: https://projects.eclipse.org/projects/technology.ceylon/reviews/termination-review | {{#if:{{#invoke:URLutil|isWebURL|https://projects.eclipse.org/projects/technology.ceylon/reviews/termination-review}} || {{#if: || }} }} }}{{#if: | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}} || {{#if: || }} }} }}{{#switch: |checked|deadurl|= |#default= {{#if: || }} }}[https://projects.eclipse.org/projects/technology.ceylon/reviews/termination-review }} }}}}}}}}}}{{#if:| {{#invoke:Vorlage:Internetquelle|archivBot|stamp={{{archiv-bot}}}|text={{#if:https://web.archive.org/web/20230423134055/https://projects.eclipse.org/projects/technology.ceylon/reviews/termination-review%7CVorlage:Webarchiv/archiv-bot}}
}}}}{{#invoke:TemplatePar|check |all= url= titel= |opt= autor= hrsg= format= sprache= titelerg= werk= seiten= datum= abruf= zugriff= abruf-verborgen= archiv-url= archiv-datum= archiv-bot= kommentar= zitat= AT= CH= offline= |cat= {{#ifeq: 0 | 0 | Wikipedia:Vorlagenfehler/Vorlage:Internetquelle}} |template= Vorlage:Internetquelle |format=0 |preview=1 }}</ref> Vorlage:Hinweisbaustein Wie der Java-Compiler erzeugt der Ceylon-Compiler Bytecode für die Java Virtual Machine. Initiiert wurde sie vom Red-Hat-Entwickler Gavin King, der durch seine Arbeit an Seam und dem Hibernate-Framework bekannt wurde. Syntaktisch lehnt sich Ceylon stark an Java an. Red Hat beschreibt die Sprache als gut lesbar und extrem typsicher. Bisher wurden der Compiler für die Kommandozeile, Sprachmodule, das Laufzeitsystem, eine Eclipse-basierte Entwicklungsumgebung und ein Dokumentationcompiler veröffentlicht. Gegenüber dem für Version 1.0 geplanten Sprachumfang fehlten Ende 2011 nummerierte Typen, nutzerdefinierte Anmerkungen und Reflection.
Grundkonzepte der Sprache
Ceylon erbt weitestgehend die Syntax von Java. Ein Hallo-Welt-Programm in Ceylon sieht so aus: <syntaxhighlight lang="java"> shared void hello() {
print("Hello World!");
} </syntaxhighlight>
Überladen
Ceylon unterstützt kein Überladen von Methoden, allerdings können optionale Parameter mit einem Defaultwert belegt werden.
Funktionen höherer Ordnung
Ceylon unterstützt Funktionen höherer Ordnung.
<syntaxhighlight lang="java"> void repeat(Integer times, void perform()) {
for (Integer n in 1..times) {
perform();
}
} </syntaxhighlight>
Compiler
Der Ceylon-Compiler ist mehrschichtig aufgebaut und besteht aus einem Parser/Typechecker, der den Code validiert, und Backends, die den validierten Code übersetzen. Es gibt ein Java-Backend, das mithilfe des OpenJDK-Compilers Java-Bytecode erzeugt, und ein JavaScript-Backend, das eine JavaScript-Datei erzeugt. Sowohl Parser als auch Backends sind dabei in Java geschrieben.
Releases
Am 20. Dezember 2011 wurde der erste von sechs Milestones für die Version 1.0 freigegeben. Milestone sechs ist am 23. September 2013 freigegeben worden und trägt die inoffizielle Version 0.6. Am 12. November 2013 schließlich erschien Version 1.0.0.<ref name="ceylon-release-1.0.0">Offizieller Ceylon-Blog: „Ceylon 1.0.0 is now available“. ceylon-lang.org</ref> Informationen zu künftigen Releases finden sich in der offiziellen Roadmap des Projekts.
Testen
Auf try.ceylon-lang.org kann man sich fertige Codebeispiele zu einzelnen Sprachfunktionen anschauen und auch selber kleine Programme schreiben, die serverseitig mit dem JavaScript-Compiler kompiliert und dann im Browser ausgeführt werden.
Weblinks
- Offizielle Website (englisch)
- Ceylon. GitHub (englisch)
- Kurze Einführung in Ceylon. ceylon-lang.org (englisch).
- Tour of Ceylon. ceylon-lang.org (englisch).
Einzelnachweise
<references />
- Wikipedia:Vorlagenfehler/Parameter:URL
- Wikipedia:Vorlagenfehler/Parameter:Linktext
- Wikipedia:Vorlagenfehler/Parameter:Datum
- Wikipedia:Vorlagenfehler/Vorlage:"
- Wikipedia:Weblink offline fix-attempted
- Wikipedia:Vorlagenfehler/Vorlage:Toter Link
- Wikipedia:Vorlagenfehler/Vorlage:Toter Link/URL fehlt
- Programmiersprache für die Java Virtual Machine
- Freies Programmierwerkzeug