Możliwości Haxe
Poniżej niepełna lista właściwości Haxe, która może służyć do szybkiego przeglądu możliwości języka.
Wspierane platformy
Po stronie klienta wspierane są następujące platformy.
- Kompilacja do JavaScriptu tworzy pojedynczy plik
.js- interaktywny debugger działający bezpośrednio na kodzie Haxe dzięki JS Source-Mapping (
-debugw Haxe 2.09+) - redukcja rozmiaru generowanych plików dzięki
--dead-code-elimination
- interaktywny debugger działający bezpośrednio na kodzie Haxe dzięki JS Source-Mapping (
- Kompilacja do kodu źródłowego C++ który następnie kompilowany jest do natywnych plików binarnych
- pozwala na tworzenie aplikacji dla iOS, Android i innych platform mobilnych
- przykładem wartym zobaczenia jest NME
- Kompilacja do Flasha generuje plik
.swf, który zwykle działa szybciej niż stworzony w AS3 dzięki zaawansowanym optymalizacją- korzystaj z interaktywnego debuggera w swoim IDE (jeżeli na to pozwala) korzystając z
-debug -D fdb - może kompilować do SWC i importować biblioteki SWF (stworzone w IDE lub zewnętrznych źródeł)
- może kompilować się do kodu źródłowego AS3
- korzystaj z interaktywnego debuggera w swoim IDE (jeżeli na to pozwala) korzystając z
Haxe można wykorzystać również po stronie serwera, co pozwala na współdzielenie kodu i lepszą komunikację:
- Kompilacja do NodeJS i innych serwerowych technologii opartych o JavaScript
- Kompilacja do PHP 5 umożliwia łatwe hostowanie aplikacji
- Kompilacja do NekoVM tworzy pojedynczy plik
.n- mała maszyna wirtualna o wysokiej wydajności i małe wymagania (więcej)
- może być uruchamiany z linii poleceń lub na serwerze Apache (z mod_neko lub mod_tora)
- Wbudowany zaawansowany ORM o nazwie SPOD Macros
Właściwości języka
Poniżej lista niektórych cech języka Haxe. Wszystkie są sprawdzane pod kątem identycznego działania na wszystkich wspieranych platformach z wykorzystaniem dużej ilości testów jednostkowych.
- Klasyczny model Programowania Objektowego opartego o klasy (
class+interface, podobnie do Javy) (więcej) - Silnie typowany ale wspierający Dynamic
- Pakiety i moduły
- Typy generyczne (parametry typów) z jednym lub wieloma ograniczeniami ale bez wariancji variance
- Zaawansowana inferencja typów dla wszystkich zmiennych, argumentów metod i zwracanych wartości (nie dotyczy zmiennych klasy)
- Anonimowe struktury z polimorfizmem
- Polimorficzne metody (parametry typów dla pojedynczych metod), bez wsparcia ograniczeń
- Opcjonalne wartości argumentów metod ze stałymi domyślnymi wartościami
- Metody Inline i stałe inline
- Deklaracje lokalnych funkcji z obsługą
this - Automatyczne tworzenie domknięć
- Potężne typy wyliczeniowe (
enum) (z parametrami konstruktora) - Brak instrukcji : tylko wyrażenia
- Wyjątki (try/catch)
- Metadata
- Częściowe wywołanie funkcji z użyciem
callback - Getter/Setter, rozbudowane wsparcie (więcej)
- Iniekcja method z użyciem domieszek "using" mixin
- Kompilacja warunkowa
- Iteratory
Więcej informacji o różnych właściwościach języka możesz znaleźć w Haxe Language Reference
Biblioteka standardowa
Haxe dostarczane jest z rozbudowaną wieloplatformową biblioteką standardową dającą dostęp m.in. do:
- Podstawowych typów : Int, Float, Bool, Void
- Std do typowych konwersji
- Pracę z łańcuchami znaków z użyciem klas String, StringTools, StringBuf i klas UTF8
- Kontenerów Array, List, Hash i IntHash
- Klas do obsługi dat - Date i DateTools
- Funkcji matematycznych Math
- Wyrażeń regularnych
- Funkcyjnego api Lambda dla iteratorów
- Mechanizm refleksji (klasy Reflect i Type)
- Serializację (Serializer i Unserializer) do otwartego formatu
- Parser Using Xml z łatwym dostępem z użyciem klasy Fast i walidacją
- Dostęp do Metadanych w trybie uruchomieniowym
- Zewnętrzne pliki zasobów
- Wsparcie Testów jednostkowych
- Zapytania / odpowiedzi Http
- Klasy Int32 i Int64
- Bufory binarne Bytes
- Abstrakcyjne strumienie wejścia (Input) i wyjścia (Output)
- SPOD ORM ze sprawdzaniem typów podczas kompilacji i generowaniem SQL-a
- Komunikacja między platformami z wykorzystaniem Haxe Remoting Tutorials
- Mapowanie adresów URL (Web Dispatcher)
- .... i wiele innych