next generation java - exxcellent solutions · 2015-02-10 · ein blick auf die .net plattform l l...
TRANSCRIPT
![Page 1: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/1.jpg)
Next Generation Java Ceylon, Kotlin, Scala & Fantom im Überblick
Autor: dogmadic : http://www.sxc.hu/photo/436457
http://www.sxc.hu/photo/36128
![Page 2: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/2.jpg)
Disclaimer
Next Generation JVM Languages 2 |
Java
![Page 3: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/3.jpg)
Überblick
Next Generation JVM Languages 3 |
3.
![Page 4: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/4.jpg)
Überblick
Next Generation JVM Languages 4 |
3.
![Page 5: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/5.jpg)
Ist Java das neue Cobol?
–
–
–
–
–
Next Generation JVM Languages 5 | http://www.sxc.hu/photo/1389360
![Page 6: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/6.jpg)
Ein BLick auf die .NET Plattform
l
l
–
–
l
–
–
–
–
–
Next Generation JVM Languages 6 |
![Page 7: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/7.jpg)
The JVM at a glance
l
l
–
–
–
–
l
–
–
–
Next Generation JVM Languages 7 |
![Page 8: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/8.jpg)
Das Java- Universum
Next Generation JVM Languages 8 |
![Page 9: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/9.jpg)
3.
Überblick
Next Generation JVM Languages 9 |
![Page 10: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/10.jpg)
Warum neue JVM Sprachen?
Next Generation JVM Languages 10 |
![Page 11: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/11.jpg)
Next Generation JVM Languages 11 |
Beginning Buzz-Word Bingo….
http://www.sxc.hu/photo/377913
![Page 12: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/12.jpg)
Warum neue JVM Sprachen?
Next Generation JVM Languages 12 |
![Page 13: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/13.jpg)
Von Lambdas und „1. Klasse“-Rechnen
Next Generation JVM Languages 13 |
![Page 14: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/14.jpg)
Imperativ vs. Funktional: Beispiel #1 Quicksort
Next Generation JVM Languages 14 |
public void quicksort(int array[]) {
quicksort(array, 0, array.length - 1);
}
public void quicksort(int array[], int start, int end){
int i = start;
int k = end;
if (end - start >= 1) {
int pivot = array[start];
while (k > i) {
while (array[i] <= pivot && i <= end && k > i) i++;
while (array[k] > pivot && k >= start && k >= i) k--;
if (k > i) swap(array, i, k);
}
swap(array, start, k);
quicksort(array, start, k - 1);
quicksort(array, k + 1, end);
} else {
return;
}
}
public void swap(int array[], int index1, int index2) {
int temp = array[index1];
array[index1] = array[index2];
array[index2] = temp;
}
![Page 15: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/15.jpg)
public void quicksort(int array[]) {
quicksort(array, 0, array.length - 1);
}
public void quicksort(int array[], int start, int end){
int i = start;
int k = end;
if (end - start >= 1) {
int pivot = array[start];
while (k > i) {
while (array[i] <= pivot && i <= end && k > i) i++;
while (array[k] > pivot && k >= start && k >= i) k--;
if (k > i) swap(array, i, k);
}
swap(array, start, k);
quicksort(array, start, k - 1);
quicksort(array, k + 1, end);
} else {
return;
}
}
public void swap(int array[], int index1, int index2) {
int temp = array[index1];
array[index1] = array[index2];
array[index2] = temp;
}
Imperativ vs. Funktional: Beispiel #1 Quicksort
Next Generation JVM Languages 15 |
![Page 16: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/16.jpg)
Imperativ vs. Funktional: Beispiel #2
Next Generation JVM Languages 16 |
int sum = 0;
for (int i = 0; i < 150; i++)
{
if (i % 5 != 0)
sum += i;
}
int sum = Enumerable.Range(0, 150).Where(i => i % 5 != 0).Sum();
f1( f2( f3( f4())))
![Page 17: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/17.jpg)
Objektorientierte vs. Funktionale Programmierung
Next Generation JVM Languages 17 |
OOP
Sammlung von Objekten
Zustandsbehaftet
Iterativ
Imperativer Ablauf
F P
Sammlung von Funktionen
Zustandlos & Unveränderlich
Rekursiv
Auswertung: Lazy
![Page 18: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/18.jpg)
Warum neue JVM Sprachen?
Next Generation JVM Languages 18 |
![Page 19: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/19.jpg)
Dynamic Typing
Next Generation JVM Languages 19 | Practically Groovy: Building, parsing, and slurping XML
http://www.ibm.com/developerworks/java/library/j-pg05199/
Parsen und
Auflisten der Daten
![Page 20: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/20.jpg)
import org.xml.sax.SAXException;
import org.w3c.dom.*;
import javax.xml.parsers.*;
import java.io.IOException;
public class ParseXml {
public static void main(String[] args) {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
try {
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse("src/languages.xml");
//print the "type" attribute
Element langs = doc.getDocumentElement();
System.out.println("type = " + langs.getAttribute("type"));
//print the "language" elements
NodeList list = langs.getElementsByTagName("language");
for(int i = 0 ; i < list.getLength();i++) {
Element language = (Element) list.item(i);
System.out.println(language.getTextContent());
}
}catch(ParserConfigurationException pce) {
pce.printStackTrace();
}catch(SAXException se) {
se.printStackTrace();
}catch(IOException ioe) {
ioe.printStackTrace();
}
}
}
Dynamic Typing
Next Generation JVM Languages 20 | Practically Groovy: Building, parsing, and slurping XML
http://www.ibm.com/developerworks/java/library/j-pg05199/
Parsen und
Auflisten der
Daten
![Page 21: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/21.jpg)
def langs = new XmlParser().parse("languages.xml")
println "type = ${langs.attribute("type")}"
langs.language.each{
println it.text()
}
Dynamic Typing
Next Generation JVM Languages 21 | Practically Groovy: Building, parsing, and slurping XML
http://www.ibm.com/developerworks/java/library/j-pg05199/
Parsen und
Auflisten der
Daten
![Page 22: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/22.jpg)
Warum neue JVM Sprachen?
Next Generation JVM Languages 22 |
![Page 23: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/23.jpg)
List<String> languages = new LinkedList<String>();
languages.add("Java");
languages.add("Ruby");
languages.add("Python");
languages.add("Perl");
Schlankere Syntax : Listen befüllen
Next Generation JVM Languages 23 | Practically Groovy: Building, parsing, and slurping XML
http://www.ibm.com/developerworks/java/library/j-pg05199/
stuff = []
stuff << "Java", "Ruby", "Python"
![Page 24: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/24.jpg)
Class Circle
private Coordinate center, float radius;
public void setCenter(Coordinate center){
this.center = center;
}
public Coordinate getCenter(){
return center;
}
public void setRadius(float radius){
this.radius = radius;
}
public Coordinate getRadius(){
return radius;
}
}
Schlankere Syntax : Getter/Setter
Next Generation JVM Languages 24 | Practically Groovy: Building, parsing, and slurping XML
http://www.ibm.com/developerworks/java/library/j-pg05199/
class Circle
attr_accessor :center, :radius
end
![Page 25: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/25.jpg)
Warum neue JVM Sprachen?
Next Generation JVM Languages 25 |
![Page 26: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/26.jpg)
Warum neue JVM Sprachen?
Next Generation JVM Languages 26 |
![Page 27: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/27.jpg)
java.lang.NullPointerException at com.sun.tools.javac.comp.Check.checkCompatibleConcretes(Check.java:1141)
at com.sun.tools.javac.comp.Check.checkCompatibleSupertypes(Check.java:1495)
at com.sun.tools.javac.comp.Attr.attribClassBody(Attr.java:2451)
at com.sun.tools.javac.comp.Attr.attribClass(Attr.java:2406)
at com.sun.tools.javac.comp.Attr.attribClass(Attr.java:2355)
at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:444)
at com.sun.tools.javac.main.Main.compile(Main.java:592)
at com.sun.tools.javac.main.Main.compile(Main.java:544)
at com.sun.tools.javac.Main.compile(Main.java:67)
at com.sun.tools.javac.Main.main(Main.java:52)
Next Generation JVM Languages 27 |
![Page 28: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/28.jpg)
Die Null zügeln
l
l
Next Generation JVM Languages 28 |
![Page 29: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/29.jpg)
Warum neue JVM Sprachen?
Next Generation JVM Languages 29 |
![Page 30: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/30.jpg)
Domain Specific Languages
l
Next Generation JVM Languages 30 |
![Page 31: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/31.jpg)
Warum neue JVM Sprachen?
Next Generation JVM Languages 31 |
![Page 32: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/32.jpg)
Warum neue JVM Sprachen?
Next Generation JVM Languages 32 |
![Page 33: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/33.jpg)
Next Generation JVM Languages 33 |
![Page 34: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/34.jpg)
Alternativen zur Threads & Co.
l
–
–
–
l
–
–
Next Generation JVM Languages 34 | http://www.sxc.hu/photo/515995
![Page 35: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/35.jpg)
Warum neue JVM Sprachen?
Next Generation JVM Languages 35 |
![Page 36: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/36.jpg)
Warum neue JVM Sprachen?
Next Generation JVM Languages 36 |
![Page 37: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/37.jpg)
Scripting
l
–
l
–
–
–
Next Generation JVM Languages 37 |
![Page 38: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/38.jpg)
Warum neue JVM Sprachen?
Next Generation JVM Languages 38 |
![Page 39: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/39.jpg)
Meta-Programmierung
l
–
–
–
l
l
–
–
Next Generation JVM Languages 39 |
Programmen, die sich oder andere P. als Daten behandeln und verändert.
![Page 40: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/40.jpg)
Warum neue JVM Sprachen?
Next Generation JVM Languages 40 |
![Page 41: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/41.jpg)
Dynamic & Weak Typing
l
l
Next Generation JVM Languages 41 |
“A programming language is said to be dynamically typed when the majority
of its type checking is performed at run-time as opposed to at compile-time.
In dynamic typing values have types, but variables do not […]” https://en.wikipedia.org/wiki/Dynamic_typing#Dynamic_typing
[…] strong typing when it specifies one or more restrictions on how operations
involving values of different data types can be intermixed.
Weak typing means that a language implicitly converts (or casts) types when used. https://en.wikipedia.org/wiki/Dynamic_typing#Dynamic_typing
![Page 42: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/42.jpg)
Warum neue JVM Sprachen?
Next Generation JVM Languages 42 |
![Page 43: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/43.jpg)
Überblick
Next Generation JVM Languages 43 |
3.
![Page 44: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/44.jpg)
Auszug neuer JVM Sprachen
Next Generation JVM Languages 44 |
Inzwischen über 50-250 verschiedene Sprachen auf der JVM…
![Page 45: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/45.jpg)
Anforderungen für den Industriellen Einsatz
–
–
–
–
Next Generation JVM Languages 45 |
![Page 46: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/46.jpg)
[...] programming by larger groups of people or by smaller groups over
longer time periods [...] result in large, and hence complicated, programs
[...] place emphasis on partitioning work into modules with precisely-
specified interactions.
http://en.wikipedia.org/wiki/Programming_in_the_large_and_programming_in_the_small
Sprachen im industriellen Einsatz
–
–
Next Generation JVM Languages 46 |
![Page 47: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/47.jpg)
Auszug neuer JVM Sprachen
Next Generation JVM Languages 47 |
![Page 48: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/48.jpg)
Übersicht & Entwicklung JVM Sprachen
Next Generation JVM Languages 48 |
![Page 49: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/49.jpg)
Statisch-typisierte JVM Sprachen im Überblick
Next Generation JVM Languages 49 |
![Page 50: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/50.jpg)
Next Generation JVM Languages 50 |
http://www.flickr.com/photos/tonino62/2295302323/ .
![Page 51: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/51.jpg)
Scala im Portrait
Next Generation JVM Languages 51 |
l
–
![Page 52: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/52.jpg)
Scala im Portrait
Next Generation JVM Languages 52 |
l
–
l
–
–
![Page 53: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/53.jpg)
Traits & Mixins
trait Similarity {
def isSimilar(x: Any): Boolean
def isNotSimilar(x: Any): Boolean = !isSimilar(x)
}
Next Generation JVM Languages 53 |
![Page 54: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/54.jpg)
Extension Methods
l
l
Next Generation JVM Languages 54 |
![Page 55: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/55.jpg)
Scala & Ko-/Kontravarianz
Next Generation JVM Languages 55 | http://www.sxc.hu/photo/330223
TL;DR Too long; didn‘t read
![Page 56: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/56.jpg)
Scala im Portrait
Next Generation JVM Languages 56 |
l
–
l
–
–
l
–
–
![Page 57: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/57.jpg)
Scala - Implicit Conversion
Next Generation JVM Languages 57 |
object MainClass {
def main(args: Array[String]) {
val b : B = new A()
}
}
object A {
implicit def aToB(a: A) : B = {
new B()
}
}
![Page 58: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/58.jpg)
Next Generation JVM Languages 58 |
![Page 59: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/59.jpg)
Pattern Matching = Switch/Instanceof++
Next Generation JVM Languages 59 |
![Page 60: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/60.jpg)
Beherrschbarkeit?
Next Generation JVM Languages 60 |
http://bit.ly/LP2Spb
![Page 61: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/61.jpg)
Erfahrungen
l–
–
–
l–
–
–
Next Generation JVM Languages 61 |
![Page 62: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/62.jpg)
Erfahrungen
l–
–
–
l–
–
Next Generation JVM Languages 62 |
![Page 63: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/63.jpg)
JVM Sprachen im Überblick (Features)
Next Generation JVM Languages 63 |
![Page 64: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/64.jpg)
Scala Summary
l–
–
l
l––
–
Next Generation JVM Languages 64 |
![Page 65: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/65.jpg)
Next Generation JVM Languages 65 | http://www.sxc.hu/photo/366158
Fantom
![Page 66: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/66.jpg)
Fantom : Portabilität
l
l
–
–
–
Next Generation JVM Languages 66 |
„one portable system, graphics, and widget library
that just works everywhere”
![Page 67: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/67.jpg)
Fantom im Portrait
l
–
–
l
–
–
l
–
–
–
–
Next Generation JVM Languages 67 |
![Page 68: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/68.jpg)
Fantom : Quadratur der Kreise
l
l
l
obj.methode()
obj->methode()
l
l
Next Generation JVM Languages 68 |
![Page 69: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/69.jpg)
Fantom : Multi-Threading
–
–
–
Next Generation JVM Languages 69 |
![Page 70: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/70.jpg)
Fantom : Elegante APIs und Sprache
–
–
–
–
–
–
–
–
Next Generation JVM Languages 70 |
![Page 71: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/71.jpg)
Fantom Hello World (Webapp)
Next Generation JVM Languages 71 |
using util
using web
using wisp
class WebHello : AbstractMain
{
@Opt { help = "http port" }
Int port := 8080
override Int run()
{
wisp := WispService
{
it.port = this.port
it.root = HelloMod()
}
return runServices([wisp])
}
}
const class HelloMod : WebMod
{
override Void onGet()
{
res.headers["Content-Type"] =
"text/plain; charset=utf-8"
res.out.print("hello world #4")
}
}
![Page 72: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/72.jpg)
Fantom: Summary
l–
–
–
l
l–
–
–
Next Generation JVM Languages 72 |
![Page 73: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/73.jpg)
JVM Sprachen im Überblick (Features)
Next Generation JVM Languages 73 |
![Page 74: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/74.jpg)
Next Generation JVM Languages 74 |
http://bit.ly/LKM5YG
![Page 75: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/75.jpg)
Ceylon im Portrait
–
–
–
–
–
Next Generation JVM Languages 75 |
„Ceylon’s goal is to design the language that Java would have been
if its designers had been able to predict the future.”
![Page 76: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/76.jpg)
Ceylon: Code Example
Next Generation JVM Languages 76 |
doc "A component"
shared abstract class Component() {
OpenList<Callable<Void,Event>> observers =
OpenList<Callable<Void,Event>>();
shared void addObserver(void observe(Event event)) {
observers.append(observe);
}
shared void fire(Event event) {
for (void observe(Event event) in observers) {
observe(event);
}
}
}
![Page 77: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/77.jpg)
…bisschen Spannendes hat Ceylon aber schon…
l
l
l
Next Generation JVM Languages 77 | http://www.sxc.hu/photo/732192
![Page 78: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/78.jpg)
Nullables
Next Generation JVM Languages 78 |
![Page 79: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/79.jpg)
Von Typen mit und ohne Charakter
Next Generation JVM Languages 79 |
![Page 80: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/80.jpg)
Ceylon: Summary
l
l
–
–
–
–
–
–
Next Generation JVM Languages 80 |
![Page 81: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/81.jpg)
JVM Sprachen im Überblick (Features)
Next Generation JVM Languages 81 |
![Page 82: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/82.jpg)
Next Generation JVM Languages 82 | http://www.sxc.hu/photo/1339625
![Page 83: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/83.jpg)
Kotlin im Portrait
l
–
–
–
–
–
Next Generation JVM Languages 83 |
“General-purpose language intended for industrial use”
Kotlin = Java++ bzw. Scala--
![Page 84: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/84.jpg)
Kotlin Motivation & Hintergrund
l
–
–
–
–
Next Generation JVM Languages 84 |
“Although we’ve developed support for several JVM-targeted programming languages,
we are still writing all of our IntelliJ-based IDEs almost entirely in Java.
We want to become more productive by switching to a more expressive language.”
![Page 85: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/85.jpg)
Next Generation JVM Languages 85 |
![Page 86: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/86.jpg)
Kotlin Sprach-Features
–
–
Next Generation JVM Languages 86 |
![Page 87: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/87.jpg)
Kotlin Sprach-Features
l
l
Next Generation JVM Languages 87 |
interface Collection<E> ... {
void addAll(Collection<? extends E> items);
}
abstract class Source<out T> {
fun nextT() : T
}
fun fill(dest : Array<in String>, value : String) {
// ...
}
![Page 88: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/88.jpg)
Kotlin Sprach-Features
l
l
l
l
l
l
l
Next Generation JVM Languages 88 |
![Page 89: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/89.jpg)
Kotlin: Online Demo
Next Generation JVM Languages 89 |
![Page 90: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/90.jpg)
Kotlin Summary:
l
l
l
l
l
l
Next Generation JVM Languages 90 |
![Page 91: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/91.jpg)
JVM Sprachen im Überblick (Features)
Next Generation JVM Languages 91 |
![Page 92: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/92.jpg)
3.
Überblick
Next Generation JVM Languages 92 |
![Page 93: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/93.jpg)
Blick über den Tellerrand
Next Generation JVM Languages 93 | http://www.sxc.hu/photo/1167119/
![Page 94: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/94.jpg)
Resumee
Next Generation JVM Languages 94 | http://www.sxc.hu/photo/1022369
![Page 95: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/95.jpg)
Anforderungen für den Industriellen Einsatz
–
–
–
–
Next Generation JVM Languages 95 |
![Page 96: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/96.jpg)
Wertung JVM Sprachen für den Industrie-Einsatz
Next Generation JVM Languages 96 |
![Page 97: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/97.jpg)
Resumée
l
l
l
l
–
–l
l
l
–
Next Generation JVM Languages 97 |
![Page 98: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/98.jpg)
Next Generation JVM Languages 98 |
Resumée
![Page 99: Next Generation Java - eXXcellent solutions · 2015-02-10 · Ein BLick auf die .NET Plattform l l – – l – – – – – 6 | Next Generation JVM Languages](https://reader034.vdocuments.mx/reader034/viewer/2022042309/5ed68be6ff0e593c0b640c81/html5/thumbnails/99.jpg)
Next Generation JVM Languages 99 | Autor: woodleywonderworks
http://www.flickr.com/photos/wwworks/4759535950/
Weiterführende Information
Scala: http://www.scala-lang.org/
Ceylon: http://ceylon-lang.org/
Kotlin: http://blog.jetbrains.com/kotlin/
Kotlin Demo: http://kotlin-demo.jetbrains.com/
Fantom vs. Kotlin http://fantom.org/sidewalk/topic/1581
Gosu: http://gosu-lang.org/
Search for a better Java:
http://blog.joda.org/2011/07/kotlin-and-search-for-
better-java_9066.html