Haxeは学ぶ価値がありますか?[閉まっている]


153

Haxeを使用している人々にとって、それがあなたにとって何が便利なのでしょうか?ウェブサイトを読んでそれは非常に有望に見えます。それは重要な移植性を提供しますか?

現実の世界とは何ですか?

落とし穴や落とし穴は何ですか?


これまで聞いたことがない、面白そうだ。
JoshBerke 2009

9
なぜコミュニティに深刻な問題があるのでしょうか?コミュニティはそれほど大きくありませんが、非常に協力的です。メーリングリストの活動をご覧ください。
Franco Ponticelli、

4
短い答えはイエスです、それは学ぶ価値があります。他の誰かが上手に答えない場合は、後でより詳細な答えを書きます。
tylermac 2009

4
多分またこの質問を見てください:stackoverflow.com/questions/321204/haxe-in-the-field
TheHippo

2
学んでも害はないと思います。JSとASに非常に近いため、学習に費やした時間を他のプロジェクトに引き継ぐことができます。
Nosredna 2009

回答:


128

Haxeは学ぶ価値がありますか?

短い答えは:絶対に!

Haxeを使用している人々にとって、それがあなたにとって何が便利なのでしょうか?

あなたがウェブ開発者なら、あなたはあなたが単一の技術をあまり長く続けることができないことを知っています。遅かれ早かれ、環境またはターゲットの変更に対処する必要があります(.NET用に開発しますが、重要な顧客はPHPを必要とするか、そのウィジェットはJavaScriptではなくFlashにある必要があります)。これが最良のシナリオです。最悪の場合、常に同じ営業日に複数回切り替える必要があります。

これらのスイッチは、プログラミングパラダイムを何度も変更する必要があり、特定のターゲット用にライブラリをコーディングするときに多くの重複があるため、多くの時間を浪費する可能性があります。Haxeは、1つのソース言語(Haxe言語)と(Haxeコンパイラーを介して)多くの出力を用意することで、移行の苦痛を緩和しようとします。言語は非常に友好的で、あなたのバックグラウンドに関係なく、学ぶことは非常に簡単です。

ウェブサイトを読んでそれは非常に有望に見えます。それは重要な移植性を提供しますか?

言語は、どのプラットフォームにデプロイしても同じです。したがって、JS、Flash、C ++などの場合と同じ方法でクラス/インターフェース/列挙型/タイプ定義を定義します。定義した型が特定のプラットフォームAPIに依存しない場合は、まったく努力することなく、プラットフォーム間で再利用できます。 。すべてのプラットフォームは、XMLアクセス、HTTP接続、リフレクションなどの一般的なAPIも共有します。共通するもの(つまり、NekoとPHP)を持つプラットフォームは、ファイルアクセスやWebサーバー開発のようなものと同じAPIを共有します。

現実の世界とは何ですか?

  • Flash / Flexの経験がある場合は、コンパイラが作業を遅くする方法を知っています(唯一の利点は、待機中に休憩を取ることができることです;))。Haxeコンパイラーは何倍も高速であるため、ほとんどの場合、動作することに気付くことさえありません。
  • 生成されたバイトコードは、Adobeツールで生成された同等のコードよりもはるかに高速です。
  • また、Flashレルムでは、Haxeは関数を「インライン化」したり、Alchemyを使用して他の場所でのみ利用可能なメモリ機能にアクセスしたりできます。
  • 必要に応じて、ターゲットにするFlashのバージョンを6〜10に決定することもできます。APIは大幅に変更されましたが、Haxe言語はまったく同じです。

サーバー側について言えば、誰もがPHPがどこにあるのかを知っています。Haxeをターゲットとするアプリケーションを開発し、Webアプリケーションが成長した場合は、NekoまたはC ++にまで拡張できます。

落とし穴や落とし穴は何ですか?

一般的な誤解のリストは次のとおりです。

  • Haxe is young and immature実際には、Haxeはほぼ4歳になり、25の正式なリリース(ビルドではない)+ 13のアルファとベータがあり、絶えず更新され、非常に熱心なコミュニティがあります。いくつかの開発分野で多くの人が専門的に使用しています。メーリングリストのアーカイブを見て、人々がHaxeをどのように使用しているかを調べてください

  • Haxe is complicatedHaxeの主なターゲットは疑いもなくAS3であるため、ウィザードまたはGUIが必要であると人々は期待しています。述べたように、Haxeは言語およびコンパイラーであり、プログラマーには適していますが、デザイナーにはあまり適していません。

  • There aren't any IDEsこれの本当の部分は、Haxeとの統合を改善するためにIDEが多くの点で改善される可能性があることですが、すでに多くの有効なオプションがあります

  • The only book published is already outdatedここにもいくつかの真実がありますが、残念ながら、この本はメジャーリリースが発生するわずか数か月前(V1からV2)に発行されました。そのメジャーリリースはほとんど変更されませんでしたが、いくつかの非互換性が追加されました。本はまだ有効なリソースのままです(私が書いたので、それを言っているだけではありません;))


1
フランコの回答ありがとうございます。そしてIDEのリスト。私はHaXeのXcodeプラグインに興味をそそられます。すごく甘い!UIフレームワークキットとHaxeのストーリーは何ですか?たとえば、HaXeでsay Cocoaをターゲットにして、OS Xのネイティブウィジェットを取得することはできますか?基本的にインターフェイスビルダーを使用し、HaXeソースコードとリンクしていますか?
ゴードンポッター

C ++が十分にネイティブであれば、それは可能です。Cocoa呼び出しをラップして、haXeによって生成されたコードから「到達可能」にする必要があります。ご存知のように、haXeの現在のバージョンでは、iPhoneアプリの開発が可能になっています。もちろん、それはまだ非常に実験的です。C ++ターゲットが最新のリリースでのみ導入されたことを考慮してください。
Franco Ponticelli、

34
また、賞賛だけでなく、haXeにいくつかの短所があることも役立ちます。
アランクレメント2012年

私自身AS3プログラマーで、フラッシュが恐ろしく消えていくのを見て、haxeはどんどん良くなっています。
justnajm 2014

考えられる欠点に同意し、可能であれば、この答えの更新バージョンが可能であれば、私は本当にこのバージョンの更新版が欲しいです。
プロメテウス

25

「Haxeを使用している人々にとって、Haxeが何のために役立つのですか?」

クリエイティブフラッシャーとして、AS3の要点はもうわかりません。したがって、Flashユーザーコーダー/アーティストからの私の見解は次のとおりです。

私の現在のプロジェクトでは、私の指導の下で、主にタイムラインのAS2 / AS3からHaxeクラスに移動し、AS2とAS3の両方のコードを移植する19歳の人がいます。したがって、HaxeはAS3よりも使いにくく、Flashで使用する場合と大きく異なるとは思いません。安定性に関する限り、私の主な現在の不満は現在のFlashプレーヤーの側面です。Haxeは、Flashを開発するとき、AS3と同じかそれ以上に安定しています。

Flashの進化は、Flashの変更に伴って役に立たなくなるライブラリを作成する絶え間ないプロセスであり(毎年ソフトウェアを販売する必要があるのでしょうか?!)、コンポーネントは常に必要なものでしたが、サイズがばかげているので、私は望んでいません羊のようにFlexをフォローしたり、代替のXAMLに移動したりすることもできます。

Haxeの主な利点は、プラットフォームから離脱したクラスを作成することを本当に考え始めることができ、今から5年後にほぼ使用可能になることです。作成するどのAS3にも当てはまるとは思えません。Haxeのタイインは少ない可能性があります。コードをJavaScript、Silverlight、またはGoogleが次に提供するものにコンパイルできます。

Haxeに関する私の主な問題は、ほとんどの開発がMacで行われていないため、C ++のコンパイルの側面やHaxeの新機能がWindowsユーザーに続くこともありますが、FlashコンパイルなどのコアHaxeには問題がありませんでした。

デザイナーの観点から:私はビジュアルアセットに実行時にロードされるFlash IDEムービーを使用し、AS3での開発時に同じことを行うので、ワークフローはAS3 / Haxeに依存せず、シンプルな生活が好きなので、どちらのAS3にもTextmateを使用しますまたはハクセ。私はFlash IDEとそのパワーに情熱を持っていますが、コードに使用することは決してなく、私のFlash作業のほとんどは大部分がコードであるため、私は一部のLinuxハードコアではありません。HaxeはFlash IDEの使用を止めませんが、 swfmillまたはsamを使用できます。

問題は、なぜ将来のバージョンを販売するためだけに変更される可能性があり、Flashプレーヤーに限定されている商用言語AS3に時間を浪費するのか、です。

箱から出してすぐにjQueryなどを必要とせずにjavascriptでゲームまたは複雑なideを作成できる段階に到達するのに長い時間がかかりませんでした... Haxeはクロスブラウザーなどで動作します... Haxeを使用するとFlashを取得できますフラッシュの外側でプログラミングスキルとインターフェイス開発を理解している(これまでJavaScriptを実際に使用したことがなかった)場合、純粋なJavaScriptを習得した場合、おそらくそれほど有効になっていないと感じます。誰かが私の腕を切って、プラットフォーム固有のコードを非常に作成しているようなものです、今私はトゥイーニングにFEffectsを使用し、後でいくつかのコンパイラスイッチを追加し、他のいくつかのプラットフォームにコンパイルし、neash / nmeを使用できます。

私は実際には、コンパイラーが型について賢く、コードをよりクリーンにできるような側面が非常に好きです。そしてtypedefは素晴らしいです。

私はPHPを見て、それが厄介でばかばかしい汚い言語であり、JavaScriptでも同じであると判断しました。Haxeでそれらをターゲットにできるので、ブラックハックの魔法にあまり時間をかけなくてもいいと思います。

視覚的な創造性の急速な開発のためのコードを作成したい場合は、Haxeが理想的な言語だと思います。フリーランサーとしても、私はそれを商業的に使用しています。


18

私のハクセの見方

次のパラグラフは非常に哲学的です(実用的なパラグラフはさらに下にあります)。

短時間のプログラミングで多くのプログラミング言語を受け入れてきた人として、また何かがうまくいかないと感じたときに先に進む人として。私はHaxeは私が進歩することができないものであり、私は「それをより良く」することはできないと思います。

ある特定の言語で書くことに費やす時間は、結果を得るためにその言語をどれだけ使用する必要があるか、そしてその言語を理解するのがいかに簡単であるかという2つの主要な要因に関連することを以前に発見しました。しかし、Haxeでは把握期間がはるかに短くなりました。これは、さまざまな言語での知識の蓄積が少なかったことが原因です。Haxeまでは、本当に自分に合ったものを見つけ、それが正しいと感じるまでは、理解するのが難しいか、まったく役に立たなかった。まあ、少なくとも私の観点からは役に立たない。

Haxeは私が書いた方法で私をもっと表現力豊かにすることを可能にしました、私は誰もが言語について話している品質のように「表現力がある」という意味ではありません私が感じる方法は正しいです。成功するか失敗するか。

Haxeは、cスタイルの言語とAS2 / 3での一般的なバックグラウンドで、私にとって非常に簡単な学習曲線でした。新しい言語での進歩を常に妨げている1つのことは、その特定の構文/フレームワークの背後にある概念を理解することでしたが、そのハードルを通過した後でも、言語自体が制限されているか、制限されているか、またはその両方であることがよくあります。Haxeを使用すると、私は制限されず、言語自体が私を制限することに気づきません。Haxeではガラスの天井はありませんが、ガラスの床です。何ができるかに制限はありませんが、どのようにしてそこに到達したかははっきりとわかります。

Haxeを拾うことは、いくつかの棒を拾って火を作ることと同じではありません。その意味で、Haxeはマッチに近く、再利用できます。これは、以前使用していた変換のほとんどすべてを追跡しますが、便利な新機能を追加します。しかし、これを行うには、ホイールを完全に再発明するのではなく、腐ったビットを修正するだけです。(次の段落で類似点を少なくしてください)

実用的なもの:

言語はシンプルで簡単で標準化されていますが、プログラマーは好きなところに行くことができます。

あなたは非常に高レベルのコードを書いたり、小さな部分をいじったりすることができます(一部のプラットフォームでは深刻な程度です)

Haxeは、1つのプラットフォームでできることとできないことを指示するのではなく、すべてへのフルアクセスを提供します(または提供する予定です)。

メーリングリストは非常に役に立ち、反応がよく、フォーラムは今もペースを上げています。

言語は常に(マイナーな方法で)変更されており、リリースごとに新しいものが追加されています。

メインAPIで発生する実際のバグは非常に少なく、コンパイラーではさらに少なくなります。

誰もが言語についてその方向性と彼らがHaxeに提案する方向(そしてもちろんその方向をとるべき理由)について率直に話します

そして最後に、Haxeは、開発者としてあなたからお金を稼ぐための大規模な(または小規模な)会社による大きなプライベートベンチャーではなく、すべての開発者が使用、構築、改善できるように作成されています。だからこそ、私はHaxeになりたいと思っています。(今コーディングに戻る)


13

短い答えが必要な場合:はい!

Haxeを使用している人々にとって、それがあなたにとって何が便利なのでしょうか?

ほとんどの場合、サーバー側でHaxeを使用します。(これはPHPまたはnekoターゲットを意味します)。私の意見では、PHPは私が今まで使った中で最もしゃべる言語です。それがHaxeを使い始めた理由です:使いやすい言語を持っていること。

私にとってのもう1つの大きな利点は、Haxeがオープンソースであることです。

それは重要な移植性を提供しますか?

異なるターゲットで同じコードを使用する!移植性を高める方法は想像もできませんでした。

WebサイトをPHPからmod_toraに移行します。これは、PHPよりも40〜80倍高速であり、多くの場合、5分の作業で済みますか???

現実の世界とは何ですか?

  • 最大の利点は、コードの移植性とプラットフォーム間で通信するための優れたオプションであり、クライアントとサーバー間のデータ処理がこれまでになく簡単になりました。(wikiのRemotingセクションを見てください。)
  • コミュニティは素晴らしいです。(少なくともメーリングリストが好きなら。:-)
  • もう1つは、Haxeでサポートされていない非常にプラットフォームのネイティブな操作を実行する必要がある場合(ほとんど発生しません)、Haxeは常にそれらを対象とするオプションを提供します。それはハクセ魔法と呼ばれています。つまり、プラットフォームの母国語で実行できるすべてのことと、Haxeが提供するすべてのすばらしいことを実行できます。

落とし穴や落とし穴は何ですか?

  • ドキュメント、インストールは完全ではない場合があります。IDEのサポートは大幅に改善される可能性があります。
  • また、Haxeは非常に優れた言語を提供しているため、JavaScriptターゲットは使いづらい場合がありますが、最も一般的なDOM操作用の何らかのフレームワークがありませんが、一部の人はそれに取り組んでいると思います;-)
  • 私がクライアントのために働かなければならない場合、彼らは時々彼らのプロジェクトをそのような未知の言語で実現させるという考えを嫌います。

PS:新しい言語を学ぶことは、プログラミングのスキルと経験を向上させるので、常に価値があると思います。


mode_toraは面白そうですね。しかし、Apacheのhttpdがない/したい場合はどうしますか?nekoにはサーバーがありますが、ドキュメントにはそれは開発用だと書かれています。
stesch

8

さてあなたの質問はすでに答えられていますが、私はいくつかの短い言い訳を追加したいと思います。

私は最初のベータ版の後でHaxeを学び、集中的に使用し、それ以来ずっとそれを使用しています。言語とAPIの違いを本当に理解できるようになったのは、私が学んだ最初の言語でした(当時はまだ大学にいました)。

大学で、私は最初にAS2を学び、次にPHP、そしていくつかのJavascriptを学びました。プログラミングへの正式な紹介はありませんでした(そして、とにかくコンピュータサイエンスを勉強していませんでした)。これらの言語はすべてプラットフォームにかなり結びついているので、初心者プログラマーとして、strlen()などはPHP、MovieClipはAS2、...

Haxeを使用することで、プラットフォームがクラスを制限しなくなったため、オブジェクト指向デザインの価値を実際に理解しました。Flashプロジェクト用に記述されたコードを、プラットフォームの詳細から十分に分離すれば、通常のWebコードで再利用できます。

プラットフォーム間の通信に使用できる優れたリモート処理クラスがあるため、XMLはそれほど特別でもJSONでもないことに気づきました。XMLに作用するコードがなければ、XMLはすべて無意味です。

私のようにプログラミングを始めたばかりの人にとって、XMLが「クール」ですべてに適している時代には、それはかなり大きな啓示でした;-)


5

Haxeは非常に貴重な言語です。そのプラスポイントの多くは見過ごされがちです。たとえば、シンプルでありながら非常に強力なORM(Neko / PHP)、完全なクロスプラットフォームリモーティング(Flash / JS / PHP / C ++ / Neko)など、アプリケーション開発を非常に簡単にする素晴らしい組み込みライブラリがあります。サポートされているプラ​​ットフォームは、他のプラットフォーム、堅固な正規表現ライブラリ(Flash <8を除くすべてでサポートされています)などと通信できます。

メモとして、私は最近、Haxe for PHP / JS / Flashを使用してアプリケーションを作成し、開発速度が飛躍的に向上していることを発見しました。

確かに、Haxeはデザイナー中心ではないかもしれませんが、ハードコアでもありません。Haxeは学習と再利用が非常に簡単であり、ターゲットプラットフォームの数が増えるにつれて、Haxe開発者は新しいものを学ぶ必要なしにそれらをターゲットにすることができます。


4

私のHaxeの主な用途は、まだFlash開発に限定されています。それが他のターゲットに使用できるという考えに私はゆっくりと暖かくなっています。私はまだその方向の利点を見ていないし、私のPHPとJSを直接PHPとJSで実行します。

私はNekoバックエンド用に開発していませんが、フラッシュプレーヤーで実行できるだけでなく、コードのテストケースを作成してビルドスクリプトに統合できるため、すばらしいサポートを得られます。これは非常に優れた利点です。

コードと開発のオープンな性質も良い利点です。私は本当にプリプロセッサが必要だったので#line、Haxeにサポートが追加されました。アドビが私の要求を真剣に受け止めたことはないと思います。

型付き言語であることは、新しい現代の言語の多くに比べて大きな利点であることがわかりました。

言語の一貫性とバックエンドの透過性に関して、いくつかの落とし穴があります。ここで私に影響を与えるもののリストを保持しています。もちろん、この点で完璧な言語はありませんが、新しい言語に非常に多くの言語があることは、ちょっと残念です。


3

私はHaxeを約2年間個人的および専門的な用途でコーディングしてきました。他の言語から得られないという特定の利点があります。最大の利点は、新しいプラットフォームに柔軟に適応し、独自の機能を利用できる最新のプロダクショングレードコンパイラとしてほぼ最初から設計されたことです。 。これにより、Cの上位レベルのバージョンに最も近いものになります。Haxeでコードを記述した場合、そのコードを使い続けることができます。

コミュニティの理解はあなたが思うよりも強い-私は圧縮されたキロバイトの観点からリストのトラフィックを少し分析しました(http://lists.motion-twin.com/pipermail/haxe/のデータから)と結果は示していますYTD(Jan-September)は、2006年から毎年25-50%増加しています。過去6か月間でトラフィックは激増し、ダイジェストを検討しています。 1日以上。それは他の言語ほど宣伝されていませんが、それはつまり、Haxeにワゴンをつまんでいる人々が自信があり、知識の豊富なプログラマーである傾向があることを意味します。

人々は他のコンテキスト(どこでもスキーム、PythonまたはRubyのJSなど)で言語間コンパイラを試しましたが、それらの言語は別の場所と目的のために設計されており、翻訳では多くの最良の側面を失い、結果はハックをクールにしますが、日常の仕事には快適ではありません。Haxeはそのように感じていません。言語/ランタイムの統合から得られる便利さはありませんが、他にもたくさんのすばらしい機能があり、今すぐ提供できます


3

主観的に私は他のどの言語よりもハクセでより生産的だと思います。私は主にNekoとJavaScriptをターゲットとするHaxeを使用しています。

コンパイラ自体は非常に高速なので、スクリプト言語のようにHaxeを使用できます。オブジェクト指向に傾いていますが、いくつかの機能ツールがあります。ファーストクラスの機能、機能の一致、ラムダライブラリ。

猫の速度は十分だと思います。画像サイズが小さいため、制約のある環境に最適です。C FFIは優れています。新しい機能を追加するのは非常に簡単です。

JavaScriptクライアント側コントローラーにHaxeを使用して、標準のjQueryビューにイベントを発生させます。これは、クライアントとサーバーのコードを同時に型チェックして型なしの生のJSを最小限に抑え、通常のJSライブラリの利点を維持できるため、非常にうまく機能します。利用可能なJSONライブラリ。ところで、HaxeにはApacheなどのmod_ *が付属していますが、プロキシを使用する方がはるかに柔軟であるため、Webサーバーの背後に複数のNekoインスタンスを設定できます。

概して、それは非常によく丸められて考え抜かれていると思います-そして批判的にそれはすべてのプラットフォームで宣伝されているように動作します。


2

はい、完全に

しかし、より良いIDEとドキュメントが必要であり、私にとって(EclipseベースのIDEのような)優れたIDEの欠如は、すべての違いを生み、これにより、他の言語で行う生産性のレベルに到達できません。

言語=すばらしい-マイルごとの開発環境=貧しい(現時点ではimho)


1

それが始まって以来、私はレーダーにHaxeを持っていました。私はそれが非常に有望に思われることに同意しますが、開発者があなたが期待するほど早くそれを採用していないことに気付きました(RoRやFlexと比較しても)。

現在のところ、Haxeがどれほど適切で適切であるかに関係なく、アーリーアダプターの1人であり、アーリーアダプターが通常直面する問題に必ず取り組むことになります。

非常に役立つメンバーがいる非常に活発なメーリングリストがありますが、より多くの人々が参加し、より多くの本やリソースが書かれるまで、私はまだ待っています。

最後に、Haxeは単一言語で記述し、さまざまなプラットフォーム(主にJSとFlash、現在はNekoVM、PHP、C ++)をターゲットにするのに役立ちますが、本当に必要ですか?


1
それが採用率の公平な比較であるかどうかはわかりません。Flexの場合、それはアドビのスポンサー言語です。これにより、自動的に「ストリートクレディ」が得られます;)Railsが登場したとき、Rubyは10歳くらいのようなものでした。私が見てきたことから、より多くの人々がRoRに切り替えるよりも単純なRubyに切り替えるようです。対照的に、Haxeはそれの約半分古いものであり、開発中のHaxeには多くのフレームワークがありますが、レールのようにバイラルになったものはありません。
タイラーマック09/09/06

マジ?!RoRが登場する前にRubyを使用したRoR開発者の割合はどのくらいですか?また、開発プラットフォームが大企業によって提供されているかどうかは、(開発者として)私には関係ありませんか?HaXe IMOでは適応率が非常に遅くなっていますが、これが主な懸念事項です
Ammar、

新しいアプローチは必ずしも誰にとっても明白ではありません。私はRoRとペーパービジョンの両方に興味を持ち、近年拡大している両方のプロジェクトを覚えています。haXeは本当にその可能性を証明しており、両方よりも大きくなると思います。2〜3年;)
JLM

私の議論はまだ立っています:それは早すぎます:)
Ammar

1
@JLM:4年が経過しました。回答を編集して調整できます:)
Janus Troelsen
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.