hello - ¿Vale la pena aprender Haxe?
haxe hello world (11)
"Para las personas que usan Haxe, ¿qué te hace útil?"
¡Como un destello creativo, realmente ya no veo el punto en AS3! Entonces, desde un usuario / codificador de Flash, esta es mi opinión:
En mi proyecto actual, tengo una persona de 19 años que se movió desde la línea de tiempo AS2 / AS3 a las clases de Haxe bajo mi guía, y estaba portando el código AS2 y AS3. Así que no creo que Haxe sea más difícil de usar que AS3 o que se use en Flash significativamente diferente. En cuanto a la estabilidad, mi principal queja actual son los aspectos de los actuales reproductores de Flash, Haxe realmente es tan estable o más estable que AS3 cuando 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 cambian los flashes (¿podría ser que necesiten vender software todos los años?), Y los componentes siempre han sido algo que necesito, pero los tamaños son tontos, así que no estoy dispuesto seguir como ovejas en Flex o incluso pasar a la alternativa XAML.
La principal ventaja de Haxe es que puedes empezar a pensar realmente en crear clases que están divorciadas de la plataforma y se podrán utilizar en gran medida dentro de cinco años, dudo que sea cierto para cualquier AS3 que crees, Haxe tiene menos vínculos, potencialmente Podría compilar código para JavaScript, Silverlight o lo que Google saque a la luz a continuación.
Mis principales problemas con Haxe son que la mayor parte del desarrollo no se ha realizado en Mac, por lo que los aspectos de compilación de C ++ y las nuevas características de Haxe a veces se derivan de los usuarios de Windows, pero no he tenido problemas con Core Haxe, 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 recursos 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. Tengo una pasión por Flash IDE y su poder, pero nunca la usaría como código y la mayor parte de mi trabajo en Flash es en gran medida de código, así que no soy un hardcore de Linux, Haxe no te detiene usando Flash IDE, pero si quieres usa swfmill o sam tu puedes
La pregunta es: ¿por qué perder el tiempo en un lenguaje comercial AS3 que probablemente cambie solo para vender versiones futuras y esté limitado al reproductor Flash?
No me ha llevado mucho tiempo llegar a una etapa en la que podría crear un juego o ide complejo en javascript sin necesidad de jQuery, etc. de la caja Haxe ... funcionaría con navegador cruzado, etc. Haxe me permite tomar mi Flash habilidades de programación y comprensión de desarrollo de interfaz fuera de flash (nunca antes había usado JavaScript), si tuviera que aprender JavaScript puro probablemente no me sentiría tan habilitado, más como si alguien me hubiese cortado el brazo y estuviera escribiendo un código específico de plataforma , mientras que ahora puedo usar FEffects para tweening y luego agregar algunos modificadores de compilador y compilar en algunas otras plataformas y usar algunos neash / nme.
De hecho, me gustan mucho los aspectos como que el compilador es inteligente sobre los tipos, lo que permite que mi código sea más limpio. Y los typedef son geniales.
Miré PHP y decidí que era un lenguaje sucio y tonto y lo mismo para JavaScript, estoy tan contento de poder apuntarlos con Haxe y no tener que gastar demasiado tiempo en magia negra.
Si te gusta crear código para el desarrollo rápido de la creatividad visual, creo que Haxe es el lenguaje ideal e incluso como un profesional independiente lo estoy usando comercialmente.
Para las personas que usan Haxe , ¿qué te sirve? Leer el sitio web parece muy prometedor. ¿Proporciona una portabilidad significativa?
¿Cuáles son algunas ventajas del mundo real y tal vez menos apreciadas?
¿Cuáles son las trampas o trampas?
¿Vale la pena aprender Haxe?
La respuesta corta es: ¡Absolutamente!
Para las personas que usan Haxe, ¿qué te sirve?
Si eres un desarrollador web, sabes que no puedes mantenerte con una sola tecnología por mucho tiempo. Tarde o temprano tendrá que lidiar con 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 switches pueden desperdiciar mucho tiempo porque necesita cambiar su paradigma de programación demasiadas veces y posiblemente porque tendrá muchas superposiciones al codificar sus bibliotecas para objetivos específicos. Haxe intenta aliviar el dolor de la transición al tener un solo idioma fuente (el idioma Haxe) y muchos productos (a través del compilador Haxe). El lenguaje es muy amigable y bastante fácil de aprender, sin importar su origen.
Leer el sitio web parece muy prometedor. ¿Proporciona una portabilidad significativa?
El idioma es el mismo sin importar en qué plataforma se despliegue. Así que defines clases / interfaces / enums / typedefs de la misma manera para JS, Flash, C ++, etc. Si esos tipos que defines 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 acceso a archivos o desarrollo de servidores web.
¿Cuáles son algunas ventajas del mundo real y tal vez menos apreciadas?
- Si tienes experiencia con Flash / Flex, sabes cómo el compilador puede ralentizar tu trabajo (la única ventaja es poder tomarte un café mientras esperas;)). El compilador Haxe es mucho más rápido, tan rápido que la mayoría de las veces ni siquiera lo notas.
- El bytecode producido es mucho más rápido que el equivalente producido por las herramientas de Adobe.
- También en el reino Flash, Haxe puede "alinear" funciones o acceder a las características de la Memoria que solo están disponibles en otros lugares utilizando Alchemy.
- En caso de que lo necesite, también puede decidir qué versión de Flash desea orientar, de 6 a 10; la API ha cambiado mucho, pero el lenguaje Haxe es exactamente el mismo.
Hablando del lado del servidor, todos sabemos cuán ubicuo es PHP. Puede desarrollar una aplicación con Haxe enfocándola y escalar a Neko o incluso a C ++ si su aplicación web crece.
¿Cuáles son las trampas o trampas?
Aquí hay una lista de conceptos erróneos comunes:
Haxe is young and immature
En realidad, Haxe tiene casi 4 años, ha visto 25 lanzamientos formales (no builds) + 13 alphas y betas, se actualiza constantemente y tiene una comunidad muy dedicada. Es utilizado profesionalmente por mucha gente 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 complicated
Debido a que el objetivo principal de Haxe es sin ninguna pregunta AS3, la gente espera que debe 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 los diseñadores.There aren''t any IDEs
La 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 outdated
Aquí también hay algo de verdad, desafortunadamente el libro se publicó solo unos meses antes de que se produjera un lanzamiento importante (de V1 a V2). Esa versión principal no cambió mucho, pero agregó algunas incompatibilidades. El libro sigue siendo un recurso válido (no lo digo porque lo escribí;))
Bueno, su pregunta ya está respondida, pero me gustaría agregar algunos blurbs cortos.
Aprendí y usé Haxe intensivamente después de las primeras versiones beta y lo he estado usando desde entonces. Fue el primer idioma que aprendí (yo todavía estaba en la universidad en ese momento) que realmente me hizo entender la diferencia entre el lenguaje y la API.
En la universidad, primero aprendí AS2, luego PHP, luego algo de Javascript. No teníamos una introducción formal a la programación (y de todos modos no estaba estudiando informática). Todos estos lenguajes están muy vinculados 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 de Flash en mi código web normal, si los separaba de sus especificaciones de plataforma lo suficientemente bien.
Debido a las excelentes clases de comunicación remota que puede utilizar para comunicarse entre plataformas, también me di cuenta de que XML no es tan especial, y JSON no tiene sentido sin código que actúe en consecuencia.
Para alguien como yo que recién comenzó a programar, fue una gran revelación en un momento en que XML era "genial" y bueno para todo ;-)
Haxe es un lenguaje invaluable. Muchos de sus puntos positivos a menudo se pasan por alto. Por ejemplo, tiene fantásticas bibliotecas incorporadas que facilitan muchísimo el desarrollo de aplicaciones, como un ORM sencillo (pero muy poderoso) (Neko / PHP), comunicación remota completa entre plataformas (Flash / JS / PHP / C ++ / Neko) donde cualquier la plataforma compatible se puede comunicar sin problemas con cualquier otra plataforma, una sólida biblioteca de expresiones regulares (compatible con todos excepto Flash <8) y muchas más.
Como nota, recientemente escribí una aplicación usando Haxe para PHP / JS / Flash y descubrí que la velocidad de desarrollo se incrementaba exponencialmente.
Por supuesto, Haxe podría no ser diseñador centrado, pero tampoco es hardcore. Haxe es muy fácil de aprender y reutilizar, y a medida que aumenta la cantidad de plataformas de destino, los desarrolladores de Haxe también pueden apuntar a ellas, sin tener que aprender nada nuevo.
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, el más grande es que fue diseñado casi desde el principio como un compilador moderno de grado de producción que puede adaptarse de manera flexible a 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 escribes código en Haxe, puedes contar con que se quede.
La aceptación de la comunidad ha sido más fuerte de lo que se podría pensar: 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 25-50% acumulado anual (enero-septiembre) cada año desde 2006. En los últimos seis meses el tráfico realmente ha explotado y estoy considerando seriamente ir a digerir porque de lo contrario mi bandeja de entrada se inunda 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 vagones a Haxe tienden a ser programadores confiados y bien informados.
La gente ha experimentado con compiladores de lenguaje a lenguaje en otros contextos (Scheme en cualquier lugar, Python o Ruby en JS, etc.) pero esos lenguajes fueron diseñados para un lugar y propósito diferente, y en la traducción pierden muchos de sus mejores aspectos, haciendo los resultados son geniales, pero no son cómodos para el trabajo diario. Haxe no se siente así; Si bien no cuenta con las comodidades que ofrece la integración del idioma / tiempo de ejecución, tiene muchas otras cosas interesantes que ofrecer en este momento .
Mi uso principal de Haxe todavía está limitado al desarrollo de Flash. Me estoy calentando poco a poco a la idea de que pueda usarse 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 apoyo, ya que significa que puedo escribir casos de prueba para el código y tenerlos integrados en un script de construcció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 se agregó el soporte #line a Haxe. No creo que Adobe haya tomado en serio mi pedido.
Encuentro que ser un lenguaje mecanografiado es una gran ventaja sobre muchos de los nuevos lenguajes modernos.
Hay varias trampas en cuanto a la coherencia del lenguaje y la transparencia de back-end. Guardo una lista de los que me afectan here . Por supuesto, ningún idioma es perfecto a este respecto, pero estoy un poco decepcionado de que un nuevo idioma tenga tantos.
Mi vista de Haxe,
Advirtiendo que los siguientes párrafos son muy filosóficos (los más prácticos están más abajo):
Como alguien que ha estado abierto a muchos lenguajes de programación durante mi programación a corto plazo y alguien que simplemente se mueve cuando siento que algo no funciona para mí; Encuentro que Haxe es algo de lo que 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 qué tan fácil me resulta entenderlo. Pero con Haxe, el período de agarre fue mucho más corto, y lo atribuyo a mi pequeña acumulación de conocimiento en una variedad de idiomas. Hasta Haxe nunca había encontrado uno que realmente me conviniera y que se sentía bien, o eran difíciles de entender o simplemente inútiles; bueno al menos inútil desde mi perspectiva.
Haxe me ha permitido ser mucho más expresivo con la forma en que escribo, no me refiero a lo "expresivo" como a la calidad con la que todo el mundo habla de idiomas. Me refiero a la capacidad de tener una idea y correr con ella, intentarlo algo por el camino que siento es correcto. Si tiene éxito o falla totalmente.
Haxe ha sido una curva de aprendizaje muy fácil para mí, con mi formación general en lenguajes de estilo c y AS2 / 3, y no he tenido ningún problema para aprenderlo. Una cosa que siempre obstaculizaba mi progresión con un nuevo lenguaje era entender 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 estoy encontrando el lenguaje en sí mismo para limitarme. 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 Haxe no es como recoger algunos palos y hacer fuego, pero tampoco es como salir y comprar un set de oxiacetileno y comenzar un fuego 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 características útiles. Pero hacerlo no reinventa completamente la rueda, solo arregla las partes podridas. (ok menos analogías en el próximo párrafo)
Cosas prácticas:
El lenguaje es simple, fácil y estandarizado, mientras permite que el programador llegue tan lejos como quiera.
Tu puedes escribir un código de muy alto nivel o ir y jugar con las pequeñas partes (en serio en algunas plataformas)
Haxe no dicta qué puede y qué no puede hacer en una plataforma en particular, 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 incluso está mejorando el ritmo ahora.
El idioma se cambia constantemente (en formas menores) con nuevas cosas agregadas en cada lanzamiento.
Hay muy pocos errores reales que llegan 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, por último, Haxe no es una gran empresa privada de una empresa grande (o incluso pequeña) para hacer dinero con usted como desarrollador, sino que se creó para que todos los desarrolladores la utilicen, desarrollen y mejoren. Y es por eso que siento que Haxe está donde quiero estar. (ahora para volver a la codificación)
Si quieres tener una respuesta corta: ¡SÍ!
Para las personas que usan Haxe, ¿qué te sirve?
La mayor parte del tiempo utilizo Haxe para el lado del servidor. (Esto significa PHP o objetivo neko). En mi opinión, PHP es el idioma más succión 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 una portabilidad significativa?
¡Tener el mismo código en diferentes objetivos! No podría imaginar ninguna forma de tener más portabilidad.
La migración de un sitio web de PHP a mod_tora , que funciona de 40 a 80 veces más rápido que PHP, oftens solo requiere 5 minutos de trabajo?
¿Cuáles son algunas ventajas del mundo real y tal vez menos 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. (Eche un vistazo a la sección de Remoting en la wiki).
- La comunidad es genial . (Si te gustan las listas de correo al menos. :-)
- Otra cosa es: si necesita realizar operaciones nativas de plataforma que no sean compatibles con Haxe (lo que sucede muy raramente), Haxe siempre le brinda las opciones para atacarlas. Se llama magia Haxe . En otras palabras: podrías hacer todo lo que pudieras hacer en el idioma nativo de la plataforma + todo lo bueno que Haxe te ofrece.
¿Cuáles son las trampas o trampas?
- Documentación, a veces la instalación no es 100% perfecta. El soporte para IDE 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 de 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.
Subjetivamente encuentro que soy más productivo en haxe que en cualquier otro idioma. Yo uso haxe apuntando principalmente a neko y javascript.
El compilador en sí es muy rápido, lo que me permite usar haxe como un lenguaje de scripting. Se inclina hacia la orientación de objetos, pero tiene una serie de herramientas funcionales; funciones de primera clase, correspondencia funcional, bibliotecas lambda.
Encuentro que la velocidad de neko es suficiente y su tamaño de imagen pequeño es ideal para entornos restringidos. Es C FFI es excelente, muy simple de agregar nuevas funcionalidades.
Utilizo haxe para mi controlador javascript del lado del cliente, disparando eventos a una vista jQuery estándar. Esto funciona muy bien, ya que puede verificar el código del cliente y del servidor de forma simultánea, manteniendo al mínimo las js sin formato y conservando los beneficios de las bibliotecas js usuales. Bibliotecas JSON disponibles. Por cierto, aunque haxe viene con mod_ * para apache, etc., encuentro que usar un proxy es mucho más flexible, así que puedo configurar múltiples 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.
bd
Tenía a Haxe en el radar desde que comenzó. Estoy de acuerdo, 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 lo bueno y adecuado que Haxe pueda ser para usted en este momento, usted seguirá estando entre los primeros en adoptar y seguramente tendrá en cuenta los problemas que suelen enfrentar los primeros adoptantes.
Aunque hay una lista de correo muy activa con miembros muy útiles, aún 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 a diferentes plataformas (principalmente JS y Flash, y ahora NekoVM, PHP y C ++) ¿realmente lo necesitas?
sí, completamente
PERO necesita un mejor IDE y documentación, la falta de un gran IDE (como un eclipse basado en) para mí hace la diferencia, y no puedo alcanzar los niveles de productividad que tengo en otros idiomas debido a esto.
language = great - best by miles development environment = poor (en este momento e imho)