Haxe

Haxe
Paradigma moniparadigma
Tyypitys vahva, dynaaminen
Yleinen suoritusmalli käännettävä
Muistinhallinta roskienkeruu
Julkaistu 2005
Kehittäjä Nicolas Canasse
Vaikutteet Actionscript, OCaml, Java
Verkkosivu haxe.org

Haxe on useassa ympäristössä toimiva ohjelmointikieli[1], jonka kääntäjä voi tuottaa useita yleisessä käytössä olevia ohjelmointikieliä. Sen mahdollisia kohteita ovat mm. seuraavat:

  • Flash-sovellukset
  • Asiakaspuolen websovellukset
  • Apachen CGI-sovellukset
  • Omillaan toimivat työpöytäsovellukset.

Haxen kehitys alkoi 22.10.2005. Versio 1.0 julkaistiin 17.4.2006 ja versio 2.0 julkaistiin 28.7.2008.


Viimeisin versio 3.4.0-rc.1 on julkaistu 30.11.2016.

Käännöskohteet

[muokkaa | muokkaa wikitekstiä]

Haxe-kielisiä ohjelmia voi kääntää useissa eri virtuaalikoneissa suoritettaviksi kieliksi, sekä natiivikoodiksi käännettäviksi kieliksi kuten C++. Versio 3.3.0 tukee seuraavia käännöskohteita:

  • Flash 6-8
  • Flash 9-10
  • Neko
  • PHP
  • Actionscript 3
  • Java
  • JavaScript
  • C++
  • C#
  • Python
  • Lua

Suositeltuja Ohjelmointiympäristöjä

[muokkaa | muokkaa wikitekstiä]

Suosituimpia ja helppokäyttöisimpiä ohjelmointiympäristöjä ovat:

Kielen ominaisuudet

[muokkaa | muokkaa wikitekstiä]

Haxe muistuttaa ActionScript- ja JavaScript-kieliä, mutta sisältää muitankin ominaisuuksia. Se on olio-ohjelmointikieli, jossa on poikkeuksia. Sen tyyppimalla on vahva tyypitys, joka kuitenkin mahdollistaa dynaamisten tyyppien käytön. Kielessä on hyvä tuki geneerisyydelle, reflektiolle ja funktionaaliselle ohjelmoinille.

Enumeroidut tyypit ovat merkittävässä asemassa haxe-kielessä. Niillä voi olla parametrejä ja ne voivat olla rekursiivisia, joten ne muistuttavat esim. Haskell- ja ML-kielten algebrallisia tietotyyppejä.

    enum Color {
        red;
        green;
        blue;
        rgb: ( r : Int, g : Int, b : Int );
    }
 
    class Colors {
        static function toInt ( c : Color ) : Int {
            return switch ( c ) {
                case red: 0xFF0000;
                case green: 0x00FF00;
                case blue: 0x0000FF;
                case rgb(r, g, b): (r << 16) | (g << 8) | b;
            }
        }
        static function validCalls() {
             var redint = toInt(Color.red);
             var rgbint = toInt(Color.rgb(100,100,100));            
        }
    }

(muokattu haxe-oppaan pohjalta)

  1. Haxe: Cross-platform Development's Best-kept Secret | Toptal® Toptal Engineering Blog. Viitattu 17.8.2023. (englanniksi)