158

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

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

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

4

11 に答える 11

130

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

簡単な答えは次のとおりです。絶対に!

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

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

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

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

どのプラットフォームにデプロイしても、言語は同じです。したがって、JS、Flash、C++などと同じ方法でクラス/インターフェイス/列挙型/typedefを定義します。定義するタイプが特定のプラットフォーム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これの本当の部分は、IDEを多くの面で改善してHaxeとの統合を改善できることですが、すでに多くの有効なオプションがあります。

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

于 2009-09-06T10:38:57.697 に答える
25

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

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

私の現在のプロジェクトでは、19歳で、主にタイムラインAS2 / AS3からHaxeクラスに移行し、AS2とAS3の両方のコードを移植していました。したがって、HaxeはAS3よりも使用が難しく、Flashで使用した場合とは大きく異なるとは思いません。安定性に関する限り、私の現在の主な不満は現在のFlashプレーヤーの側面です。フラッシュを開発する場合、Haxeは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を使用します。またはHaxe。私はFlashIDEとそのパワーに情熱を持っていますが、コードに使用することは決してありません。私のFlash作業のほとんどはコードであるため、私はLinuxのハードコアではありません。Haxeは、FlashIDEの使用を止めません。できる限りswfmillまたはsamを使用してください。

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

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

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

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

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

于 2009-09-06T12:20:05.027 に答える
18

Haxeの私の見解、

警告次の段落は非常に哲学的です(実用的な段落はさらに下にあります):

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

過去に、ある特定の言語で書くのに費やす時間は、結果を得るためにその言語を使用する必要がある量と、その言語を理解しやすいという2つの重要な要素に関係していることを発見しました。しかし、Haxeを使用すると、把握期間ははるかに短くなりました。これは、さまざまな言語での知識の蓄積が少ないためです。Haxeが自分にぴったりで、ちょうどいい感じになるものを見つけるまで、彼らは理解するのが難しいか、まったく役に立たなかった。少なくとも私の観点からは役に立たない。

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

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

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

実用的なもの:

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

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

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

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

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

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

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

そして最後に、Haxeは、開発者としてあなたからお金を稼ぐための大企業(または小規模企業)による大規模な民間ベンチャーではなく、すべての開発者が使用、構築、改善できるように作成されています。そしてそれが、Haxeが私がなりたい場所だと感じる理由です。(コーディングに戻ります)

于 2009-09-06T13:35:29.197 に答える
13

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

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

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

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

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

異なるターゲットで同じコードを使用する!私はこれ以上の移植性を持つ方法を想像することができませんでした。

PHPからmod_toraへのWebサイトの移行は、PHPの40〜80倍の速度で実行され、多くの場合、5分の作業が必要です。

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

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

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

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

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

于 2009-09-06T13:52:33.050 に答える
8

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

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

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

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

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

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

于 2009-09-06T17:18:58.950 に答える
5

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

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

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

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

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

于 2009-09-06T11:24:02.910 に答える
5

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

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

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

于 2009-09-06T12:14:31.250 に答える
3

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

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

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

于 2009-09-09T06:19:16.570 に答える
3

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

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

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

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

全体として、それは非常によくまとめられ、考え抜かれたものだと思います。そして、批判的には、すべてのプラットフォームで宣伝されているように機能します。

于 2009-09-06T16:20:53.047 に答える
2

はい、完全に

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

言語=素晴らしい-マイル開発環境で最高=悪い(現時点ではimho)

于 2009-09-06T11:55:26.383 に答える
1

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

現在、Haxeがどれほど優れていて適切であるかにかかわらず、あなたはアーリーアダプターの1人であり、アーリーアダプターが通常直面する問題に直面することは間違いありません。

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

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

于 2009-09-06T01:48:56.173 に答える