タグ

jsxに関するrydotのブックマーク (4)

  • なぜJSXをセルフホスティングすべきなのか - Islands in the byte stream (legacy)

    JSX をセルフホスティングしてnpm packageとしてリリースしました。 https://npmjs.org/package/jsx さてJSXコンパイラをJSXで書きなおしたわけですが、これは主にJSXコンパイラの質を高めるためです。JSXはJavaScriptと比較すると大規模な開発に向いている、というのがJSX開発チームの主張です。であれば、JSXコンパイラをJSXで書くことにより質を高められるはずです。事実、今回のセルフホスティングでtypoやリファクタ時のエンバグ、関数の引数間違いなどによるバグがいくつも見つかり改修されました。セルフホスティングはコンパイラの品質を高める一助になったといえます。 またもうひとつ、今回のJSXコンパイラの開発はJSXによる開発であり、この過程で得た知見が数多くあります。これにより、たとえばasの失敗がnullを返すのではなく例外を返すようにす

    なぜJSXをセルフホスティングすべきなのか - Islands in the byte stream (legacy)
  • JSXよりHaxeがイケてる3つの理由 - みずぴー日記

    Javascriptを生成できる言語『JSX』がリリースされました。めでたいですねー。 ただ同じくJavascriptを生成きるHaXeのことが忘れられている気がするので、宣伝します。 ステマじゃないよ! 型推論がイケてる 現時点でJSXには型推論が実装されてないので、関数を定義するには全ての型を書く必要があります。 // JSXだよ! function add(x : number, y : number) : number { return x + y; } これだけなら特に問題ないように見えますが、これが高階関数を定義しようとするとどんどん複雑になっていきます。 // JSXだよ! function f(g: function(:number):number): function(:number):number { return function(x: number): number

    JSXよりHaxeがイケてる3つの理由 - みずぴー日記
  • JSX の進化速度が半端ない - ぐるぐる~

    気に入らない所を直して pull request 投げたら、取り入れられたので、8 日前に書いたエントリが過去のものとなっちゃいました。 関数型 以前の JSX では、関数型は function(: int): string のように書く必要がありました。 これはこれでそのまま使えるのですが、新たに (int) -> string という形式にも対応しました。 ちなみに、複数引数はカンマ区切りで (int, boolean) -> string のようになります。 カリー化された関数は、 function(: int): function(: number): string の代わりに (int) -> (number) -> string と書けます。 引数を囲むカッコは、(今のところ) 省略不可能です。 これには 2 つの理由があります。 この機能を追加したとき、JSX のパーサの能力

    JSX の進化速度が半端ない - ぐるぐる~
  • JSX のアレな所 - ぐるぐる~

    注意!このエントリは既に古いので、JSX の進化速度が半端ない - ぐるぐる〜もあわせて読んでください。最新のコードを参照するのが手っ取り早いです。 JSX なる言語がリリースされました。 この言語が謳っているのが、 高速 安全 簡単(生産性が高い、とも) という 3 点です。 高速と安全はまぁいいでしょう*1。 問題は、はたしてこの言語は簡単なのか?という点です。 簡単かどうかは人によるのでアレなのですが、まぁ一部の人にとっては簡単とは言えない (というか書く気がしない) 書き方を強制されるのです。 関数型 数値を受け取って文字列を返す関数を表す型は、JSX では以下のように書きます。 function(:number):string これ単体で見ると分かりやすそうな気配はします。 では、これ読めますか? function f(g: function(:number):number):

  • 1