3. Type Inference / Strict Typed
var i;
$type(i); // Unknown(0)
i = 1;
$type(i); // Int
i = "test"; // Error: String should be Int
4. Haxe als Programmiersprache
● Klassisch OO, ähnlich Java oder ActionScript3
● Strict Typed / Type inference
● Packages
● Generics
5. Generics
class SomeClass<T> {
public arr:Array<T>;
public function new() {
arr = new Array();
}
}
var instance = new SomeClass<Sprite>();
$type(instance.arr) // Array<flash.display.Sprite>
6. Haxe als Programmiersprache
● Klassisch OO, ähnlich Java oder ActionScript3
● Strict Typed / Type inference
● Packages
● Generics
● Inlining
● Enums
8. Haxe als Programmiersprache
● Klassisch OO, ähnlich Java oder ActionScript3
● Strict Typed / Type inference
● Packages
● Generics
● Inlining
● Enums
● Macros
9. Macros
class Test {
macro public static function getBuildDate() {
var date = Date.now().toString();
return Context.makeExpr(date, Context.currentPos());
}
static function main() {
trace(getBuildDate());
}
}
10.
11. Haxe als Programmiersprache
● Klassisch OO, ähnlich Java oder ActionScript3
● Strict Typed / Type inference
● Packages
● Generics
● Inlining
● Enums
● Macros
● SPOD Macros
● Unit Testing
● Externs
● usw.
12. Aufbau
● Sprache für alle Plattformen gleich
● Großes Paket an Standardbibliotheken (XML, Math, Crypto,
Datastructures, usw.)
● Plattformspezifische APIs (JS->DOM, AS->DisplayList usw.)
16. Haxe Workflow - Grafik
Kein definierter "Workflow". Hängt von der Zielplattform ab,
prinzipiell kann jedes Tool benutzt werden.
17. Haxe Workflow - Debugging
Flash
Flash Debugger notwendig, dann geht das mit jedem
Debugger/Profiler
Javascript
Generierung von Sourcemaps
C++
HXCPP Debugger (z.B. mit IntelliJ)
18. Ressourcen & Doku
● API auf haxe.org/api
● Hauptfeatures sind gut dokumentiert auf: haxe.org/doc
21. Schwächen
● Keine eigene Zielplattform
● Extrem schnelle Entwicklung
● Mangelhafter MAC Support (IDE)
● Aktuell keine plattformunabhängige 3D-Engine
22. Stärken
● Keine eigene Zielplattform
● Extrem schnelle Entwicklung
● Open-Source
● AS3 wie es sein sollte
● haxelib (Librarymanagement)
25. NME im Vergleich zu "purem" Haxe
NME stellt fast alle AS3 Pakete für sämtliche Zielplattformen zur
Verfügung (z.B.: nme.display.*)
Im Vergleich zu Haxe muss nicht für jede Zielplattform individueller
Code zur grafischen Anzeige geschrieben werden.
26. NME Workflow
Eigenes Paket an Kommandozeilentools
● nme setup xy
● nme test
● nme build
Eigenes Build-File-Format
Damit auch Zertifikate, ganze Ordner mit Assets etc. mit
eingebunden werden können.
27. NME
Stärken
● Auf jeder Plattform die gleiche API
● Kommandozeilentools
Schwächen
● Overhead
● Kleiner Entwicklerstamm
● Viele Features leider nur 90%
31. Genome2D
● "Increased performance up to 400% in some cases but whats
more at least 100% so basically everything I tried yet was
atleast 2 times faster than the AS3 version"
● "There are 4 targets at the moment that I am working on 2 flash
targets (bitmap/stage3D) and 2 JS targets (canvas/webgl).
Thinking about C target as well but we'll see."
http://forum.genome2d.com/viewtopic.php?f=4&t=19