You are on page 1of 4

Haxe

Haxe es un lenguaje de programación multiplataforma de alto


nivel, de código abierto y compilador que puede producir código
Haxe
fuente para distintas plataformas desde un único código fuente. El
código escrito en Haxe puede ser compilado a código fuente en
Adobe Flash, Javascript, Lua, Python, C++, C#, Hashlink,3 Java y
Neko (creado por el mismo desarrollador) y de lado del servidor en
PHP,4 Apache CGI y Node.js.

Haxe incluye un conjunto de funcionalidades comunes que son


compatibles con todas las plataformas, como tipos de datos Desarrollador(es)
numéricos, texto, arrays, binarios y otros formatos de archivos Nicolas Cannasse
comunes. Haxe también incluye APIs exclusivas de las haxe.org
plataformas, pero a partir de 2012, sólo admite un subconjunto de Información general
las funciones disponibles en cada plataforma, y solo la API de Extensiones .hx
Flash es totalmente utilizable. comunes
Paradigma Multiparadigma
Haxe fue desarrollado por Nicolas Cannasse y otros
colaboradores,5 y fue llamado Haxe porque era corto, simple, y Apareció en 2005
con una X dentro, que el autor afirma con humor que es necesario Última versión 3.4.21 (20 de abril de 2017 (1 año, 5
para que una nueva tecnología tenga éxito. Haxe se pronuncia estable meses y 6 días))

"hex" (/heks/) aunque los autores de un libro publicado lo Sistema de Estático


pronuncian "hacks". tipos
Influido por ActionScript,

OCaml
Índice
Sistema Multiplataforma
Arquitectura operativo
Soporte de la plataforma Licencia Compilador: GPLv2+
Soporte total
Soporte parcial
Biblioteca estándar: MIT2
Lenguaje [editar datos en Wikidata]
Véase también
Referencias
Enlaces externos

Arquitectura
El desarrollo de Haxe empezó en octubre de 2005 y la primera versión beta salió en febrero de 2006. Haxe 1.0 salió en abril de 2006,
que soporta aplicaciones de Adobe Flash.

Haxe es el sucesor de código abierto de ActionScript 2 compilador MTASC, también creado por Nicolas Canesse, y está liberado
bajo Licencia Pública General de GNU versión 2. Haxe tiene mucho en común con ActionScript 3. El compilador de Haxe está
desarrollado en el lenguajeOCaml. No es necesario saber OCaml para desarrollar aplicaciones en Haxe.

El compilador de Haxe es un compilador optimizado, y contiene las siguientes características de optimización:


Funciones de expansión en línea
Plegado constante
Eliminación de código muerto
El rendimiento de apliaciones desarrolladas en Haxe depende de la plataforma destinada,y en el caso de ActionScript 3, programas
producidos usando el compilador de Haxe normalmente funcionan más rápidos que programas producidos usando el compilador
Adobe Flex SDK.

Para ayudar a aprovechar código existente, la comunidad de código libre ha creado conversores de código fuente experimentales para
los siguiente lenguajes:

ActionScript 3 a Haxe.
C# a Haxe.
La ventajas de usar Haxe incluyen:

Independencia de la plataforma
Un lenguaje de alto nivel totalmente desarrollado
Dispositivos que admiten solo C++

Soporte de la plataforma
El código Haxe puede ser compilado en bytecode para maquinas virtuales diferentes como las de Adobe Flash Player y Neko, y
puede generar código fuente para ActionScript 3, JavaScript, e incluye soporte experimental para C++ y C#. Esta estrategia de
compilar a múltiples códigos fuente de distintos lenguajes está inspirada por el paradigma escribe una vez, ejecuta en todas partes.
Esto también permite al programador elegir el mejor compilador para su trabajo.

Soporte total
Hasta 2012, Haxe pueden compilar en las siguientes plataformas con la API de la plataforma completa:

Flash Player 6-8 (AVM1)


Flash Player 9-11 (AVM2)
ActionScript 3
Neko
JavaScript (lado del cliente)
JavaScript para Node.js (lado del servidor)
PHP 5

Soporte parcial
Hasta 2012, Haxe pueden compilar en las siguientes plataformas con cierta parte de la API de la plataforma:

C++

Windows
Linux
Mac OSX
iOS, (experimental)
Android, (experimental)
webOS, (experimental)
Java (experimental)
C# (experimental)

Lenguaje
El lenguaje Haxe es similar a ECMAScript, aunque casi ningún código ECMAScript se ejecutará en Haxe sin modificaciones. A
diferencia de ECMAScript, Haxe es un lenguaje compilado. Es un lenguaje de propósito general con programación orientada a
objetos, excepciones, e inferencia de tipos con parámetros de clase. Clases genéricas, reflectividad, iteradores, y programación
funcional están incorporados en la funcionalidad del lenguaje y librerías. A diferencia de otros lenguajes de programación, Haxe
contiene un sistema de tipos fuerte y dinámico. El compilador comprobará tipos implícitos y dará errores de compilación, pero eso
también permite al programador omitir la comprobación de tipos y se basan en el manejo dinámico de tipos de la plataforma de
destino.

Desde que Haxe tiene sus orígenes en AS3, todas las APIs de Flash pueden ser usadas, aunque Haxe requiere código mejor formado
y estándares de programación a diferencia de los compiladores Adobe (por ejemplo, respecto al
ámbito y tipo de dato).

Los parámetros de las funciones pueden ser definidos de forma muy precisa en Haxe:

function multipleparams (threedimensionalarray : Array<Array<Array<Int>>>, stringval : String , boolval :


Bool) {
}
// Valor entero opcional devuelve un entero
function optionalargument ( ?i : Int ) : Int {
return 0;
}
// Llama a una función sin parámetros
function functionasparameter ( f : Void -> Void ) {
f();
}
// Llama a una función que retorna un entero, con un parámetro Int
function anotherfunctionparm ( f : Int -> Int ) {
var result = f(1);
}
// función que coge cualquier clase de tipo y lo devuelve
function icoulddoanything (d : Dynamic ) : Dynamic {
return d;
}

Tipos enumerados son una característica clave del lenguaje; pueden tener parámetros propios y ser recursivos. Son similares a los
tipos de datos algebraicos en lenguajes como ML o Haskell. Las enumeraciones en Haxe no son simplemente indexados valores de
"número mágico" como en la mayoría de los lenguajes, pero es más abstracto: no contienen ningún valor inherente, pero pueden ser
instanciados en variables como en este ejemplo:

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));
}
}

Este ejemplo dibuja un cuadrado rojo usando el objeto Flash MovieClip, y usa la palabra clave "using".

using Colors ;
class Test {
static function main() {
var mc: flash.display .MovieClip = flash.Lib.current ;
mc.graphics .beginFill (red.toInt());
mc.graphics .moveTo (50,50);
mc.graphics .lineTo (100,50);
mc.graphics .lineTo (100,100);
mc.graphics .lineTo (50,100);
mc.graphics .endFill ();
}
}

Véase también
Lenguajes similares que compilan a JavaScript:

Dart
Opa
CoffeeScript
TypeScript
Lenguajes multiplataforma similares:

Monkey
Vala

Referencias
1. «Release 3.4.2» (https://github.com/HaxeFoundation/haxe/releases/tag/3.4.2) . haxe.org (en inglés).
2. «Open Source» (https://haxe.org/foundation/open-source.html) . haxe.org (en inglés).
3. «HashLink - Haxe Virtual Machine» (http://hashlink.haxe.org/)(en inglés). Consultado el 31 de julio de 2017.
4. «Target Details» (https://haxe.org/manual/target-details.html). haxe.org (en inglés).
5. Haxe Foundation. «Who is who» (https://haxe.org/foundation/people.html)(en inglés). Consultado el 31 de agosto de
2017.

Enlaces externos
Web oficial de Haxe
Libro oficial de Haxe
Haxe Learning - Exhaustiva Wiki de Haxe.
Empezando con Haxe en FDT 5.0
Un vídeo introductorio a Haxe
RAZAINA.FR - Algunos tutoriales de Haxe para principiantes.
haxe.us - Un tutorial introductorio de Haxe.
HaQuery - Web framework basado en Haxe

Obtenido de «https://es.wikipedia.org/w/index.php?title=Haxe&oldid=110157810
»

Esta página se editó por última vez el 24 ago 2018 a las 12:13.

El texto está disponible bajo laLicencia Creative Commons Atribución Compartir Igual 3.0 ; pueden aplicarse cláusulas
adicionales. Al usar este sitio, usted acepta nuestrostérminos de uso y nuestra política de privacidad.
Wikipedia® es una marca registrada de laFundación Wikimedia, Inc., una organización sin ánimo de lucro.

You might also like