特に理由はないやけど関西弁書いてみたいさかい書いてみてん。

JavaScriptはカオスねん。フレームワークなどでなんとかする人もおるやけど、言語そのものを修正する方法もあるやん、ちゅうことで宿題でJSにコンパイルする言語を五つも使ってみてん。

ソースコードねん https://github.com/b123400/csci4140-youtube-remote

ES6 + Babel.js

未来から来たJSな、まあJSやけど。

  • まだJSんでクソな部分はまだクソや、それかて文法はよくなっとるさかい、まあええやん。
  • 矢印=>で関数を作るのは便利、関数の中で新しいthisが欲しい場合はクラスメソッド以外ほんまないねぇ、やったらクラスの新しい文法も使うと今回はfunctionを一切書かんで済むや!
  • GeneratorとIteratorはかっこええ、かて今回は宿題が簡単すぎて使えへんねん。

まあ大体昔のJSよりようなっとる、かて世界を変わるくらいすげーやなお。普通に使えるようなったら、新しいもんをコミュニティーはどないやって使うんか楽しみねん!

TypeScript

  • 型付けJSや
  • やっといた損はない感じね、JSをメインテインナーブルにするええ方法
  • いつでもJSに戻れるやからなってみな
  • 型付けは必要やない、嫌いな人はせんでええ
  • 外部のコードを使う時はそんなコードの方も宣言しといたほうがええやけど、それちょい大変な
  • 幸いそんなことやってる人結構いるわ jQuery

JSを進歩させるにゃあとっても安全な方法、どないしたらええんかわからん人かてとりま始めりゃええんで。TypeScriptを書くのは普通のJSよりもうちょい時間かかるやけど、それはいつか報われるで。ちなみに型付けならFacebookのFlowも注目な。

Haxe

  • JSにゃコンパイルするが、そんな近いわけちゃう
  • もっと硬いOOPの感じ
  • オブジェクトは全部型付けで、いろんなこともHaxeのやり方でやらんとあかんね、例えばMapを使わんとあかん場合があって、それをJSでやると簡単なオブジェクトだけで済むのになー
  • 一番拡張できそう(演算子も上書きできるし)
  • 言語自体はクロスプラットフォームやけど、APIやない
  • 外部コードも型付けが必要でめっちゃ大変、TypeScriptのように人気やないやから自分で書かんとあかんね
  • ほんでこれ使うの誰やん?
    • Javaから来てJS大嫌いマン?
    • 新しいプラットフォーム使いたいやけど新しい言語勉強したくないマン
  • パフォーマンスはよくなさそう

CoffeeScript

  • ただのJavaScriptな、ちゅうキャッチフレーズと通り、ようなったのは文法な
  • 新しい機能はそんな増えてへん、文法てきに便利だけや、結局JSわからんとあかん
  • 開発する時めっちゃ便利、効率めっちゃあがるねん
  • コンパイルされたJSも読みやすい
  • 最新な技術をどんどん導入する感じやない
    • Generatorはやろうって言いつつ二年待ったわけや
    • 関数に名前を付けるのはIE8のせいで実装してへん
  • 未来はどないなるんえん、ES6との関係あいまいやし、for offor inの動きはES6とちゃう

CoffeeScriptさんと最初あった時えらい感動したねん、思ってるものを一瞬でかけるやから、よう使うパターンを文法に取り込んでスピードを上げる感じ。a?.b.c?()でnullかどうかをチェックせんで実行できるとか、自動的にreturnをする機能も便利やん。今はええんやけど、未来はどないやろう。Generatorを二年も掛かってんとかはともかく、「すべてのブラウザがサポートするかては実装せへん」ちゅうことはアップデートがあんまあらへんことや。すごい新しいもんを使いたい場合はCoffeeScriptやめな。今新しいプロジェクトを始めるんならうちはコーヒーよりもES6な。

LiveScript

  • この五つの言語の中に一番好きやねん
  • CoffeeScriptの友達、文法も似とるところ結構ある
  • Haskellに似てるライブラリー prelude-ls がある、個人的にすきねん
  • 関数系のプログラミングに向いてそう、パイピングとかもあるし|>
  • 左向きの矢印<-はNode.jsのcallbackベースのパターンに向いとる
    • ここにsocket.ioやhttpとか非同期処理がぎょうさんあるファイルやけど、インデントはなんとただの二段!
  • 新しい技術をどんどん導入する感じ、>>>>>>>importみたい機能はJSにないやけど便利なもん
  • パターンを言語に入れる、curryingとか、dash-var-nameをcamelCaseにする機能とかやね
  • 特定のプラットフォーム向けの機能もある、Node.jsでしか使えんrequire!exportとか
  • やっぱ罠もなくはない

    a[1 to 1] = []; // a[1] = [];
    a[x to x] = []; // a.splice(x,1);
    
  • ほんでコンパイルされたJSはコーヒーうよりちょっと読みつらい

LiveScriptむっちゃかわいいもんで、小さいプロジェクトを作るんならやってみな。かてほんまに長く続くすごいプロジェクトを作るんやらやっぱES6かTypeScriptのほうがええと思うや。

Blog Logo

b123400


Published