Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Haxe最新事情 2021年1月版

terurou
January 23, 2021

Haxe最新事情 2021年1月版

terurou

January 23, 2021
Tweet

More Decks by terurou

Other Decks in Technology

Transcript

  1. Haxe最新事情
    2021年1月版
    terurou
    2021-01-23

    View Slide

  2. terurou
    • デンキヤギ代表取締役
    • Haxe Foundationの方から来ました
    • hxnodejsのコミッターだけど、去年は全然動けなかった…
    • NGKの実行委員を12年ぐらいやってます
    1

    View Slide

  3. Haxeとは
    • 対応ターゲットがやたらと豊富
    • JavaScript, Java, JVM, C++, C#, Flash, PHP,
    Python, Lua, Neko, HashLink
    • 比較的モダンな構文(Haxe4~)
    • 高度な型システムとマクロ
    • コンパイルが高速
    2

    View Slide

  4. 3
    今日は言語自体の紹介よりも、
    Haxeの利用状況をメインで話します

    View Slide

  5. Haxeの主な採用事例
    • ワールドフリッパー [Cygames/Citail]
    • ポケットモンスター ソード・シールド [任天堂]
    • Haxe/Luaなので、スクリプトで使われていると推測
    • Dead Cells [Motion-Twin]
    • DAZN ←たぶん今は使っていない…
    4
    ゲームが多い!

    View Slide

  6. デンキヤギとHaxe/JS
    terurou管理プロジェクトは、だいたいHaxe/JS
    • yagisan-reports(自社開発の帳票APIサービス)
    • React
    • Cloudflare Workers
    • Azure Functions + Cosmos DB
    • Kintoneアプリ開発(業務システムコンサルティング)
    5

    View Slide

  7. [PR] yagisan-reports
    汎用帳票エンジン(要はPDF生成)+永続化+郵送を
    WebAPIサービス化したもの
    • 既存の帳票製品は価格が高すぎる
    or 安い製品はテンプレート機能が貧弱すぎる
    • 高速/無制限プレビュー(ブラウザ上でPDFを生成して解決)
    • PDFを生成できるだけでは実務では足りないよね
    • 例) 請求書を発行したから、同一データを保管しておきたい
    6
    クローズドユーザー募集中

    View Slide

  8. [求人] めんどくさいWeb開発をやってくれる人
    • ブラウザ上で動くアプリケーション
    • IDEと帳票エンジン
    • 2D/3Dグラフィックをゴリゴリ操作
    • WebRTC, WebAssembly
    • Azure Functions, Cosmos DB
    • Haxeだけでなくて、ScalaとかF#とかもある
    • UI設計とか業務分析とかもある
    7
    短時間正社員、
    フリーランス、アルバイト
    応相談

    View Slide

  9. 8
    スポンサー枠宣伝はここまで

    View Slide

  10. Haxeの最新情報をどう追えばいいか
    9
    Haxe Roundupを見ましょう!

    View Slide

  11. Haxe Roundup
    • 毎週、Haxeの開発状況や周辺情報をまとめてくれる
    • Haxe公式コミュニティが運営
    • https://haxe.io/
    10

    View Slide

  12. Awesome Haxe Game Development
    • Haxe製のゲームエンジンと周辺ライブラリについて
    まとめられたページ(GitHubリポジトリ)
    • https://github.com/Dvergar/awesome-haxe-
    gamedev
    11

    View Slide

  13. 12
    必要情報は伝えたので、
    あとは時間を気にせずに話していきます

    View Slide

  14. 13
    Q. Haxeってゲーム以外では使われてないの?

    View Slide

  15. Haxeってゲーム以外では使われてないの?
    • ゲームサーバーや周辺ツールは結構あるはず…
    • ゲームクライアントをHaxeで書いたら、当然、他の部分も
    Haxeで書きたくなるよね(連携部分のみの使用も含む)
    • Webフロントエンドでの採用は減少傾向
    • Massive Interactive社が買収された影響が…(2018年)
    • haxe-reactやhaxe-modulerなどの開発母体だった
    • DAZNやBBCにHaxeを突っ込んだのもこの会社
    • Haxeだったところも刷新時にTypeScriptになる傾向
    14

    View Slide

  16. Haxeサポートターゲットの現況(私見)
    • JavaScript, C++, PHP, JVM, Lua, HashLink
    あたりはユーザー側からのIssueやPRも多く活発
    • Flash, Java, Nekoも良い意味で枯れて安定
    • C#, Pythonは正直微妙な状況
    • 実際の利用者がかなり少なそう…
    15

    View Slide

  17. 16
    Q. Haxe/JSでWebフロントエンドってどうなの?

    View Slide

  18. Haxe/JSでWebフロントエンドってどうなの?
    • TypeScriptと比べると正直楽ではないがメリットあり
    • 多数派 vs まともな型システム
    • 高度な型システム、マクロ、コンパイル速度は捨てがたい
    • 人口が少ないので、ライブラリの型定義が無いことは多い
    • デンキヤギで使うものは、どんどん外部公開/PR出してます
    • Scala.jsを採用するのと同じような感じ
    17

    View Slide

  19. dts2hx
    • TypeScriptの型定義(.d.ts)をHaxe用に変換
    • Haxe準公式ツール(コミッターの人が開発中)
    • まだbeta未満だが、完成すれば大幅に状況が改善
    • 開発はもう1年ぐらいかかりそう?
    • https://github.com/haxiomic/dts2hx
    18

    View Slide

  20. ES Modulesへの対応
    • 現時点では未対応だが、一部は既に開発中
    • https://github.com/HaxeFoundation/haxe/issues/8033
    • webpackとの連携にはhaxe-modulerを使う
    • loaderもある : webpack-haxe-loader
    • ES Modulesになる訳ではないが、HMRは可能になる
    19

    View Slide

  21. 20
    Q. Haxe/C#でUnityってアリ?

    View Slide

  22. Haxe/C#でUnityってアリ?
    • たぶんないので、素直にC#で書いた方が良さそう
    • 過去に挑戦者を見かけているが、みんな長続きはしてない…
    • OpenFLとかHeaps.ioとか、Haxeネイティブの
    ゲームエンジンを使った方が幸せになりそう
    21

    View Slide

  23. 22
    Q. 最近のHaxeってどうなってるの?(言語機能)

    View Slide

  24. Haxe 4以降で入った主な機能
    • 比較的いまどきの構文
    • アロー関数、immutable変数(final)など
    • 代数的データ型(GADT)とパターンマッチ
    • JVMターゲット(まだ枯れてない)
    • null-safety(まだ実験的機能)
    • nullの混入をコンパイル時チェック。KotlinやSwiftにもある。
    • 最適化 : ループ展開、末尾最適化、DCE
    23

    View Slide

  25. 今後入る見込みのある主な機能
    • Module-level fields(Haxe 4.2)
    • classを書かずに、いきなり関数や変数が書ける
    • static filedのシンタックスシュガーとして実装
    • null-safety、JVMターゲットの強化(随時更新)
    • 新しい async I/O API (Haxe 4.3?)
    • ES Modules対応(未定、一部は開発中)
    • Coroutines(未定)
    24
    Haxe 4.2は
    そろそろ出そう

    View Slide

  26. まとめ
    • Haxe最新情報はHaxe Roundup
    • Haxeはゲームでの採用が多い
    • Webフロントエンドは若干弱いが、改善の見込みあり
    • デンキヤギも積極的に投資していく予定
    • Haxe4.2が近いうちに出るよ
    • Module-level fieldsの導入が特にセールスポイント
    25

    View Slide