¿Vale la pena aprender a Haxe? [cerrado]


153

Para las personas que usan Haxe , ¿qué lo hace útil para usted? Leer el sitio web parece muy prometedor. ¿Proporciona portabilidad significativa?

¿Cuáles son algunos del mundo real y quizás bajo ventajas apreciadas?

¿Cuáles son las trampas o las trampas?


Nunca he oído hablar de esto antes parece interesante.
JoshBerke

9
¿Por qué debería haber problemas serios con la comunidad? La comunidad no es muy grande pero es muy solidaria, solo eche un vistazo a la actividad de la Lista de Correo.
Franco Ponticelli

44
La respuesta corta es sí, vale la pena aprender. Escribiré una respuesta más detallada más adelante si alguien más no responde mejor.
tylermac

44
quizás también mire esta pregunta: stackoverflow.com/questions/321204/haxe-in-the-field
TheHippo

2
No creo que haya ningún daño en aprenderlo. Está tan cerca de JS y AS que el tiempo dedicado a aprender puede trasladarse a otros proyectos.
Nosredna

Respuestas:


128

¿Vale la pena aprender a Haxe?

La respuesta corta es: ¡Absolutamente!

Para las personas que usan Haxe, ¿qué lo hace útil para usted?

Si eres desarrollador web, sabes que no puedes seguir con una sola tecnología por mucho tiempo. Tarde o temprano tendrá que lidiar con los cambios en el entorno o los objetivos (se desarrolla para .NET, pero un cliente importante requiere PHP, o tal vez ese widget debe estar en Flash, no Javascript), y este es el mejor de los casos. En el peor de los casos, tendrá que cambiar constantemente, a menudo varias veces en el mismo día hábil.

Esos conmutadores pueden perder mucho tiempo porque necesita cambiar su paradigma de programación demasiadas veces y posiblemente porque tendrá muchas superposiciones en la codificación de sus bibliotecas para objetivos específicos. Haxe intenta aliviar el dolor de la transición al tener solo un idioma fuente (el idioma Haxe) y muchas salidas (a través del compilador Haxe). El idioma es muy amigable y bastante fácil de aprender, sin importar sus antecedentes.

Leer el sitio web parece muy prometedor. ¿Proporciona portabilidad significativa?

El idioma es el mismo sin importar en qué plataforma se implemente. Por lo tanto, define clases / interfaces / enums / typedefs de la misma manera para JS, Flash, C ++, etc. Si esos tipos que define no dependen de una API de plataforma específica, pueden reutilizarse de plataforma en plataforma sin ningún esfuerzo . Todas las plataformas también comparten API comunes como acceso XML, conexiones HTTP y reflexión. Las plataformas que tienen cosas en común (es decir, Neko y PHP) comparten la misma API para cosas como el acceso a archivos o el desarrollo de servidores web.

¿Cuáles son algunos del mundo real y quizás bajo ventajas apreciadas?

  • Si tiene experiencia con Flash / Flex, sabe cómo el compilador puede ralentizar su trabajo (la única ventaja es poder tomar un descanso mientras espera;)). El compilador Haxe es muchas veces más rápido, tan rápido que la mayoría de las veces ni siquiera notas que funciona.
  • El código de bytes producido es mucho más rápido que el equivalente producido por las herramientas de Adobe.
  • También en el ámbito de Flash, Haxe puede "en línea" funciones o acceder a las funciones de memoria que solo están disponibles en otros lugares mediante el uso de Alchemy.
  • En caso de que lo necesite, también puede decidir a qué versión de Flash apuntar, de 6 a 10; La API ha cambiado mucho, pero el lenguaje Haxe es exactamente el mismo.

Hablando del lado del servidor, todos sabemos lo ubicuo que es PHP. Puede desarrollar una aplicación con Haxe apuntándola y escalar a Neko o incluso C ++ si su aplicación web crece.

¿Cuáles son las trampas o las trampas?

Aquí hay una lista de ideas falsas comunes:

  • Haxe is young and immatureEn realidad no, Haxe tiene casi 4 años, ha visto 25 lanzamientos formales (no compilaciones) + 13 alphas y betas, se actualiza constantemente y tiene una comunidad muy dedicada. Es utilizado profesionalmente por muchas personas en varias áreas de desarrollo; eche un vistazo al archivo de la lista de correo para descubrir cómo las personas usan Haxe.

  • Haxe is complicatedDebido a que el objetivo principal de Haxe es sin lugar a dudas AS3, la gente espera que deba tener asistentes o una GUI. Como se dijo, Haxe es un lenguaje y un compilador que lo hace adecuado para programadores pero no muy bueno para diseñadores.

  • There aren't any IDEsLa parte verdadera de esto es que IDE podría mejorarse en muchos aspectos para integrarse mejor con Haxe, pero ya hay muchas opciones válidas .

  • The only book published is already outdatedAquí también hay algo de verdad, desafortunadamente el libro fue publicado solo unos meses antes de que ocurriera un lanzamiento importante (de V1 a V2). Ese lanzamiento importante no cambió mucho, pero agregó algunas incompatibilidades. El libro sigue siendo un recurso válido (no solo lo digo porque lo escribí;))


1
Gracias por la respuesta Franco. Y la lista de IDEs. Estoy intrigado por el complemento Xcode para HaXe. Eso se ve super dulce! ¿Cuál es la historia con los kits de framework UI y Haxe? Por ejemplo, ¿alguna vez será posible seleccionar Cocoa con HaXe y obtener widgets nativos para OS X? ¿Básicamente usando el generador de interfaces y vinculado con el código fuente de HaXe?
Gordon Potter el

Si C ++ es lo suficientemente nativo para usted, entonces es posible. Debe ajustar las llamadas de Cocoa para que sean "accesibles" desde el código generado por haXe. La versión actual de haXe, como probablemente ya sabe, ya permite desarrollar aplicaciones para iPhone; Por supuesto, todavía es muy experimental. Tenga en cuenta que el objetivo de C ++ se ha introducido solo en la última versión.
Franco Ponticelli

34
También ayudaría tener algunas desventajas para el haXe, no solo elogios.
Alan Klement

Yo mismo programador de AS3 y viendo que el flash muere horriblemente, haxe está mejorando cada vez más para nosotros.
justnajm

Estoy de acuerdo con las posibles desventajas, y si puedes, me gustaría una versión actualizada de esta respuesta si es posible.
Prometeo

25

"Para las personas que usan Haxe, ¿qué lo hace útil para ti?"

Como flasheador creativo, ¡realmente ya no veo el punto en AS3! Entonces, de un codificador / artista de usuario de Flash, aquí está mi opinión:

En mi proyecto actual, tengo un joven de 19 años que se mudó de la mayoría de las clases de línea de tiempo AS2 / AS3 a Haxe bajo mi guía, y estaba transfiriendo el código AS2 y AS3. Así que no creo que Haxe sea más difícil de usar que AS3 o cuando se usa en Flash significativamente diferente. En cuanto a la estabilidad, mi principal queja actual son los aspectos de los reproductores Flash actuales, Haxe realmente es tan estable o más estable que AS3 cuando se desarrolla Flash.

La evolución de Flash ha sido un proceso constante de creación de bibliotecas que se vuelven inútiles a medida que Flash cambia (¿podría ser que necesiten vender software cada año?), Y los componentes siempre han sido algo que necesito, pero los tamaños son tontos, por lo que no estoy dispuesto seguir como ovejas a Flex o incluso pasar a la alternativa XAML.

La principal ventaja de Haxe es que puede comenzar a pensar realmente en crear clases que estén divorciadas de la plataforma y que se puedan usar en gran medida dentro de cinco años, dudo que eso sea cierto para cualquier AS3 que cree, Haxe tiene menos vínculos, potencialmente Podría compilar código para JavaScript, Silverlight o lo que sea que Google presente a continuación.

Mis principales problemas con Haxe son que la mayor parte del desarrollo no ha sido en Macs, por lo que los aspectos de compilación de C ++ y las nuevas características de Haxe a veces se obtienen de los usuarios de Windows, pero no he tenido problemas con Haxe central, como la compilación Flash.

En términos de diseñadores: utilizo una película Flash IDE cargada en tiempo de ejecución para mis activos visuales y hago lo mismo cuando desarrollo en AS3, así que realmente mi flujo de trabajo no depende de AS3 / Haxe, me gusta una vida simple, así que uso Textmate para AS3 o Haxe Me apasiona el Flash IDE y su poder, pero nunca lo usaría para el código y la mayor parte de mi trabajo en Flash es en gran parte código, por lo que no soy un fanático de Linux, Haxe no te impide usar Flash IDE, pero si quieres use swfmill o sam que pueda.

La pregunta es: ¿por qué perder el tiempo en un lenguaje comercial AS3 que probablemente cambie solo para vender versiones futuras y se limite al reproductor Flash?

No me ha llevado mucho tiempo llegar a una etapa en la que pueda crear un juego o una idea compleja en javascript sin necesidad de jQuery, etc., simplemente listo para usar Haxe ... funcionaría entre navegadores, etc. Haxe me permite tomar mi Flash habilidades de programación y desarrollo de la interfaz para comprender el flash externo (nunca antes había usado JavaScript), si aprendiera JavaScript puro probablemente no me sentiría tan habilitado, más bien como si alguien me hubiera cortado el brazo y estuviera escribiendo un código muy específico de la plataforma , aunque ahora puedo usar FEffects para interpolar y luego agregar algunos modificadores de compilación y compilar en otras plataformas y usar algunos neash / nme.

En realidad, me gustan bastante aspectos como que el compilador sea inteligente sobre los tipos, permitiendo que mi código sea más limpio. Y los typedef son brillantes.

Miré PHP y decidí que era un lenguaje sucio, sucio y desordenado y lo mismo para JavaScript, estoy muy contento de poder apuntarlos con Haxe y no tener que pasar mucho tiempo en magia de pirateo negro.

Si te encanta crear código para un desarrollo rápido de la creatividad visual, creo que Haxe es el lenguaje ideal e incluso como profesional independiente lo estoy usando comercialmente.


18

Mi punto de vista de Haxe,

Advertencia, los siguientes párrafos son muy filosóficos (los prácticos están más abajo):

Como alguien que ha estado abierto a muchos lenguajes de programación durante mi corto tiempo de programación y alguien que simplemente sigue adelante cuando siento que algo no funciona para mí; Me parece que Haxe es algo de lo que simplemente no puedo progresar, simplemente no puedo 'mejorarlo'.

En el pasado, descubrí que la cantidad de tiempo que paso escribiendo en un idioma en particular se relaciona con dos factores clave, cuánto necesito usar ese idioma para obtener el resultado y cuán fácil encuentro ese idioma. Pero con Haxe el período de comprensión fue mucho más corto, y lo atribuyo a mi pequeña acumulación de conocimiento en una variedad de idiomas. Hasta que Haxe nunca había encontrado uno que realmente me quedara bien y que se sintiera bien, eran difíciles de entender o simplemente inútiles; bueno, al menos inútil desde mi perspectiva.

Haxe me había permitido ser mucho más expresivo con la forma en que escribo, no me refiero a lo 'expresivo' ya que en la calidad de que todos hablan sobre idiomas, me refería a la capacidad de tener una idea y ejecutarla, de intentar algo que siento es lo correcto. Si tiene éxito o falla totalmente.

Haxe ha sido una curva de aprendizaje muy fácil para mí, con mi experiencia general en lenguajes de estilo c y AS2 / 3, y realmente no he tenido ningún problema para aprenderlo. Una cosa que siempre obstaculizó mi progresión con un nuevo lenguaje fue comprender el concepto detrás de esa sintaxis / marco particular, pero incluso una vez que había superado ese obstáculo, a menudo encontraba que el lenguaje en sí mismo era limitado, limitante o ambos. Con Haxe no estoy limitado ni encuentro el lenguaje mismo que me limite. Con Haxe no hay techo de vidrio, pero hay un piso de vidrio, ya que no hay límite para lo que puedes hacer, pero puedes ver claramente cómo llegaste allí

Recoger a Haxe no es como recoger algunos palos y hacer fuego, pero tampoco es como salir y comprar un conjunto de oxiacetileno y comenzar un incendio con eso. En ese sentido, Haxe está más cerca de un partido, que puedes reutilizar. Sigue casi todas las conversiones de algo que solía hacer pero agrega nuevas funciones útiles. Pero para hacerlo, no reinventa la rueda por completo, solo arregla los bits podridos. (ok menos analogías en el siguiente párrafo)

Cosas prácticas:

El lenguaje es simple, fácil y estandarizado, a la vez que permite al programador llegar tan lejos como quiera.

Puede escribir una pieza de código de muy alto nivel o ir y jugar con los pequeños fragmentos (en gran medida en algunas plataformas)

Haxe no dicta lo que puede y no puede hacer en cualquier plataforma, le da (o planea darle) acceso completo a todo, pero donde puede agrega una forma estandarizada de hacer las cosas.

La lista de correo es muy útil y receptiva, y el foro está incluso acelerando ahora.

El idioma se cambia constantemente (en formas menores) con nuevas cosas agregadas en cada versión.

Hay muy pocos errores reales para la API principal y aún menos para el compilador.

Todos hablan abiertamente sobre el idioma, su dirección y la dirección que sugieren para Haxe (y, por supuesto, por qué debería tomar esa dirección)

Y finalmente, Haxe no es una gran empresa privada de una empresa grande (o incluso pequeña) para ganar dinero con usted como desarrollador, sino que está creada para que todos los desarrolladores la utilicen, desarrollen y mejoren. Y es por eso que siento que Haxe es donde quiero estar. (ahora para volver a la codificación)


13

Si quieres tener una respuesta corta: ¡SÍ!

Para las personas que usan Haxe, ¿qué lo hace útil para usted?

La mayoría de las veces uso Haxe para el lado del servidor. (Esto significa PHP o Neko Target). En mi opinión, PHP es el lenguaje más desagradable que he usado, esa fue la razón por la que comencé a usar Haxe: tener un lenguaje utilizable.

Otra gran ventaja para mí es que Haxe es de código abierto.

¿Proporciona portabilidad significativa?

Tener el mismo código en diferentes objetivos! No podría imaginarme ninguna forma de tener más capacidad de trabajo.

¿Migrar un sitio web de PHP a mod_tora , que funciona 40-80 veces más rápido que PHP, a menudo solo requiere 5 minutos de trabajo?

¿Cuáles son algunos del mundo real y quizás bajo ventajas apreciadas?

  • La mayor ventaja es la portabilidad del código y las excelentes opciones para comunicarse entre las plataformas, nunca fue más fácil manejar los datos entre el cliente y el servidor. (Echa un vistazo a la sección Remoting en la wiki.)
  • La comunidad es excelente . (Si te gustan las listas de correo al menos. :-)
  • Otra cosa es: si necesita realizar operaciones nativas de plataformas que no son compatibles con Haxe (lo que ocurre muy raramente), Haxe siempre le ofrece las opciones para apuntarlas. Se llama la magia Haxe . En otras palabras: puede hacer todo lo que puede hacer en el idioma nativo de la plataforma + todo lo bueno que Haxe le ofrece.

¿Cuáles son las trampas o las trampas?

  • Documentación, a veces la instalación no es 100% perfecta. El soporte para IDEs podría mejorarse mucho.
  • Además, el objetivo de JavaScript a veces es difícil de usar, porque Haxe proporciona un lenguaje realmente bueno, pero falta algún tipo de marco para las manipulaciones DOM más comunes, pero creo que algunas personas están trabajando en eso ;-)
  • Si tengo que trabajar para clientes, a veces no les gusta la idea de realizar su proyecto en un idioma tan desconocido.

PD: Creo que siempre vale la pena aprender un nuevo idioma, ya que mejora tus habilidades y experiencias de programación.


mode_tora suena interesante. Pero, ¿qué haces si no tienes / no quieres el httpd de apache? Hay un servidor en Neko, pero la documentación dice que es solo para desarrollo.
stesch

8

Bueno, su pregunta ya está respondida, pero me gustaría agregar algunas breves borrones.

Aprendí y usé Haxe de manera entretenida después de las primeras versiones beta y lo he estado usando desde entonces. Fue el primer idioma que aprendí (también estaba todavía en la universidad en ese momento) lo que realmente me hizo comprender la diferencia entre el idioma y el API.

Verás en la universidad, primero aprendí AS2, luego PHP, luego algunos Javascript. No tuvimos una introducción formal a la programación (y de todos modos no estaba estudiando informática). Estos lenguajes están bastante ligados a las plataformas, así que como programador novato, automáticamente asumí que cosas como strlen () es PHP, MovieClip es AS2, ...

Al usar Haxe, realmente entendí el valor del diseño orientado a objetos, ya que la plataforma ya no restringía mis clases. Podría reutilizar el código escrito para un proyecto Flash en mi código web normal, si los separo de los detalles de su plataforma lo suficientemente bien.

Debido a las excelentes clases de comunicación remota que puede usar para comunicarse entre plataformas, también me di cuenta de que XML no es tan especial, ni JSON, no tiene sentido sin código que actúe sobre él.

Para alguien como yo que acaba de comenzar a programar, fue una gran revelación en un momento en que XML era 'genial' y bueno para todo ;-)


5

El haxe es un lenguaje invaluable. Muchos de sus puntos positivos a menudo se pasan por alto. Por ejemplo, tiene fantásticas bibliotecas integradas que hacen que el desarrollo de aplicaciones sea mucho más fácil, como un ORM simple pero muy potente (Neko / PHP), comunicación remota multiplataforma completa (Flash / JS / PHP / C ++ / Neko) donde cualquiera La plataforma compatible puede comunicarse sin problemas con cualquier otra plataforma, una biblioteca sólida de expresiones regulares (compatible con todos excepto Flash <8) y muchos más.

Como nota, recientemente escribí una aplicación usando Haxe para PHP / JS / Flash y descubrí que la velocidad de desarrollo aumentó exponencialmente.

Por supuesto, Haxe puede no estar centrado en el diseñador, pero tampoco es hardcore. Haxe es muy fácil de aprender y reutilizar, y a medida que aumenta el número de plataformas objetivo, los desarrolladores de Haxe también pueden apuntar a ellas sin tener que aprender nada nuevo.


4

Mi uso principal de Haxe se limita aún al desarrollo de Flash. Me estoy calentando lentamente a la idea de que se puede usar para otros objetivos. Todavía no veo las ventajas en esa dirección y hago mi PHP y JS directamente en PHP y JS.

Aunque no desarrollo para el back-end de Neko, es un gran soporte, ya que significa que puedo escribir casos de prueba para el código e integrarlos en un script de compilación en lugar de solo poder ejecutarlos en un reproductor flash. Esta es una muy buena ventaja.

La naturaleza abierta del código y el desarrollo también es una buena ventaja. Realmente necesitaba un preprocesador, por lo que #linese agregó soporte a Haxe. No creo que Adobe haya tomado mi solicitud en serio.

Creo que ser un idioma mecanografiado es una gran ventaja sobre muchos de los nuevos idiomas modernos.

Existen varias dificultades con respecto a la consistencia del lenguaje y la transparencia del back-end. Mantengo una lista de los que me afectan aquí . Por supuesto, ningún idioma es perfecto en este sentido, pero estoy un poco decepcionado de que un nuevo idioma tenga tantos.


3

He estado codificando Haxe en usos personales y profesionales durante aproximadamente 2 años. Hay ciertas ventajas que tiene que no obtendrá de otros idiomas, la más importante es que fue diseñado casi desde el principio como un compilador moderno de producción que puede adaptarse con flexibilidad a las nuevas plataformas y aprovechar sus características únicas. . Esto lo convierte en lo más parecido a una versión de nivel superior de C. Si escribe código en Haxe, puede contar con que se quede.

La aceptación de la comunidad ha sido más fuerte de lo que piensas: hice un pequeño análisis del tráfico de la lista en términos de kilobytes comprimidos (de los datos en http://lists.motion-twin.com/pipermail/haxe/ ) y el resultado muestra un aumento del 25-50% hasta el año (enero-septiembre) cada año desde 2006. En los últimos seis meses el tráfico realmente ha explotado y estoy considerando seriamente digerirlo porque de lo contrario mi bandeja de entrada se inundará con cientos de mensajes en Haxe si me voy por más de un día No es tan publicitado como otros idiomas, pero eso a su vez significa que las personas que enganchan sus carros a Haxe tienden a ser programadores seguros y bien informados.

Las personas han experimentado con compiladores de lenguaje a lenguaje en otros contextos (Esquema en cualquier lugar, Python o Ruby en JS, etc.) pero esos lenguajes fueron diseñados para un lugar y un propósito diferentes, y en la traducción pierden muchos de sus mejores aspectos, haciendo que Los resultados son geniales, pero no son cómodos para el trabajo diario. Haxe no se siente así; Si bien no tiene las comodidades que ofrece la integración de idioma / tiempo de ejecución, tiene muchas otras cosas interesantes que ofrecer en este momento .


3

Subjetivamente, encuentro que soy más productivo en Haxe que en cualquier otro idioma. Yo uso Haxe principalmente dirigido a Neko y JavaScript.

El compilador en sí mismo es muy rápido, lo que me permite usar Haxe como un lenguaje de script. Se inclina hacia la orientación del objeto pero tiene varias herramientas funcionales; funciones de primera clase, coincidencia funcional, bibliotecas lambda.

Creo que la velocidad de Neko es suficiente, y su pequeño tamaño de imagen es ideal para entornos restringidos. Es C FFI es excelente, muy simple para agregar nueva funcionalidad.

Uso Haxe para mi controlador del lado del cliente JavaScript, disparando eventos a una vista estándar de jQuery. Esto funciona realmente bien, ya que puede escribir el código de su cliente y servidor simultáneamente, al mismo tiempo que mantiene un JS en bruto sin tipo al mínimo y conserva los beneficios de las bibliotecas JS habituales. Bibliotecas JSON disponibles. Por cierto, aunque Haxe viene con mod_ * para Apache, etc., creo que usar un proxy es mucho más flexible, por lo que puedo configurar varias instancias de Neko detrás del servidor web.

En general, creo que está muy bien redondeado y pensado, y críticamente funciona como se anuncia en todas las plataformas.


2

si completamente

PERO necesita un mejor IDE y documentación, la falta de un gran IDE (como uno basado en eclipse) hace toda la diferencia, y no puedo alcanzar los niveles de productividad que hago en otros idiomas debido a esto.

idioma = excelente - mejor por millas entorno de desarrollo = pobre (en este momento y en mi humilde opinión)


1

Tenía a Haxe en el radar desde que comenzó. Estoy de acuerdo en que parece muy prometedor, pero noté que los desarrolladores no lo están adoptando tan rápido como cabría esperar (en comparación con RoR e incluso Flex).

Independientemente de cuán bueno y adecuado pueda ser Haxe para usted en este momento, seguirá estando entre los primeros en adoptar y seguramente tendrá problemas con los que los primeros adoptan.

Aunque hay una lista de correo muy activa con miembros muy útiles, todavía esperaría hasta que más personas se unan y se escriban más libros y recursos al respecto.

Al final, Haxe te ayuda a escribir en un solo idioma y apuntar a diferentes plataformas (JS y Flash principalmente, y ahora NekoVM, PHP y C ++) ¿realmente lo necesitas?


1
No estoy seguro de que sea una comparación justa para la tasa de adopción. Con Flex, es un lenguaje patrocinado por Adobe. Eso automáticamente le da "credibilidad callejera";) Ruby tenía alrededor de qué, algo así como 10 años cuando salió Rails. Por lo que he visto, parece que más personas cambian a RoR que simplemente a Ruby. En contraste, Haxe tiene aproximadamente la mitad de edad que eso, y aunque hay muchos marcos para el desarrollo de Haxe, ciertamente ninguno se ha vuelto viral como los rieles.
tylermac

¡¿Seriamente?! ¿Cuál es el% de desarrolladores de RoR que usaron Ruby antes de que saliera RoR? ¿Y no me importa (como desarrollador) si una plataforma de desarrollo fue patrocinada por una gran empresa o no? La tasa de adaptación se está moviendo muy lento con Haxe OMI y este es mi principal preocupación al respecto
Ammar

Los nuevos enfoques no siempre son obvios para todos, recuerdo RoR y papervision, ambos proyectos que se han expandido en los últimos años y que me interesaron, y debo decir que haXe realmente demuestra su potencial y creo que será más grande que ambos. 2-3 años dirá;)
JLM

Mi argumento sigue en pie: es demasiado pronto :)
Ammar

1
@JLM: han pasado 4 años, puedes editar tu respuesta y ajustar :)
Janus Troelsen
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.