14

node.js、jquery などの今日の一般的な Web テクノロジを学習して使用するために、「javascript 派生言語」を使用したいと考えています。

関数型の概念と言語 (主に F#) をしばらくいじった後、Javascript の世界に同様のものがあるかどうかを調べています。これまでのところ、私が見つけて検討したのは次のとおりです。

  • Javascript の機能的な方法: アンダースコアやその他の機能的なライブラリを使用して、JavaScript の機能部分を可能な限り広く使用します。このアプローチの長所は、「母国語」を学ぶことです。私にとっての短所は、その構文が本当に好きではなく、Javascript で「機能第一」にプログラムするのがあまり自然に感じられないことです。
  • CoffeeScript + Underscore : CoffeScript + Underscore を使った魅力的な例をいくつか見てきました。例: http://autotelicum.github.com/Smooth-CoffeeScript/SmoothCoffeeScript.html#toc-CoffeeScript.html#toc-Chapter-7
    これの長所は、CoffeScript が広く普及しており、言語で使用するために設計された言語の事実上の標準のように見えることです。 JavaScript VM. その構文は私にとってより自然に感じられ、より簡単な方法で機能的な方法でいくつかのことをプログラムすることができました.
    短所は、JavaScript自体から遠く離れており(これは私にとってそれほど問題ではありません)、真に機能しない中間点にあることです。
  • Livescript : Coco (それ自体は CoffeScript から派生) から派生したもので、私にとってより魅力的な構文を持っています (F# からの私の最愛のパイプライン '|>' 演算子さえあります)。長所は、それが最も機能的なアプローチであることです。短所は、それがあまり広まっていないことです (私は SO で検索を行いましたが、実際には何もありません)、それが意味するすべて (コミュニティ、サポート、チュートリアルなどはあまりありません)。

これらすべてについてしばらく考えた後、私は本当の結論を出すことができないので、javascript や CoffeeScript などで作業することに慣れている人々が、この懸念の真の重要性について私を導いてくれたら素晴らしいと思います。

念のため... Pitの使用を実際に検討したことはありません(したがって、F#を引き続き使用します)。これは、javascriptにコンパイルされますが、上記のようなjavascriptライブラリと統合されず、同じワークフローに従わないと思うためですまたは、リストされているオプションと同様に、javascript エコシステムと統合します。

どうもありがとう!

4

3 に答える 3

10

私はおそらく少し偏見があります (私は LiveScript の作成者です) が、LiveScript を試してみてください! 私は現在、アンダースコアよりも優れた統合を行う標準ライブラリに取り組んでいます。おっしゃる通り、まだ使っている人は少ないですが、どこかでコミュニティを作らないといけないですね!あなたが指摘したように、他のすべての条件が同じであれば、それが最良の選択肢のように思えます。

于 2012-05-25T01:47:47.997 に答える
2

基本的に次の 2 つのオプションがあります。

  • CoffeeScript などの JS 派生言語を使用する
  • 関数型言語を JS コンパイラに使用する

オプション 1 については、おそらく、他の JS コードとの相互運用性を確保するための最良のオプションです。に慣れていない可能性のある他の JS 開発者と実際に作業したい場合にも最適なオプションです<insert functional language>

実際に JS にあまり詳しくない場合は、オプション 1 をお勧めします。特に、JS の基盤を理解していない場合、選択した言語/ツールでバグに遭遇した場合、物事がどのように機能するかを理解するのは難しいかもしれません。

オプション 2 は、お気に入りの言語の利点を JS で利用できる可能性が高いため、より興味深いものになる可能性があります。あなたが言及したPitプロジェクトに加えて、HaskellをJSにコンパイルする試みがいくつかありますが、これもオプションになる可能性があります。

オプション 2 の欠点は、おそらく、プロジェクトが今日まで (私の知る限り) あまり進歩しておらず、あまり効率的でない JS コードにコンパイルされる可能性があるという事実です。

最後に、CoffeeScript に似た JS ベースの Haskell スタイルの言語がいくつかありましたが、その名前を忘れたようです。誰かがそれが何と呼ばれていたかを理解できれば、試してみる価値があるかもしれません:D

于 2012-05-24T22:24:55.487 に答える
2

そして、""FUNCTIONAL"" 関数のライブラリ、+ coffeescript + アンダースコア ;) についてはどうでしょうか。

http://osteele.com/sources/javascript/functional/

于 2012-05-24T22:34:40.990 に答える