Budowanie aplikacji Adobe Flash/Flex bazuje na wbudowanym języku ActionScript. Nie jest to jednak jedyny język, który służy temu celowi. Możliwe jest programowanie aplikacji Flash/Flex za pomocą innych języków programowania, a następnie kompilowanie ich do zrozumiałych dla Flash Playera plików SWF.

Ciekawą alternatywą jest wykorzystanie języka haXe. Jest to open source’owy język programowania, przeznaczony do pisania aplikacji pracujących na kilku platformach, do których zaliczamy:

  • JavaScript
  • Flash ( Flash Player 6-9)
  • NekoVM
  • PHP

Nie stara się on rywalizować i walczyć z potentatami takimi jak Adobe czy M$ lecz adoptuje kolejne technologie dając programistom dużą elastyczność w budowani aplikacji internetowych. Posiada silne wsparcie spłeczności i jest dynamicznie rozwijany, adoptując kolejne ciekawe rozwiązania.

HaXe jest językiem zbudowanym z podstawowych bibliotek wbudowanych (np. XML czy Math) oraz dedykowanych do każdej z platform (np. flash). Jest to język obiektowy, posiadający silne typowanie. Posiada wbudowany system typowania wysokiego poziomu wspierający klasy, interfejsy, obiekty typu enum (zawierające jedynie definicje stałych) czy typy anonimowe(anonymous type).

Z punktu widzenia budowania aplikacji Flash ważne jest wsparcie dla testów jednostkowych. Dostępne są również liczne biblioteki flash’owe przygotowane do wykorzystania w haXe, z których najbardziej znane to Tweener czy Papervision 3D.

Możliwe jest również budowanie aplikacji desktopowych przy użyciu ScreenweaverHX. Budowanie aplikacje bazuje na tworzeniu dwóch poziomów:

  • systemowego - pisanego w haXe i bazującego na Neko API, pozwala na uzyskanie dostępu do lokalnego systemu plików czy bazy danych
  • flashowego - opartego na plikach SWF, odpowiedzialnego za GUI aplikacji czy odtwarzanie multimediów.

Aplikacje rozprowadzane są jaki odpowiedni zbiór plików i możliwe do uruchomienia na platformach Windows i Mac.

Aby rozpocząć pracę z językiem haXe polecam przeglądnąć przykłady oraz dokumentację zawartą na oficjalnej stronie języka. Ciekawe są również artykuły blackdog’a oraz poruszony przy okazji upadku ES4 wpis Johna Grden’a mówiąc o tym, że Adobe może poważnie rozważać adobtowanie haXe’a.

Mozilla prowadzi projekt pod nazwą IronMonkey, którego celem jest zmapowanie IronPython (implementacji Python’a dla .net) oraz IronRuby (implementacja Ruby dla .net) do Virtualnej maszyny Tamarin (która jest częscią AVM). Niestety nie doszukałem się bardziej konkretnych informacji dotyczących projektu ale bardzo ciekawie sie zapowiada.

Inną alternatywą jest projekt HotRuby, który wprowadza wsparcie do pisania w Ruby aplikacji Flashow’ych i JavaScirpt’owych. Przykłady zaprezentowane na stronie projektu robią wrażenie. Na stronie znajduje się również dokumentacja projektu.

Wprowadzenie możliwości kompilowania innych niż AS języków do postaci pliku SWF jest dla Adobe bardzo ważne, gdyż pozwoli pozyskać liczną grupę developerów i zmniejszy w tym aspekcie dystans do głównego konkurenta czyli SilverLight’a. Co więcej kusząca jest perspektywa używania jednego języka do implementowania zarówno serwerowej jak i klienckiej części aplikacji. Przyszłość pokaże jak potoczą się przyszłe losy technologii internetowych. Z pewnością warto jednak spoglądać na nie szeroko i dostrzegać alternatywne rozwiązania.