Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

altJSの選び方

15,044 views

Published on

Frontrend in NagoyaでのLT資料です

Published in: Technology
  • Be the first to comment

altJSの選び方

  1. 1. altJSの選び方 terurou デンキヤギ株式会社 2014/06/21
  2. 2. 自己紹介 1
  3. 3. 自己紹介/所属等 • デンキヤギ株式会社 代表取締役 • 社員, フリーランス, 協業企業 募集してます • DSTokai管理人 • 東海地方のメタコミュニティ • IT勉強会カレンダーっぽいやつの東海地方版 • NGK(名古屋合同懇親会) • エンジニア向けクロスコミュニティ忘年会 • ここ数年は100人超の参加者 2
  4. 4. 自己紹介/技術領域 • フロントエンドアーキテクト(自称) • 大量データ×フロントエンドが専門? • 数百万件以上をストレスレスに操作 • 100万件を編集するExcelっぽいヤツとか… • バックエンド込みのアーキテクチャ設計から フレームワーク・コンポーネント実装まで • 最近はHaxe製SPAフレームワークとか • Haxe/JS歴2年, その他にWPF, Silverlight等 • JavaScript歴は12年ぐらい 3
  5. 5. altJSとは? 4
  6. 6. altJSとは? • Alternative JavaScript • JavaScriptの代替プログラミング言語 コンパイル altJSで書かれた ソースコード JavaScriptの ソースコード 5
  7. 7. なぜaltJSが必要なの? 6
  8. 8. JavaScriptが色々つらい 7
  9. 9. JavaScriptのつらいところ • 言語仕様が難しく、柔軟すぎる • prototype, thisスコープ, クラスっぽい何か • 人やライブラリによってコードスタイルが 大きな差異がある • 結果的にレビュー, ドキュメントが増加… • 動的型付け • 静的型付けよりもバグ混入の可能性が高い • 学習コストの上昇, 保守性の低下へ… 8
  10. 10. それ ECMAScript 6 で… • 使える時代が来るまで待つのが… • 2014年12月を目標に仕様策定中 • 仕様に従ったブラウザが来るのはその後 • IE13以上?が普及した時代が来れば… • ES6が来ても全てが解決する訳ではない • 仕方ないのでJavaScriptは生成しましょう 9
  11. 11. altJSを選ぶ 10
  12. 12. altJSは100種類以上… https://github.com/jashkenas/coffeescript/wiki/List-of-languages-that-compile-to-JS 11
  13. 13. とりあえずメジャーなaltJSに絞る • TypeScript • 今一番の注目株 • 最近1.0がリリースされ、本も3冊出版された • Haxe • マルチプラットフォーム言語 • CoffeeScript • Railsに採用されている 安定性, 採用実績, 国内外のユーザ数, 将来性等を 考慮すると、このあたり(2014年6月時点) 12
  14. 14. ここから更に選定するためのポイント • 静的型付け or 動的型付け • 世間の流れは静的型付け • 静的型付けの方が開発効率や品質面で有利 • 前はそうでもなかったが、技術は進歩する • 開発対象 • Web? マルチプラットフォーム? … • Rails? PHP? Java? ASP.NET? … • メンバーの学習コスト • 既に習得済み? 近くの人に聞ける? 本は? • 過去にやったことがある言語に似てる? 13
  15. 15. TypeScript • モダンな言語仕様 • ECMAScript 6に似た構文(ES6の先行実装) • 静的型, 型推論, 構造的部分型, … • 開発体制, 品質が信用できる(Microsoft製) • 開発環境, 日本語情報が整備されている • コンパイルが遅い(数秒から十数秒) • 実際はバックグラウンドコンパイルするので 遅さが気になる場面は限定されるが… 14
  16. 16. Haxe • 構文は少し古臭いが、高度な言語機能 • ActionScript 3やC#に似た構文 • 静的型, 型推論, 構造的部分型, 代数的データ型, マクロ(AST変換)等、TypeScriptより高機能 • 若干JavaScriptとの親和性が低い • マルチプラットフォーム • JS以外にFlash, PHP, C++, C#, Java等 • 超高速コンパイル(数万行でも1秒未満) • なぜか名古屋と福岡にユーザが多い 15
  17. 17. CoffeeScript • JavaScriptの構文をとにかく軽量化 • Rubyに似ており、記述するのは非常に楽 • が、前提知識がないとコードが読めない • 動的型付け • altJSの草分け的存在 • Railsに採用されている • 歴史的経緯から現在のユーザ数は多いが、 今後のユーザ増加は望み薄っぽい 16
  18. 18. まとめ 17
  19. 19. 結局どれ?(個人の見解) • TypeScript • 特に決め手がなければコレ • 日本語文献(書籍, Web)が多数、今後も増える • Haxe • マルチプラットフォーム、ゲーム開発 • ML由来の高度な型システムとmacroが欲しい • コンパイルが遅い言語は使いたくない • CoffeeScript • Rails案件または既にユーザであれば… • 今から決め手もなく選択するのは、うーん… 18
  20. 20. altJSを使わないという選択肢もある 検討した結果、altJSを使うメリットがない ケースも当然存在する • jQueryでちょっとEffectをつける程度 • 俺たちはJavaScript忍者だ • altJSとか信用できない でも、altJSを適用すべき範囲は結構広い 19
  21. 21. 全てをaltJSに置き換える必要もない • ツールからJavaScriptすることが一般化 • Flash/CreateJSで書きだしたりとか • 生成コードをaltJSに書き直しとかありえない • altJSとJavaScriptが混在する開発スタイル, アーキテクチャは当たり前 • メンバー構成や担当作業に最適化 • もちろん無秩序にならないように設計は必要 20
  22. 22. 個人的には Haxe 推しです 今回の発表では詳細な解説は 全てすっ飛ばしたので、 質問・クレームは @terurou まで 21

×