web-dev-qa-db-ja.com

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

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

いくつかの現実の世界と、おそらく高く評価されている利点は何ですか?

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

151
Gordon Potter

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

簡単な答えは:絶対です!

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

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

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

ウェブサイトを読むと、とても有望に見えます。それは重要な移植性を提供しますか?

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

いくつかの現実の世界と、おそらく高く評価されている利点は何ですか?

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

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

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

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

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

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

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

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

127

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

創造的なフラッシャーとして、私は本当にAS3にそのポイントを見ていません! Flashユーザーのコーダー/アーティストからの私の見解は次のとおりです。

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

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

Haxeの主な利点は、プラットフォームから離婚したクラスの作成を実際に考え始めることができ、これから5年後にほとんど使用できるようになることです。作成するAS3には当てはまりません。コードをJavaScript、Silverlight、またはGoogleが次に提供するものにコンパイルできます。

Haxeの私の主な問題は、開発のほとんどがMacで行われていないことです。そのため、C++のコンパイルやHaxeの新機能はWindowsユーザーから引き継がれることがありますが、FlashコンパイルなどのコアHaxeには問題がありません。

デザイナーの観点から:実行時にビジュアルアセットにロードされるFlash IDEムービーを使用します。AS3で開発するときに同じことを行うため、ワークフローはAS3/Haxeに依存しません。シンプルな生活なので、TextmateをAS3またはHaxeのいずれかに使用します。FlashIDEとそのパワーに情熱を持っていますが、コードには使用せず、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は理想的な言語であり、フリーランサーとしても商業的に使用していると思います。

25
JLM

Haxeの私の見解、

次のパラグラフは非常に哲学的であるという警告です(実際のパラグラフはさらに下にあります)。

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

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

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

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

Haxeを手に取るのは、棒を手に取り火をかけるようなものではありませんが、外出してオキシアセチレンセットを購入し、それで火を起こすようなものでもありません。その意味で、Haxeはマッチに近いので、再利用できます。それはあなたが慣れ親しんだ何かのほとんどすべての変換に従いますが、便利な新機能を追加します。しかし、そうするためにホイールを完全に再発明するのではなく、腐った部分を修正するだけです。 (次の段落の類似点を少なくしてください)

実用的なもの:

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

非常に高レベルのコードを記述したり、小さな断片をいじったりすることができます(一部のプラットフォームではかなりの程度まで)

Haxeは、1つのプラットフォームでできることとできないことを指示せず、すべてに完全にアクセスできるようにします(または提供する予定です)が、できる場合は標準化された方法を追加します。

メーリングリストは非常に有用で応答性が高く、フォーラムのペースも上がっています。

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

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

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

そして最後に、Haxeは、開発者としてあなたから利益を得るための大企業(または中小企業)による大規模なプライベートベンチャーではなく、すべての開発者が使用、構築、改善するために作成されています。そして、それがHaxeが私がなりたい場所だと思う理由です。 (コーディングに戻ります)

18
Othrayte

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

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

ほとんどの場合、サーバー側にHaxeを使用します。 (これはPHPまたはnekoターゲット)を意味します。私の意見ではPHPは私が今まで使用した中で最も嫌な言語です。使用可能な言語。

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

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

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

WebサイトをPHP=から mod_tora に移行します。これはPHPの40〜80倍高速で、多くの場合5分で完了します。

いくつかの現実の世界と、おそらく高く評価されている利点は何ですか?

  • 最大の利点は、コードの移植性とプラットフォーム間で通信するための優れたオプションです。クライアントとサーバー間でデータを処理することは決して容易ではありませんでした。 (wikiの Remoting セクションをご覧ください。)
  • コミュニティはgreatです。 (少なくともメーリングリストが好きなら。:-)
  • もう1つは、Haxeでサポートされていない非常にプラットフォーム固有の操作を実行する必要がある場合(めったに起こりません)、Haxeは常にそれらを対象とするオプションを提供します。 Haxe magic と呼ばれます。言い換えれば、プラットフォームの母国語でできることすべてに加えて、Haxeが提供するすてきなことすべてができます。

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

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

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

13
TheHippo

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

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

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

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

プラットフォーム間の通信に使用できる優れたリモーティングクラスのために、XMLは特別なものではなく、JSONでもないことに気付きました。XMLは、それに作用するコードがなければ意味がありません。

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

8
Danny Wilson

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

ちなみに、最近、PHP/JS/Flash用のHaxeを使用してアプリケーションを作成しましたが、開発速度が飛躍的に向上したことがわかりました。

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

5
user169244

Haxeの私の主な用途は、Flash開発に限られています。私はそれが他のターゲットに使用できるという考えにゆっくりと温まっています。私はまだその方向での利点が見当たらず、PHP and JSをPHP and JS。

Nekoバックエンド向けには開発していませんが、コードのテストケースを記述し、フラッシュプレーヤーでのみ実行できるのではなく、ビルドスクリプトに統合できることを意味するため、非常にサポートされています。これは非常に良い利点です。

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

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

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

4

主観的に、私は他のどの言語よりもHaxeでの生産性が高いと感じています。私は主にNekoとJavaScriptをターゲットにしたHaxeを使用しています。

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

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

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

全体としては、非常によく丸みを帯びており、考え抜かれていると思います-そして、批判的には、すべてのプラットフォームで宣伝されているように機能します。

3
blackdog

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

コミュニティの取り込みはあなたが思っているよりも強力です-圧縮されたキロバイトの観点からリストのトラフィックを少し分析しました( http://lists.motion-twin.com/pipermail/haxe/のデータから )そして、結果は2006年以来毎年25-50%YTD(Jan-September)の増加を示しています。過去6ヶ月でトラフィックは本当に爆発しました、さもなければ私の受信箱は何百ものであふれるので消化するつもりですHaxeで1日以上放置した場合のメッセージの数。それは他の言語ほど誇張されていませんが、それは順番にHaxeにワゴンを引っ張る人々が自信を持って、十分な情報を持ったプログラマーである傾向があることを意味します。

人々は他のコンテキストで言語間コンパイラを試しました(Schemeどこでも、PythonまたはRubyなど)、しかしそれらの言語は別の場所と目的、および翻訳では多くの最良の側面を失い、結果はクールなハックになりますが、日々の仕事には不向きです。Haxeはそのようには感じませんが、便利さはありません言語/実行時の統合に由来するもので、他にもたくさんのクールなものがあります

3
James Hofmann

はい、完全に

しかし、それはより良いIDEとドキュメンテーション、偉大なIDE(Eclipseベースのもののような)の欠如は私にとってすべての違いを作り、私はできませんこれにより、私が他の言語で行う生産性のレベルに達します。

言語=素晴らしい-最高のマイル開発環境=悪い(この時点で私見)

2
nathan

Haxeが始まって以来、レーダーに乗っていました。非常に有望なように思えますが、開発者が期待どおりに素早く採用していないことに気付きました(RoRやFlexと比較しても)。

現在、Haxeがどれほど優れていて適切であるかに関係なく、あなたはまだ早期導入者の1人であり、早期導入者が通常直面する問題に必ず取り組みます。

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

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

1
Ammar