haxeおよびPHPにコンパイルされる他の言語の経験はありますか?[閉まっている]


23

phpにコンパイルする言語を使用している人々から意見を聞きたいです。私が知っているそのような言語の1つはHaxeです。私が読んだ他のものは、キラファレンです。

これらの言語はPHPとどの程度うまく統合されていますか?それらの中でPHP CMSのプラグインを書くのは比較的簡単ですか?

実装とツールはどの程度成熟していますか?

php cmsを使用しなければならないが、phpが嫌いな人にお勧めしますか?


1
HaXeは良いです。少なくとも試してみてください。私はちょうどそれをインストールして、アップロードされたと、それは簡単だし、偉大なコミュニティがドキュメントの多くとその背後にあります(ダウンロードhaXeのに時間を含む)9minutesで私の最初のPHPページをテスト
JTS

PHPにコンパイルする型付き言語であるpratphall.orgを作成しました。
チャドレッツ

回答:


9

私は、Pharenの作成者であり、PharenはLisp方言をPHPにコンパイルします。あなたの質問に答えるために、それはPHPと非常によく統合します。既存のライブラリに関数呼び出しを含めたり、オブジェクトを使用したりするのは簡単です。

成熟度に関しては、Pharenコードの生産的な使用はまだありません。言語に関しては、必要なものはすべて揃っていて機能しますが、展開などにはまだ少し手間がかかります。

そうは言っても、もしあなたがファレンを選んだら、私はできる限り手伝ってもらえると嬉しいです。他に質問がある場合はお知らせください!


「既存のライブラリに関数呼び出しを含めたり、オブジェクトを使用したりするのは簡単です。」これは、CMS用のプラグインAPIを含む、ほとんどの外部ライブラリを操作するのに十分なはずです。元の投稿は、統合の意味についてあまり具体的ではありませんでした。また、成熟度(不足)の状態についても説明しました。
スクリプター

ご回答いただきありがとうございます。ファレンは他のLispと互換性がありますか?それは独自の演算子を持っていますか、それともPHPの演算子を使用していますか?たとえば、pharenの==はphpと同じように動作しますか?
キム

Clojureからインスピレーションを得て、現在は独自の方言です。その主な理由は、他の標準には、独自の標準ライブラリのように不必要な多くの荷物があるためです。PHPと同じ演算子を使用しているため、(== "foo" "foo")を使用できます
スクリプター

3

Josh Kはいくつかの点で正しいです。PHPランタイムをより適切にターゲットにするには、PHPを知っている方が良いでしょう。ただし、これの主な理由は、haxeが悪いコンパイラではないということではありませんが、そのphpはそのような「特異な」言語です。

PHPの基本名前空間には信じられないほどの量の関数があります。そのため、名前の競合を防ぐために知っておく必要のある予約済みのキーワードと特別な機能がたくさんあります。一部の人々はこれで問題ありません。恐ろしい言語設計だと思います。HaXeは、PHPで独自の名前空間を作成することにより、この問題を回避します。

PHPは、オーバーフロー時に整数を自動的に浮動小数点数に変換します。もちろん、これはHaXeのような言語が型の安全性に依存している(そして高速ハッシュアルゴリズムのような単純なものを可能にする)厳密な型付けを破ります。これは別のひどい言語機能だと思います。また、このphpの動作は変更できないため、haXeはここでは役に立ちません。

それで、そこに行きます。haXeは、PHPのいくつかの(認識されている)言語の欠陥をクリーンアップするため、PHPを改善すると思います。ただし、PHPには非常に多くの奇妙なことがあるため、その特異性のいくつかを修正するために、PHPをよく学ぶ必要があります。

とはいえ、haXe言語は非常に素晴らしいです。PHPコードをより良い名前空間に整理し、かなり洗練された型システムを持ち、PHP固有の問題を処理するための条件付きコンパイルオプションがあり、いくつかの素晴らしいドキュメント操作があります。これらの理由だけでも、洗練されたライブラリを設計することは悪い選択ではありません... PHPのようなものであってもです。

関連リンク:

PHPマジック:http : //haxe.org/doc/advanced/magic

(メインhaxe.orgサイトのコミュニティセクションで「プラットフォームの癖」も探してください)


ご回答有難うございます。haxeからphpを呼び出す、またはその逆の問題はありましたか?
キム

PHP(動的言語)にはhaXeに問題があります(静的型付けに依存)?すごい!PHPは少し奇妙な言語ですが、Perlにルーツがあることを考えると理解できます。「恐ろしい言語機能」であると信じているものと「標準的なダイナミズム」とは非常に似ているようです。
ジョシュK

1
動的ランタイム機能とともに静的言語機能を使用できます。それらは相互に排他的ではありません。HaXeは、この目的のために「動的」タイプインジケーターを使用します。名前空間と数学の操作は、実際には言語の動的性とは何の関係もありません。これらは単なるphpの癖です。
-jdonaldson

2

恐ろしいゴミ

私は誰かの推薦にhaXeを使用しましたが、何らかの理由で推薦しません。

言語間のクロスコンパイルは、混乱、間違い、エラーにつながります。また、デバッグは途方もないタスクになります。

php cmsを使用しなければならないが、phpが嫌いな人にお勧めしますか?

いや!PHPを適切に学習するか、別のCMSを使用することをお勧めします。CMSの部分では選択肢がないように思えるので、他のオプションは言語を学習して対処することです。

実装とツールはどの程度成熟していますか?

せいぜい若く、最悪では不安定。それらに対する多くのサポートは見つかりません。


PHPアプリケーション用に何かを書く仕事をしているようです。コードが既存のPHP関数/オブジェクトをインポートして動作する必要があるという明白な問題、および上記のジャンクに加えて、これに取り組んでいる他の誰もがあなたの言語を言語コンパイラに習得しなければなりません。さもなければ、彼らは結果である薄っぺらな「PHP」コードをいじります。これはまた、もし彼らがそれに取り組んでいるなら、あなたはあなたのコードでそれらの変更を再実装しなければならないことを意味します。

PHPを使用したくない場合は、これらの言語が出力するコードの一部を使用する必要が生じるまで待ちます。


「「言語間のクロスコンパイル」

混乱、間違い、エラーにつながります。別の言語に翻訳されるコードを書くとき、最初のソースから自分自身を削除します。何を書いて何を生成するかは完全にコンパイラ次第です。コードを生成してコードを生成すると混乱を招き、間違いを犯し、予期しないエラーを見つけることになります。それらを使用することはお勧めしません。


5
このことについて感情的になりすぎないようにし、あまり多くの仮定をしないようにしてください。PHPを「適切に」学習しなかったと思う理由は何ですか?他にどのように私はそれを嫌いになったでしょうか?生成されたコードは、触れたくないので問題ではありません。デバッガーを使用することはほとんどないため、デバッグは問題になりません。ほとんどのCMSプラグインはとにかく大きなプロジェクトではないので、他の開発者も問題ではありません。あなたはhaxeについて非常に広範な主張をします。例でそれらをバックアップしてください。ありがたいです。また、どのくらい前に使用しましたか?
キム

5
コンパイラがバグのあるphpコードを作成すると言っているのですか?これは、例を挙げてバックアップしていただきたい、幅広い主張の1つです。別の大まかな主張は、「言語間のクロスコンパイルが混乱、ミス、エラーにつながる」です。そのための例を挙げてください。PHPを使用する価値のある言語であるかどうかを議論したい場合は、インターネット上で何千人もの人々があなたと一緒にそれを行うと思います。私は彼らの一人ではありません。
キム

10
「言語間のクロスコンパイル-混乱、間違い、エラーにつながります」。奇妙なことに、ここで私は、どんなコンパイラでそれを行うと考えいました-ある言語を別の言語に変換します(アセンブリ、C、JVMコードなど)。
foo

1
実際、プロのプログラマーであり、多くの言語/フレームワーク/ APIを私のベルト(java、c ++、python、php、ruby、javascriptなど)に持っているHaXeは、私にとって光のビーコンでした。初めて、物事が正しく行われ、すべての面で「大丈夫」であることがわかった言語に出会いました。私は誰かがそれを嫌うことができる方法を理解することはできません。ただし、PHPの場合は制限されています。
-dagnelies

1
ほとんどの用語に完全に同意しました(特にhaxeについて)。しかし、lisp構文を使用してphpを操作するのは本当に楽しいです!だから私はただの楽しみのためにコードのそのような奇妙な部分になりたいです。
CND

1

私は多くの言語翻訳者を使用してきましたが、最終的には回避しようとしていることに関して常に多くのことをしなければなりません...ですから、もしPHPが嫌いなら、腸の首まで深く入ります。ただし、haXeでnekoをターゲットにするのはかなりクールだと思うので、私は食いしん坊でなければなりません。


すべてのコンパイラは「言語翻訳者」です。コンパイラを使用すべきではないと言っていますか?;)「あなたが腸に首を突っ込む」必要があるかどうかは、コンパイラがその仕事をうまくやっているかどうかに完全に依存します。ここでの答えから判断すると、私は自分で調査する必要があると思います。
キム

haXeでNekoをターゲットにしたいのですが、Apacheのhttpdに依存したくありません。Webサーバーで選択できるようになりたいです。
-stesch

1

PHP CMS用のプラグインを作成する場合は、PHPを使用してください。

私はHaXeを使用して本当に素晴らしいと感じていますが、この場合はお勧めしません。単純にインダイレクションが多すぎるため、小さなプラグインの場合よりもコストが高くなります。


-1

すでにHaxeを試しましたが、Web開発にはお勧めできません。

しかし、私はアプローチが好きだったので、PHPにもコンパイルする独自のミニマルな言語を実装しましたが、Haxeよりもはるかに直接的な方法で、生成されたコードをデバッグし、既存のPHPコードとやり取りしやすいままです。


Haxeを推奨しない理由について詳しく説明してください。
ジェイエルストン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.