Introducing haXe

A
Introducing haXe
 Software Freedom Day HK 2011


         Andy Li
     blog.onthewings.net
what is haXe?

● opensource
● programming language
● compiler
● multi-target! compiling to:
   ○ Flash(swf)
   ○ AS3
   ○ JS
   ○ PHP
   ○ C++
   ○ Neko
   ○ Java
   ○ C#                         demo: HaXenstein
haXe programming language

Test.hx




 ● ECMAScript-like
     ○ similar to AS3/JS
 ● type system: strong + dynamic
 ● OOP (and FP!)
haXe programming language

Test.hx




 ● type inference
 ● iterator
 ● generic type
haXe programming language

● inlining
● enum
● metadata
● macros
● remoting
● ORM (SPOD)
● ...
haXe tools

● haXe compiler
   ○ VERY fast
   ○ code-completion API for IDE integration
● haxelib
   ○ opensource library packaging tool
   ○ eg. haxelib install project-name
haXe libraries
NME

http://www.haxenme.org/
haxelib install nme

 ● Neko Media Engine
 ● Flash-API for C++/Neko target
 ● desktop
    ○ Windows
    ○ Mac
    ○ Linux
 ● mobile
    ○ iOS
    ○ Android
    ○ WebOS
Jeash

http://jeash.com/
haxelib install jeash

 ● Flash-API for JS target
 ● using HTML5 (canvas)
hxOpenFrameworks

http://github.com/andyli/hxOpenFrameworks
haxelib install hxOpenFrameworks

 ● openFramework binding for C++ target
 ● for creative coding, eg. generative art, installation art
 ● desktop only at the moment
     ○ Windows
     ○ Mac
     ○ Linux
HxSL




● haXe Shader Language
● using haXe macros & metadata
● compiles to AGAL for Flash 11
● probably compiles to GLSL/HLSL soon
● HxSL Studio
FAQ
performance?

● Evaluating spritesheet animations on mobile
  NME(haXe/C++) vs Corona(Lua) vs Flash/Air(AS3)
● Multi-Language-Bench
  haXe/C++ vs C++ vs Java
● AS3 vs haXe performance
  benchmark with animated fractal
● More HTML5 & HaXe Speed Tests
  haXe/JS is faster than plain JS!?
target platform libraries?

 ● Flash
    ○ RobotLegs (RobotHaxe)
    ○ GTween (GTweenHX)
    ○ Actuate
    ○ Flixel (Flixel-Haxe / HaxeFlixel)
    ○ FlashPunk (HaxePunk)
    ○ CasaLib (CasaHx)
 ● C++
    ○ wxWidgets(waxe)
target platform libraries?

 ● JS
    ○ jQuery (both as 3rd party and core)
    ○ Dojo Toolkit (bdog-dojo)
    ○ Modernizr (haXe-modernizr)
    ○ Node.js (bdog-node)
    ○ Titanium (desktop / mobile)
    ○ RaphaëlJS (raphaelExtern)
IDE?

● FlashDevelop




● FDT




● more...
community?

● mailing list
    ○ top haXe devs
● Twitter
    ○ #haxe
● blogs
    ○ a list of them
    ○ haXe roundup
Question?
1 of 18

More Related Content

What's hot(9)

Comparing C and GoComparing C and Go
Comparing C and Go
Marcin Pasinski35 views
Go bei der 4Com GmbH & Co. KGGo bei der 4Com GmbH & Co. KG
Go bei der 4Com GmbH & Co. KG
Jonas Riedel120 views
DoxygenDoxygen
Doxygen
Doug Schuster2K views
Introduce native clientIntroduce native client
Introduce native client
Young-Ho Cha793 views
MustacheMustache
Mustache
Infinity Levels Studio1.7K views

Recently uploaded(20)

CXL at OCPCXL at OCP
CXL at OCP
CXL Forum203 views
Liqid: Composable CXL PreviewLiqid: Composable CXL Preview
Liqid: Composable CXL Preview
CXL Forum120 views
The Research Portal of Catalonia: Growing more (information) & more (services)The Research Portal of Catalonia: Growing more (information) & more (services)
The Research Portal of Catalonia: Growing more (information) & more (services)
CSUC - Consorci de Serveis Universitaris de Catalunya59 views
METHOD AND SYSTEM FOR PREDICTING OPTIMAL LOAD FOR WHICH THE YIELD IS MAXIMUM ...METHOD AND SYSTEM FOR PREDICTING OPTIMAL LOAD FOR WHICH THE YIELD IS MAXIMUM ...
METHOD AND SYSTEM FOR PREDICTING OPTIMAL LOAD FOR WHICH THE YIELD IS MAXIMUM ...
Prity Khastgir IPR Strategic India Patent Attorney Amplify Innovation24 views
[2023] Putting the R! in R&D.pdf[2023] Putting the R! in R&D.pdf
[2023] Putting the R! in R&D.pdf
Eleanor McHugh36 views

Introducing haXe