altJSの選び方

14,327 views

Published on

Frontrend in NagoyaでのLT資料です

Published in: Technology
0 Comments
32 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
14,327
On SlideShare
0
From Embeds
0
Number of Embeds
1,008
Actions
Shares
0
Downloads
33
Comments
0
Likes
32
Embeds 0
No embeds

No notes for slide

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

×