Votre expérience avec haxe et d'autres langages qui se compilent en PHP? [fermé]

23

Je voudrais entendre les opinions de personnes qui ont utilisé un langage qui compile en php. Une de ces langues que je connais est Haxe . Les autres que j'ai lus sont Kira et Pharen .

Dans quelle mesure ces langages s'intègrent-ils avec PHP? Est-il relativement facile d'y écrire un plug-in pour un CMS PHP?

Quelle est la maturité de leurs implémentations et de leurs outils?

Les recommanderiez-vous à quelqu'un qui doit utiliser un php cms mais déteste le php?

Kim
la source
1
HaXe est bon. Essayez-le au moins. Je viens de l'installer et j'ai téléchargé et testé ma première page PHP en 9 minutes (y compris le temps de télécharger haxe), c'est facile et il y a une grande communauté derrière elle avec beaucoup de documents
JTS
J'ai créé pratphall.org qui est un langage typé qui se compile en PHP.
Chad Retz

Réponses:

9

Je suis le créateur de Pharen, qui compile un dialecte Lisp en PHP. Pour répondre à vos questions, il s'intègre assez bien avec PHP. Il est facile d'inclure des fonctions d'appel de bibliothèques existantes / d'utiliser leurs objets.

En ce qui concerne la maturité, il n'y a pas encore eu d'utilisation en production du code Pharen. Alors qu'en termes de langue, tout ce que vous souhaitez est là et fonctionne, des choses comme le déploiement nécessitent encore un petit effort supplémentaire.

Cela dit, si vous choisissez Pharen, je serais heureux de vous aider autant que possible. Veuillez me faire savoir si vous avez d'autres questions!

Scriptor
la source
"Il est facile d'inclure des fonctions d'appel de bibliothèques existantes / d'utiliser leurs objets." Ce qui devrait être suffisant pour travailler avec la plupart des bibliothèques externes, y compris les API de plug-in pour un CMS. Le message d'origine n'était pas trop précis sur ce que signifie l'intégration. J'ai également expliqué l'état de sa (manque de) maturité.
Scriptor
Merci pour votre réponse et pour votre offre de m'aider. Pharen est-il compatible avec tout autre lisp? A-t-il ses propres opérateurs ou utilise-t-il simplement ceux de php? Par exemple, le == dans pharen se comporte-t-il de la même manière que dans php?
Kim
C'est son propre dialecte en ce moment, avec une certaine inspiration de Clojure. La raison principale en est que d'autres normes ont beaucoup de bagages, comme leurs propres bibliothèques standard, ce qui serait inutile. Il utilise les mêmes opérateurs que PHP, vous pouvez donc utiliser (== "foo" "foo")
Scriptor
3

Josh K a raison sur certains points, il vaut mieux connaître php pour mieux cibler le runtime php. Cependant, la raison principale de ceci n'est pas que haxe est un mauvais compilateur, mais que php est un tel langage "idiosyncratique".

Php a une quantité incroyable de fonctions dans son espace de noms de base. Il y a donc beaucoup de mots-clés réservés et de fonctions spéciales que vous devez connaître pour éviter les conflits de noms. Certaines personnes sont d'accord avec cela, je pense que c'est une conception de langage horrible. HaXe contourne ce problème en créant son propre espace de noms en php.

Php transforme automatiquement un entier en flottant en cas de débordement. Bien sûr, cela casse le typage strict sur lequel des langages comme HaXe s'appuient pour la sécurité des types (et pour permettre des choses simples comme des algorithmes de hachage rapides). Je pense que c'est une autre caractéristique linguistique terrible. De plus, haXe ne peut pas aider ici, car ce comportement php ne peut pas être modifié.

Alors voilà. Je pense que haXe améliore le php car il corrige quelques défauts de langage (perçus) pour le php. Cependant, il y a tellement de choses étranges à propos de php, que vous finissez par avoir besoin de bien l'apprendre afin de corriger certaines de ses particularités.

Cela étant dit, le langage haXe est assez étonnant. Il vous permet d'organiser votre code php dans de meilleurs espaces de noms, a un système de type assez sophistiqué, a quelques options de compilation conditionnelles pour gérer les problèmes spécifiques à php et a quelques belles opérations de documentation. Pour ces seules raisons, ce n'est pas un mauvais choix de concevoir une bibliothèque sophistiquée ... même pour quelque chose comme php.

Liens pertinents:

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

(recherchez également les «bizarreries de la plate-forme» dans la section communautaire du site principal haxe.org)

jdonaldson
la source
Merci pour votre réponse. Avez-vous rencontré des problèmes pour appeler php depuis haxe ou vice versa?
Kim
Donc PHP (langage dynamique) a des problèmes avec haXe (dépend du typage statique)? Incroyable! PHP est un langage un peu étrange, mais étant donné ses racines en Perl, il est compréhensible. Ce que vous croyez être des "caractéristiques de langage horribles" et ce qui est du "dynamisme standard" semblent être assez similaires.
Josh K
1
Vous pouvez avoir des fonctionnalités de langage statique aux côtés de fonctionnalités d'exécution dynamiques. Ils ne s'excluent pas mutuellement. HaXe utilise à cet effet l'indicateur de type "dynamique". L'espace de noms et les opérations mathématiques n'ont vraiment rien à voir avec le dynamisme du langage. Ce ne sont que des caprices de php.
jdonaldson
2

Ordures horribles

J'ai utilisé haXe sur la recommandation de quelqu'un et je ne le recommanderais jamais à personne pour une raison quelconque .

La compilation croisée entre les langues entraîne de la confusion, des erreurs et des erreurs. Cela fait également du débogage une tâche monumentale.

Les recommanderiez-vous à quelqu'un qui doit utiliser un php cms mais déteste le php?

Non! Je vous recommanderais d' apprendre PHP correctement ou d'utiliser un CMS différent. Comme il semble que vous n'ayez pas le choix dans la partie CMS, l'autre option est d'apprendre la langue et de la gérer.

Quelle est la maturité de leurs implémentations et de leurs outils?

Jeune au mieux, instable au pire. Vous ne trouverez pas beaucoup de soutien pour eux.


Il semble que vous ayez le travail d'écrire quelque chose pour une application PHP. Outre les problèmes évidents que votre code aurait à importer des fonctions / objets PHP existants pour fonctionner, et les fichiers indésirables mentionnés ci-dessus, toute autre personne travaillant sur ce sujet devra maintenant apprendre votre langage au compilateur de langage. Sinon, ils vont jouer avec le code "PHP" fragile qui est le résultat. Cela signifie également que s'ils y travaillent, vous devrez réimplémenter ces modifications dans votre code, ou risquer de perdre les modifications apportées par quelqu'un d'autre.

Si vous détestez travailler avec PHP, attendez de devoir travailler avec une partie du code de sortie de ces langages.


"" Compilation croisée entre les langues "

Cela conduit à la confusion, aux erreurs et aux erreurs. Lorsque vous écrivez du code qui est traduit dans une autre langue, vous vous supprimez de la source initiale. Ce que vous écrivez et ce qui est généré dépend entièrement du compilateur. Écrire du code pour générer du code devient confus, vous ferez des erreurs et vous trouverez des erreurs auxquelles vous ne vous attendez pas. Je ne vous recommanderais pas de les utiliser.

Josh K
la source
5
S'il vous plaît, essayez de ne pas devenir trop émotif à ce sujet et de ne pas faire trop d'hypothèses. Qu'est-ce qui vous fait penser que je n'ai pas appris correctement le php? Sinon, comment aurais-je pu le détester? Le code généré n'est pas un problème pour moi, car je ne veux pas le toucher. Le débogage n'est pas un problème, car j'utilise très rarement un débogueur. Les autres développeurs ne sont pas non plus un problème, car la plupart des plugins CMS ne sont pas de gros projets de toute façon. Vous faites des affirmations très générales sur le haxe. Pouvez-vous les sauvegarder avec des exemples? Cela serait très appréciable. Aussi, depuis combien de temps l'avez-vous utilisé?
Kim
5
Donc vous dites que le compilateur crée du code php buggé? C'est l'une de ces affirmations générales que j'aimerais que vous appuyiez sur un exemple. Une autre affirmation générale est "La compilation croisée entre les langues conduit à la confusion, aux erreurs et aux erreurs." Veuillez en donner des exemples. Si vous voulez savoir si PHP est un langage à utiliser, je suis sûr que vous trouverez des milliers de personnes sur Internet qui le feront avec vous. Je n'en fais pas partie.
Kim
10
"Compilation croisée entre les langues - Cela conduit à la confusion, aux erreurs et aux erreurs". Étrange, et j'étais là, pensant que n'importe quel compilateur faisait exactement cela - traduire une langue dans une autre (comme en assembleur, C, code JVM ...).
foo
1
En fait, étant un programmeur professionnel et ayant de nombreux langages / frameworks / API sous ma ceinture (java, c ++, python, php, ruby, javascript, etc.), HaXe était un phare pour moi. Pour la toute première fois, j'ai rencontré une langue qui, selon moi, avait bien fait les choses et qui était "correcte" de tous les côtés. Je n'arrive pas à comprendre comment quelqu'un peut ne pas l'aimer. Pour PHP, c'est cependant limité.
dagnelies
1
Entièrement d'accord avec la plupart des termes (spécialement sur haxe). Mais travailler avec php en utilisant la syntaxe lisp est vraiment amusant! Je veux donc être dans une partie aussi bizarre du code juste pour le plaisir.
2012 à 9h55
1

J'ai utilisé de nombreux traducteurs de langue, et à la fin, vous avez toujours beaucoup à faire dans ce que vous essayez d'éviter ... Donc, si vous détestez PHP, attendez jusqu'à ce que vous ayez un problème vraiment obscur qui vous oblige pour aller jusqu'au cou dans ses entrailles. Cependant, je dois être un glouton, car je pense que cibler neko avec haXe serait plutôt cool.

terre rouge
la source
Tous les compilateurs sont des «traducteurs de langue». Voulez-vous dire que nous ne devrions pas utiliser de compilateurs? ;) La question de savoir si vous devez "aller jusqu'au fond des entrailles" dépend entièrement du bon fonctionnement du compilateur, et c'est exactement ce que j'essaie de découvrir. À en juger par les réponses ici, je suppose que je devrai faire ma propre enquête.
Kim
J'aimerais cibler Neko avec haXe, mais je ne veux pas dépendre du httpd d'Apache. J'aime pouvoir avoir le choix sur des serveurs web.
stesch
1

Si c'est pour faire un plugin pour un CMS PHP, restez avec PHP.

Bien que j'utilise HaXe et le trouve vraiment vraiment génial, je ne le recommande pas dans ce cas. C'est simplement trop d'indirections et les coûts seraient plus élevés que les gains pour juste un petit plugin.

dagnelies
la source
-1

J'ai déjà essayé Haxe et je ne peux pas le recommander pour le développement web.

Cependant, j'ai aimé l'approche, c'est pourquoi j'ai implémenté mon propre langage minimaliste qui se compile également en PHP, mais d'une manière beaucoup plus directe que Haxe, de sorte qu'il reste facile de déboguer le code généré et d'interagir avec le code PHP existant .

Codeur extatique
la source
Pouvez-vous expliquer pourquoi vous ne recommandez pas Haxe?
Jay Elston