¿Tu experiencia con haxe y otros lenguajes que compilan a PHP? [cerrado]

23

Me gustaría escuchar opiniones de personas que han usado un lenguaje que compila php. Uno de esos idiomas que conozco es el haxe . Otros sobre los que he leído son Kira y Pharen .

¿Qué tan bien se integran estos lenguajes con PHP? ¿Es relativamente fácil escribir un complemento para un PHP CMS en ellos?

¿Cuán maduros son sus implementaciones y herramientas?

¿Se los recomendarías a alguien que tiene que usar un php cms pero odia php?

Kim
fuente
1
HaXe es bueno. Al menos pruébalo. Lo acabo de instalar, y cargué y probé mi primera página PHP en 9 minutos (incluido el tiempo para descargar haxe), es fácil y hay una gran comunidad detrás con muchos documentos
JTS
He creado pratphall.org, que es un lenguaje escrito que compila a PHP.
Chad Retz

Respuestas:

9

Soy el creador de Pharen, que compila un dialecto Lisp para PHP. Para responder a sus preguntas, se integra bastante bien con PHP. Es fácil incluir funciones de llamada de bibliotecas existentes / usar sus objetos.

En cuanto a la madurez, todavía no ha habido ningún uso de producción del código Pharen. Si bien en términos del idioma, todo lo que desea está ahí y funcionando, cosas como la implementación aún requieren un poco de esfuerzo adicional.

Dicho esto, si eliges a Pharen, estaré encantado de ayudarte como pueda. ¡Avíseme si tiene alguna otra pregunta!

Scriptor
fuente
"Es fácil incluir funciones de llamada de bibliotecas existentes / usar sus objetos". Lo cual debería ser suficiente para trabajar con la mayoría de las bibliotecas externas, incluidas las API de complementos para un CMS. La publicación original no era demasiado específica sobre lo que significa la integración. También expliqué el estado de su (falta de) madurez.
Scriptor
Gracias por su respuesta y por su oferta de ayudarme. ¿Pharen es compatible con cualquier otro ceceo? ¿Tiene sus propios operadores o solo usa los de php? Por ejemplo, ¿el == en pharen se comporta de la misma manera que en php?
Kim
Es su propio dialecto en este momento, con algo de inspiración de Clojure. La razón principal de esto es que otros estándares tienen mucho equipaje, como sus propias bibliotecas estándar, que serían innecesarios. Utiliza los mismos operadores que PHP, por lo que podría usar (== "foo" "foo")
Scriptor
3

Josh K tiene razón en algunos aspectos, es mejor conocer php para apuntar mejor al tiempo de ejecución de php. Sin embargo, la razón principal de esto no es que haxe sea un mal compilador, sino que php es un lenguaje tan "idiosincrásico".

Php tiene una increíble cantidad de funciones en su espacio de nombres base. Por lo tanto, hay muchas palabras clave reservadas y funciones especiales que debe conocer para evitar conflictos de nombres. Algunas personas están de acuerdo con esto, creo que es un diseño de lenguaje horrible. HaXe soluciona este problema creando su propio espacio de nombres en php.

Php convierte automáticamente un entero en un flotador en caso de desbordamiento. Esto, por supuesto, rompe la escritura estricta en la que confían lenguajes como HaXe para la seguridad de los tipos (y para habilitar cosas simples como algoritmos de hash rápidos). Creo que esta es otra característica terrible del lenguaje. Además, haXe no puede ayudar aquí, porque este comportamiento de php no se puede cambiar.

Ahí vas. Creo que haXe mejora php porque limpia algunas fallas de lenguaje (percibidas) para php. Sin embargo, hay tantas cosas raras sobre php, que terminas necesitando aprenderlo bien para corregir algunas de sus idiosincrasias.

Dicho todo esto, el lenguaje haXe es bastante sorprendente. Le permite organizar su código php en mejores espacios de nombres, tiene un sistema de tipos bastante sofisticado, tiene algunas opciones de compilación condicional para manejar problemas específicos de php y tiene algunas buenas operaciones de documentación. Solo por esas razones, no es una mala elección diseñar una biblioteca sofisticada ... incluso para algo como php.

Enlaces relevantes:

php magic: http://haxe.org/doc/advanced/magic

(también busque "peculiaridades de la plataforma" en la sección de la comunidad del sitio principal de haxe.org)

jdonaldson
fuente
Gracias por tu respuesta. ¿Tuviste algún problema para llamar a php desde haxe o viceversa?
Kim
Entonces, ¿PHP (lenguaje dinámico) tiene problemas con haXe (depende de la escritura estática)? ¡Asombroso! PHP es un lenguaje un poco extraño, pero dado que tiene sus raíces en Perl, es comprensible. Lo que usted cree que son "características del lenguaje horribles" y lo que es "dinamismo estándar" parece ser bastante similar.
Josh K
1
Puede tener características de lenguaje estático junto con características dinámicas de tiempo de ejecución. No son mutuamente excluyentes. HaXe utiliza el indicador de tipo "Dinámico" para este propósito. El espacio de nombres y las operaciones matemáticas no tienen nada que ver con el dinamismo del lenguaje. Estos son solo caprichos de php.
jdonaldson
2

Basura horrible

Usé haXe por recomendación de alguien y nunca se lo recomendaría a nadie por ningún motivo .

La compilación cruzada entre idiomas conduce a confusión, errores y errores. También hace que la depuración sea una tarea monumental.

¿Se los recomendarías a alguien que tiene que usar un php cms pero odia php?

¡No! Le recomendaría que aprenda PHP correctamente o use un CMS diferente. Como parece que no tiene otra opción en la parte de CMS, la otra opción es aprender el idioma y tratarlo.

¿Cuán maduros son sus implementaciones y herramientas?

Joven en el mejor de los casos, inestable en el peor. No encontrarás mucho apoyo para ellos.


Parece que tienes el trabajo de escribir algo para una aplicación PHP. Además de los problemas obvios de que su código tendría que importar funciones / objetos PHP existentes para trabajar, y la basura mencionada anteriormente, cualquier otra persona que trabaje en esto ahora tendrá que aprender su compilador de idioma a idioma. De lo contrario, van a estar jugando con el débil código "PHP" que es el resultado. Esto también significa que si trabajan en él, tendrá que volver a implementar esos cambios en su código, o arriesgarse a perder los cambios que alguien más haga.

Si odia trabajar con PHP, espere hasta que tenga que trabajar con parte del código que generan esos lenguajes.


"" Compilación cruzada entre idiomas "

Conduce a confusión, errores y errores. Cuando escribe código que se está traduciendo a otro idioma, se está eliminando de la fuente inicial. Lo que escribes y lo que se genera depende completamente del compilador. Escribir código para generar código se vuelve confuso, cometerá errores y encontrará errores que no espera. No recomendaría que los uses.

Josh K
fuente
55
Por favor, trate de no emocionarse demasiado con esto e intente no hacer demasiadas suposiciones. ¿Qué te hace pensar que no aprendí php "correctamente"? ¿De qué otra forma habría llegado a odiarlo? El código generado no es un problema para mí, ya que no quiero tocarlo. La depuración no es un problema, ya que rara vez uso un depurador. Otros desarrolladores tampoco son un problema, ya que la mayoría de los complementos de CMS no son grandes proyectos de todos modos. Haces afirmaciones muy amplias sobre haxe. ¿Puedes respaldarlos con ejemplos? Sería muy apreciado. Además, ¿hace cuánto tiempo lo usaste?
Kim
55
Entonces, ¿estás diciendo que el compilador crea un código php defectuoso? Esa es una de esas afirmaciones generales que me gustaría que respalde con un ejemplo. Otra afirmación amplia es "La compilación cruzada entre idiomas conduce a confusión, errores y errores". Por favor, da ejemplos de eso. Si desea analizar si PHP es un lenguaje que vale la pena usar, estoy seguro de que encontrará miles de personas en Internet que lo harán con usted. No soy uno de ellos
Kim
10
"Compilación cruzada entre idiomas: conduce a confusión, errores y errores". Extraño, y aquí estaba, pensando que cualquier compilador hizo exactamente eso: traducir un lenguaje a otro (como en ensamblador, C, código JVM ...).
foo
1
En realidad, al ser un programador profesional y tener muchos lenguajes / frameworks / API en mi haber (java, c ++, python, php, ruby, javascript, etc.), HaXe fue un faro de luz para mí. Por primera vez me encontré con un idioma que encontré que había hecho las cosas bien y que estaba "bien" en todos lados. No puedo entender cómo a alguien le puede disgustar. Para PHP, sin embargo, es limitado.
Dagnelies
1
Totalmente de acuerdo con la mayoría de los términos (especialmente sobre haxe). ¡Pero trabajar con php usando la sintaxis lisp es realmente divertido! Así que quiero estar en una parte tan extraña del código solo por diversión.
cnd
1

He usado numerosos traductores de idiomas, y al final siempre tienes que pensar mucho en lo que estás tratando de evitar ... Entonces, si odias PHP, solo espera hasta que tengas un problema realmente oscuro que te requiera meterse hasta el cuello en sus intestinos. Sin embargo, debo ser un glotón, porque creo que atacar a Neko con haXe sería genial.

tierra roja
fuente
Todos los compiladores son "traductores de idiomas". ¿Estás diciendo que no deberíamos usar compiladores? ;) Si tiene que "meterse hasta el cuello en sus intestinos" depende completamente de si el compilador está haciendo bien su trabajo, que es exactamente lo que estoy tratando de averiguar. A juzgar por las respuestas aquí, supongo que tendré que hacer mi propia investigación.
Kim
Me gustaría apuntar a Neko con haXe, pero no quiero depender del httpd de Apache. Me gusta poder elegir en los servidores web.
stesch
1

Si es para hacer un complemento para un PHP CMS, quédese con PHP.

Aunque uso HaXe y lo encuentro realmente genial, no lo recomiendo en este caso. Simplemente son demasiadas indirecciones y los costos serían más altos que las ganancias de solo un pequeño complemento.

dagnelies
fuente
-1

Ya he probado Haxe, y no puedo recomendarlo para el desarrollo web.

Sin embargo, me gustó el enfoque, por eso he implementado mi propio lenguaje minimalista que también se compila en PHP, pero de una manera mucho más directa que Haxe, para que sea fácil depurar el código generado e interactuar con el código PHP existente .

Codificador extático
fuente
¿Puede explicar por qué no recomienda Haxe?
Jay Elston