Sprachenkompendium: Ceylon, Erlang und Ruby
By Frank Hinkel, Muhammet Altindal and Tam Hanna
()
About this ebook
Related to Sprachenkompendium
Titles in the series (100)
Einstieg in Google Go Rating: 0 out of 5 stars0 ratingsServiceorientierte Architektur: Anforderungen, Konzeption und Praxiserfahrungen Rating: 0 out of 5 stars0 ratingsTFS 2012 Versionskontrolle: Grundlagen, Check-In Policies und Branch-Modelle Rating: 0 out of 5 stars0 ratingsQualität in IT-Architekturen: Strategie und Planung Rating: 0 out of 5 stars0 ratingsJava EE Security Rating: 0 out of 5 stars0 ratingsSpring: Vier Perspektiven auf Framework und Ökosystem Rating: 0 out of 5 stars0 ratingsNFC: Near Field Communication für Android-Entwickler Rating: 5 out of 5 stars5/5JavaScript für Eclipse-Entwickler: Orion, RAP und GWT Rating: 0 out of 5 stars0 ratingsHTML5 Security Rating: 0 out of 5 stars0 ratingsErfolgreiche Spieleentwicklung: OpenGL, OpenAL und KI Rating: 0 out of 5 stars0 ratingsÜberzeugende Präsentationen: Konzeption, Technik und Design Rating: 0 out of 5 stars0 ratingsHTML5 für Mobile Web Rating: 0 out of 5 stars0 ratingsJava 7: Fork-Join-Framework und Phaser Rating: 0 out of 5 stars0 ratingsSkalierbare Softwaresysteme: Design, Betrieb und Optimierungspotenziale Rating: 0 out of 5 stars0 ratingsJavaScript auf dem Server Rating: 0 out of 5 stars0 ratingsAmazon Web Services für .NET Entwickler Rating: 0 out of 5 stars0 ratingsF#: Ein praktischer Einstieg Rating: 0 out of 5 stars0 ratingsGeolocation mit PHP: Foursquare-API, Google Places & Qype Rating: 0 out of 5 stars0 ratingsIT Wissensmanagement: Theorie und Praxis Rating: 0 out of 5 stars0 ratingsAlgorithmen: Grundlagen und Implementierung Rating: 0 out of 5 stars0 ratingsBPM: Strategien und Anwendungsfälle Rating: 0 out of 5 stars0 ratingsErfolgreiche Spieleentwicklung: OpenCL Rating: 0 out of 5 stars0 ratingsTitanium Mobile: Multi Platform Apps mit JavaScript Rating: 0 out of 5 stars0 ratingsTFS 2012 Anforderungsmanagement: Work Items und Prozessvorlagen Rating: 0 out of 5 stars0 ratingsBig Data: Technologiegrundlagen Rating: 0 out of 5 stars0 ratingsjQuery Mobile - Basics: Basics Rating: 0 out of 5 stars0 ratingsUX Design für Tablet-Websites: Ein Überblick Rating: 0 out of 5 stars0 ratingsBig Data: Executive Briefing Rating: 0 out of 5 stars0 ratingsSharePoint-Entwicklung für Einsteiger Rating: 0 out of 5 stars0 ratingsJava EE 7: Ein Ausblick Rating: 0 out of 5 stars0 ratings
Related ebooks
CDI - Dependency Injection in Java EE 7: Dependency Injection in Java EE 7 Rating: 0 out of 5 stars0 ratingsJavaScript auf dem Server Rating: 0 out of 5 stars0 ratingsJava 9: Einführung in das Modulsystem und die Migration Rating: 0 out of 5 stars0 ratingsModulare Software entwickeln mit OSGi Rating: 0 out of 5 stars0 ratingsErfahrungen mit Eclipse 4: aus der Praxis für die Praxis Rating: 0 out of 5 stars0 ratingsPolyglottes Programmieren in Java Core Rating: 0 out of 5 stars0 ratingsJava 7: Project Coin, Generics und NIO2 Rating: 0 out of 5 stars0 ratingsJava EE Testing mit Arquillian Rating: 0 out of 5 stars0 ratingsJava Core Programmierung: Memory Model und Garbage Collection Rating: 0 out of 5 stars0 ratingsMicroservices: Der Hype im Realitätscheck Rating: 0 out of 5 stars0 ratingsClojure: Funktionale Programmierung für die JVM Rating: 0 out of 5 stars0 ratingsMemory Leaks in Java Rating: 0 out of 5 stars0 ratingsSprachenkompendium: Vala, Go und Rust Rating: 0 out of 5 stars0 ratingsSpring Boot und Spring Cloud Rating: 5 out of 5 stars5/5Eclipse meets Java FX Rating: 0 out of 5 stars0 ratingsSoftware modular bauen: Architektur von langlebigen Softwaresystemen - Grundlagen und Anwendung mit OSGi und Java Rating: 0 out of 5 stars0 ratingsModerne Webanwendungen mit AngularJS Rating: 0 out of 5 stars0 ratingsGroovy – kurz & gut Rating: 0 out of 5 stars0 ratingsAngular 2: Moderne Frontends für alle Plattformen entwickeln Rating: 0 out of 5 stars0 ratingsjQuery Mobile: Unit Testing Rating: 0 out of 5 stars0 ratingsjQuery Mobile - Basics: Basics Rating: 0 out of 5 stars0 ratingsJavaScript für Java-Entwickler Rating: 0 out of 5 stars0 ratingsApache Tamaya: Einstieg in die Konfiguration in Java Rating: 0 out of 5 stars0 ratingsJava 9 Streams Rating: 0 out of 5 stars0 ratingsJava FX - Status Quo: Status Quo Rating: 0 out of 5 stars0 ratingsExpertentipps zu Angular: Neuerungen in Angular 6, Umgang mit Microservices, Performanz und UX-Design Rating: 0 out of 5 stars0 ratingsJavaFX Rendering & 3D Rating: 0 out of 5 stars0 ratingsJava – die Neuerungen in Version 9 bis 12: Modularisierung, Syntax- und API-Erweiterungen Rating: 0 out of 5 stars0 ratingsJava 7: Fork-Join-Framework und Phaser Rating: 0 out of 5 stars0 ratingsDependency Injection in Java: Testing mit CDI-Unit und DI-Frameworks Rating: 0 out of 5 stars0 ratings
Programming For You
Die ultimative FRITZ!Box Bibel - Das Praxisbuch 2. aktualisierte Auflage - mit vielen Insider Tipps und Tricks - komplett in Farbe Rating: 0 out of 5 stars0 ratingsNew Game Plus: Perspektiven der Game Studies. Genres - Künste - Diskurse (Bild und Bit. Studien zur digitalen Medienkultur) Rating: 0 out of 5 stars0 ratingsHacken mit Python und Kali-Linux: Entwicklung eigener Hackingtools mit Python unter Kali-Linux Rating: 0 out of 5 stars0 ratingsPython | Schritt für Schritt Programmieren lernen: Der ultimative Anfänger Guide für einen einfachen & schnellen Einstieg Rating: 0 out of 5 stars0 ratingsPython programmieren lernen: Der spielerische Einstieg mit Minecraft Rating: 0 out of 5 stars0 ratingsTraumjob IT 2021: Branchenüberblick, Erfahrungsberichte und Tipps zum Berufseinstieg Rating: 5 out of 5 stars5/5Raspberry Pi: Einstieg • Optimierung • Projekte Rating: 5 out of 5 stars5/5Python-Grundlagen Rating: 0 out of 5 stars0 ratingsHTML5-Programmierung von Kopf bis Fuß: Webanwendungen mit HTML5 und JavaScript Rating: 0 out of 5 stars0 ratingsProgrammieren lernen mit Python 3: Schnelleinstieg für Beginner Rating: 0 out of 5 stars0 ratingsEigene Spiele programmieren – Python lernen: Der spielerische Weg zur Programmiersprache Rating: 0 out of 5 stars0 ratingsSQL – kurz & gut Rating: 0 out of 5 stars0 ratingsPython lernen – kurz & gut Rating: 0 out of 5 stars0 ratingsMicrocontroller für das IoT Rating: 0 out of 5 stars0 ratingsSoftwareentwicklungsprozess: Von der ersten Idee bis zur Installation Rating: 0 out of 5 stars0 ratingsMikrocontroller in der Elektronik: Mikrocontroller programmieren und in der Praxis einsetzen Rating: 0 out of 5 stars0 ratingsRaspberry Pi: Mach's einfach: Die kompakteste Gebrauchsanweisung mit 222 Anleitungen. Geeignet für Raspberry Pi 3 Modell B / B+ Rating: 0 out of 5 stars0 ratingsDas große Python3 Workbook: Mit vielen Beispielen und Übungen - Programmieren leicht gemacht! Rating: 4 out of 5 stars4/5Algorithmen: Grundlagen und Implementierung Rating: 0 out of 5 stars0 ratingsVue.js für alle: Wissenswertes für Einsteiger und Experten Rating: 0 out of 5 stars0 ratingsProgrammieren für Einsteiger: Teil 1 Rating: 0 out of 5 stars0 ratingsBash kurz & gut Rating: 0 out of 5 stars0 ratingsC++: Eine kompakte Einführung Rating: 0 out of 5 stars0 ratingsGit kurz & gut Rating: 0 out of 5 stars0 ratingsDocker: Webseiten mittels Containerarchitektur erstellen Rating: 3 out of 5 stars3/5Python kurz & gut: Für Python 3.x und 2.7 Rating: 3 out of 5 stars3/5Android-Programmierung kurz & gut Rating: 0 out of 5 stars0 ratings.NET-Praxis: Tipps und Tricks zu .NET und Visual Studio Rating: 0 out of 5 stars0 ratingsSQL von Kopf bis Fuß Rating: 4 out of 5 stars4/5
Reviews for Sprachenkompendium
0 ratings0 reviews
Book preview
Sprachenkompendium - Frank Hinkel
GmbH
1 Ceylon auf der JVM und Node.js
Das Ceylon-Projekt ist eine Entwicklung von Fans des Java-Ökosystems, die besonders dessen Entwicklercommunity, praktische Orientierung, Kultur der Offenheit und Einsatz für Portabilität wertschätzen. Die rund fünfzehn Jahre alte Sprache Java an sich ist jedoch für das Ceylon-Team Grund genug gewesen, eine Alternative zu erstellen. Das große Ziel ist es also, aufzuräumen und zu vereinfachen, um für aktuelle Anwendungsfälle ausgerüstet zu sein. Dabei sollen sich Entwickler nicht in der Anwendung von Frameworks verlieren und gleichzeitig wieder Spaß beim Coden haben.
Ceylon verfolgt keinen spezifischen Anwendungsfall, sondern versteht sich als vielseitig einsetzbares Werkzeug. Syntaktisch lehnt sich Ceylon an C# und Java an. Dementsprechend sollte für viele Entwickler die Einarbeitung tendenziell einfacher sein. Rein formal lässt sich Ceylon wie folgt klassifizieren: imperativ, statisch typisiert, block-strukturiert, objektorientiert, höhere Ordnung. Das statische Typsystem wird in Ceylon besonders ernst genommen und könnte den Freunden von untypisierten Sprachen eventuell noch weniger Freude bereiten als in Java. Die strikte Typsicherung hebt den Nutzen von Typisierung allerdings auch hervor und könnte somit wiederum auch für Gegner des lückenhaften Typsystems von Java interessant werden. Die höhere Ordnung beschreibt ein Phänomen, welches aus funktionalen Sprachen oder den Neuerungen aus Java 8 bekannt ist. Gemeint ist damit, dass jedes Element der Sprache wie beispielsweise Attribute oder Operationen ebenfalls als Werte repräsentiert werden und auch darüber im Zugriff stehen.
Noch plattformunabhängiger
Mögliche Laufzeitumgebungen für Ceylon können die Java Virtual Machine (JVM) oder jede beliebige JavaScript Virtual Machine sein, beispielsweise ein Browser oder die Node.js-Plattform. Dabei ist Ceylon-Code bezogen auf Java- und JavaScript-Code bidirektional interoperabel. Die Verbindung von Java und Ceylon übernimmt der Ceylon-Compiler, welcher Java kompilieren kann, Ceylon-Code aufruft und vice versa. Die Integration mit JavaScript ermöglicht auch hier ein Compiler, welcher die Umwandlung von Ceylon-Modulen in JavaScript-Code übernimmt. Für die andere Richtung unterstützt Ceylon einen speziellen Modus, in dem native JavaScript-Funktionen aufgerufen werden können. Als gemeinsame Basis für die JVM und JavaScript stellt Ceylon ein SDK zur Verfügung, das die Kernmodule in beiden Varianten bereitstellt. In Listing 1.1 ist die Verwendung eines einfachen Node.js-HTTP-Servers dargestellt. Innerhalb der Request-Verarbeitung wird myCelon.run() ausgeführt. MyCeylon ist an dieser Stelle eine Referenz auf von Ceylon-kompilierten JavaScript-Code (nodeceylon-1.0.0.js).
var http = require('http');
var myCeylon = require('./nodeceylon-1.0.0.js');
http.createServer(function (req, res) {
res.end(Hallo,
+ myCeylon.run());
}).listen(1337, '127.0.0.1');
Listing 1.1
Zur Kompilierung der JavaScript-Datei wurde das Ceylon-Kommandozeilentool verwendet, wie es hier dargestellt ist:
$ ceylon compile-js –source=. nodeceylon
nodeceylon ist dabei ein einfaches Ceylon-Modul, welches mindestens eine öffentliche Top-Level-Operation besitzen muss. Zum Darstellen der Interoperabilität wurde ein einfacher String-Wert zurückgegeben:
shared String run() {
return(Ceylon!
);
}
Die Ausgabe des Servers ist entsprechend Hallo, Ceylon!, wobei der letzte Teil des Strings aus einer zu JavaScript kompilierten Ceylon-Operation kam.
Feingranulare Modularisierung
Bei der Entwicklung