Ihre Erfahrung mit Haxe und anderen Sprachen, die sich zu PHP kompilieren lassen? [geschlossen]

23

Ich würde gerne Meinungen von Leuten hören, die eine Sprache verwendet haben, die sich zu PHP kompiliert. Eine solche Sprache, die ich kenne, ist Haxe . Andere, über die ich gelesen habe, sind Kira und Pharen .

Wie gut lassen sich diese Sprachen in PHP integrieren? Ist es relativ einfach, in ihnen ein Plug-In für ein PHP-CMS zu schreiben?

Wie ausgereift sind ihre Implementierungen und Tools?

Würden Sie sie jemandem empfehlen, der ein PHP-CMS verwenden muss, aber PHP hasst?

Kim
quelle
1
HaXe ist gut. Zumindest versuchen Sie es. Ich habe es gerade installiert und meine erste PHP-Seite in 9 Minuten (einschließlich der Zeit zum Herunterladen von Haxe) hochgeladen und getestet. Es ist einfach und es steckt eine großartige Community mit vielen Dokumenten dahinter
JTS
Ich habe pratphall.org erstellt, eine typisierte Sprache, die zu PHP kompiliert wird.
Chad Retz

Antworten:

9

Ich bin der Schöpfer von Pharen, der einen Lisp-Dialekt für PHP kompiliert. Um Ihre Fragen zu beantworten, integriert es sich ziemlich gut in PHP. Es ist einfach, vorhandene Bibliotheken einzubeziehen, Funktionen aufzurufen und deren Objekte zu verwenden.

Was die Reife betrifft, wurde Pharen-Code noch nicht in der Produktion verwendet. Während in Bezug auf die Sprache alles vorhanden und funktionsfähig ist, ist für die Bereitstellung noch ein wenig zusätzlicher Aufwand erforderlich.

Das heißt, wenn Sie sich für Pharen entscheiden, würde ich Ihnen gerne helfen, so gut ich kann. Bitte lassen Sie mich wissen, wenn Sie weitere Fragen haben!

Scriptor
quelle
"Es ist einfach, vorhandene Bibliotheken einzubeziehen, Funktionen aufzurufen / deren Objekte zu verwenden." Was für die Arbeit mit den meisten externen Bibliotheken ausreichen sollte, einschließlich Plugin-APIs für ein CMS. Der ursprüngliche Beitrag war nicht zu spezifisch, was Integration bedeutet. Ich habe auch den Zustand seiner (mangelnden) Reife erklärt.
Scriptor
Vielen Dank für Ihre Antwort und für Ihr Angebot, mir zu helfen. Ist pharen mit anderen Lispel kompatibel? Hat es seine eigenen Operatoren oder verwendet es nur die in PHP? Verhält sich das == in pharen zum Beispiel genauso wie in php?
Kim
Es ist momentan ein eigener Dialekt, inspiriert von Clojure. Der Hauptgrund dafür ist, dass andere Standards viel Gepäck haben, wie ihre eigenen Standardbibliotheken, was unnötig wäre. Es verwendet die gleichen Operatoren wie PHP, so dass Sie (== "foo" "foo") verwenden könnten
Scriptor
3

Josh K hat in mancher Hinsicht Recht, es ist besser, PHP zu kennen, um die PHP-Laufzeit besser zu steuern. Der Hauptgrund dafür ist jedoch nicht, dass haxe ein schlechter Compiler ist, sondern dass php eine so "eigenwillige" Sprache ist.

PHP hat eine unglaubliche Menge an Funktionen in seinem Basis-Namespace. Es gibt also viele reservierte Schlüsselwörter und spezielle Funktionen, die Sie kennen müssen, um Namenskonflikte zu vermeiden. Einige Leute sind damit einverstanden, ich denke, es ist schreckliches Sprachdesign. HaXe umgeht dieses Problem, indem es in PHP einen eigenen Namespace erstellt.

Php wandelt automatisch eine Ganzzahl in ein Float um. Dies unterbricht natürlich die strikte Typisierung, auf die Sprachen wie HaXe für die Typensicherheit angewiesen sind (und um einfache Dinge wie schnelle Hashalgorithmen zu ermöglichen). Ich denke, das ist ein weiteres schreckliches Sprachmerkmal. Auch hier kann haXe nicht helfen, da dieses PHP-Verhalten nicht geändert werden kann.

Hier bitteschön. Ich denke, haXe macht PHP besser, weil es ein paar (wahrgenommene) Sprachfehler für PHP beseitigt. Es gibt jedoch so viele seltsame Dinge an PHP, dass Sie es erst gut lernen müssen, um einige seiner Besonderheiten zu beheben.

Trotzdem ist die Sprache von haXe ziemlich erstaunlich. Sie können Ihren PHP-Code in besseren Namespaces organisieren, haben ein ziemlich ausgeklügeltes Typsystem, einige bedingte Kompilierungsoptionen für die Behandlung von PHP-spezifischen Problemen und einige nette Dokumentationsoperationen. Schon aus diesen Gründen ist es keine schlechte Wahl, eine anspruchsvolle Bibliothek zu entwerfen ... auch für so etwas wie PHP.

Relevante Links:

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

(Suche auch nach "Plattform-Macken" im Community-Bereich der haxe.org-Hauptseite)

jdonaldson
quelle
Danke für deine Antwort. Hatten Sie Probleme beim Aufrufen von PHP aus Haxe oder umgekehrt?
Kim
PHP (dynamische Sprache) hat also Probleme mit haXe (hängt von der statischen Typisierung ab)? Tolle! PHP ist eine etwas seltsame Sprache, aber angesichts der Wurzeln in Perl ist es verständlich. Was Sie für "schreckliche Sprachmerkmale" halten und was "Standarddynamik" ist, scheint ziemlich ähnlich zu sein.
Josh K
1
Sie können neben dynamischen Laufzeitfunktionen auch statische Sprachfunktionen verwenden. Sie schließen sich nicht gegenseitig aus. HaXe verwendet zu diesem Zweck das Kennzeichen "Dynamisch". Namespace- und Mathe-Operationen haben eigentlich nichts mit Sprachdynamik zu tun. Dies sind nur Macken von PHP.
Donaldson
2

Schrecklicher Müll

Ich habe haXe auf Empfehlung von jemandem verwendet und würde es aus irgendeinem Grund niemandem empfehlen .

Kreuzkompilierung zwischen Sprachen führt zu Verwirrung, Fehlern und Irrtümern. Außerdem wird das Debuggen zu einer gewaltigen Aufgabe.

Würden Sie sie jemandem empfehlen, der ein PHP-CMS verwenden muss, aber PHP hasst?

Nein! Ich würde empfehlen, entweder PHP richtig zu lernen oder ein anderes CMS zu verwenden. Da Sie im CMS-Teil keine Wahl zu haben scheinen, besteht die andere Möglichkeit darin, die Sprache zu lernen und damit umzugehen.

Wie ausgereift sind ihre Implementierungen und Tools?

Bestenfalls jung, im schlimmsten Fall instabil. Sie werden nicht viel Unterstützung für sie finden.


Es hört sich so an, als ob Sie die Aufgabe haben, etwas für eine PHP-Anwendung zu schreiben. Abgesehen von den offensichtlichen Problemen, dass Ihr Code vorhandene PHP-Funktionen / -Objekte importieren müsste, um zu funktionieren, und dem oben erwähnten Müll, muss jetzt jeder, der daran arbeitet, Ihren Language-to-Language-Compiler lernen. Andernfalls werden sie mit dem fadenscheinigen "PHP" -Code herumspielen, der das Ergebnis ist. Dies bedeutet auch, dass Sie, wenn sie daran arbeiten, diese Änderungen in Ihrem Code erneut implementieren müssen, oder dass Sie riskieren, Änderungen zu verlieren, die andere Personen vornehmen.

Wenn Sie es hassen, mit PHP zu arbeiten, warten Sie, bis Sie mit einem Teil des Codes arbeiten müssen, den diese Sprachen ausgeben.


"" Kreuzkompilieren zwischen Sprachen "

Es führt zu Verwirrung, Fehlern und Irrtümern. Wenn Sie Code schreiben, der in eine andere Sprache übersetzt wird, entfernen Sie sich aus der ursprünglichen Quelle. Was Sie schreiben und was generiert wird, liegt ganz beim Compiler. Das Schreiben von Code zum Generieren von Code wird verwirrend, Sie werden Fehler machen und Fehler finden, die Sie nicht erwarten. Ich würde nicht empfehlen, sie zu verwenden.

Josh K
quelle
5
Bitte versuche nicht zu emotional zu werden und nicht zu viele Annahmen zu machen. Was lässt Sie denken, dass ich PHP nicht "richtig" gelernt habe? Wie wäre ich sonst gekommen, um es zu hassen? Der generierte Code ist für mich kein Problem, da ich ihn nicht anfassen möchte. Das Debuggen ist kein Problem, da ich sehr selten einen Debugger verwende. Andere Entwickler sind ebenfalls kein Problem, da die meisten CMS-Plugins sowieso keine großen Projekte sind. Sie machen sehr breite Ansprüche über Haxe. Können Sie sie bitte mit Beispielen untermauern? Es wäre sehr dankbar. Und vor wie langer Zeit haben Sie es benutzt?
Kim
5
Sie sagen also, dass der Compiler fehlerhaften PHP-Code erstellt? Dies ist eine der allgemeinen Behauptungen, für die ich Ihnen ein Beispiel geben möchte. Eine weitere allgemeine Behauptung lautet: "Kreuzkompilierung zwischen Sprachen führt zu Verwirrung, Fehlern und Irrtümern." Bitte geben Sie Beispiele dafür. Wenn Sie diskutieren möchten, ob PHP eine Sprache ist, die es wert ist, verwendet zu werden, werden Sie im Internet sicher Tausende von Leuten finden, die das mit Ihnen machen. Ich bin keiner von ihnen.
Kim
10
"Kreuzkompilieren zwischen Sprachen - Es führt zu Verwirrung, Fehlern und Irrtümern". Seltsam, und ich war der Meinung, dass jeder Compiler genau das getan hat - eine Sprache in eine andere zu übersetzen (wie in Assembler, C, JVM-Code ...).
Foo
1
Als professioneller Programmierer und mit vielen Sprachen / Frameworks / APIs (Java, C ++, Python, PHP, Ruby, Javascript usw.) war HaXe für mich ein Leuchtfeuer. Zum ersten Mal stieß ich auf eine Sprache, die ich für richtig befunden hatte und die von allen Seiten "in Ordnung" war. Ich kann nicht verstehen, wie jemand es nicht mögen kann. Für PHP ist es jedoch begrenzt.
dagnelies
1
Völlig einverstanden mit den meisten Begriffen (speziell über Haxe). Aber die Arbeit mit PHP unter Verwendung der lisp-Syntax macht wirklich Spaß! Also möchte ich nur zum Spaß in so einem seltsamen Teil des Codes sein.
CND
1

Ich habe zahlreiche Sprachübersetzer eingesetzt, und am Ende hat man immer zu viel zu tun mit dem, was man zu vermeiden versucht ... Wenn Sie PHP hassen, warten Sie einfach, bis Sie ein wirklich dunkles Problem haben, das Sie erfordert tief in den Darm eindringen. Allerdings muss ich ein Vielfraß sein, denn ich denke, es wäre ziemlich cool, mit haXe auf neko zu zielen.

roter Schmutz
quelle
Alle Compiler sind "Sprachübersetzer". Wollen Sie damit sagen, wir sollten keine Compiler verwenden? ;) Ob man "tief in den Darm greifen muss", hängt ganz davon ab, ob der Compiler seine Arbeit gut macht, und genau das versuche ich herauszufinden. Nach den Antworten hier zu urteilen, muss ich wohl meine eigenen Nachforschungen anstellen.
Kim
Ich möchte Neko mit haXe anvisieren, aber ich möchte nicht von Apaches httpd abhängen. Ich mag es, auf Webservern eine Wahl zu haben.
Stesch
1

Wenn Sie ein Plugin für ein PHP-CMS erstellen möchten, bleiben Sie bei PHP.

Obwohl ich HaXe benutze und es wirklich sehr, sehr gut finde, empfehle ich es in diesem Fall nicht. Es sind einfach zu viele Indirektionen und die Kosten wären höher als die Gewinne für nur ein kleines Plugin.

dagnelies
quelle
-1

Ich habe Haxe bereits ausprobiert und kann es für die Webentwicklung nicht empfehlen.

Allerdings hat mir der Ansatz gefallen, weshalb ich meine eigene minimalistische Sprache implementiert habe, die auch bis zu PHP kompiliert wird, jedoch viel direkter als Haxe, so dass es einfach bleibt, den generierten Code zu debuggen und mit vorhandenem PHP-Code zu interagieren .

Ekstatischer Kodierer
quelle
Können Sie erläutern, warum Sie Haxe nicht empfehlen?
Jay Elston