タグ

JSXに関するsasaplus1のブックマーク (38)

  • HTML to JSX

    HTML to JSX Compiler Loading...

  • JSX誕生秘話

    ※この記事は、JSX Advent Calendar 2013の一部です。 今日は12月24日、クリスマス・イヴです。それにちなんで、JSXがいかにして生まれたのか、というお話をしましょう。 元々は、2012年2月17日にさかのぼります。私は翔泳社開催の「Developers Summit 2012」の講演が終了し、登壇者の皆様と控え室で歓談しながら10周年コラボパーティの開場を待っておりました。そこでJenkinsの生みの親である川口耕介さんとお話をする機会がありまして、もう付き合いが20年近くになるんですかね、まあ会うたびにお互いに歯に衣を着せないで相手を容赦なくディスるんです。 で、そのとき私は川口さんに「お前まだJavaScriptなんて書いてんの?型がない言語を使うとか正気か?(意訳)」というツッコミを受けまして、もう完敗だったわけです…。 というわけでその場(控え室)で川口さん

  • とあるプログラミング言語処理系のセルフホスティング化に携わった - wasabizの日記

    2013-12-15 とあるプログラミング言語処理系のセルフホスティング化に携わった (この記事はJSX Advent Calendar 2013の一部として書かれました。) 僕がJSXというプログラミング言語の開発に携わってこの冬で早1年半になります。コンパイラとしてのjsxにはこの1年半で幾多の出来事がありましたが、その中でも一番巨大なものがセルフホスティングでしょう。つまりJSXのコンパイラをJSX自身で書きなおすということです。 メインラインのコードをまるまる入れ替えるこのセルフホスティングは大きな苦労を伴いました。実際、通常のポーティングとは違いコンパイラそのものを入れ替えてしまうわけですから、バグの出方などもなかなか味わい深いものです。 JSXセルフホスティングを行ってから既に1年が経過しようとしています。今までこの作業の苦労について外で話したことは無かったのですが、「プログラ

  • JavaScriptで高速なコードを書く際の注意点。または私は如何にして心配するのを止めてJSXを作ることにしたか

    JavaScriptで高速なコードを書く際の注意点。または私は如何にして心配するのを止めてJSXを作ることにしたか 日、福岡で開催されたプログラミング言語のパフォーマンスを考えるイベント「ぷろぐぱ」で、「JSX 速さの秘密 - 高速なJavaScriptを書く方法」という演題で講演しました。 JavaScriptで速いコードを書こうとする際に陥りがちな罠を紹介し、それらの問題にJSXではどうやって対処しているか、プログラミング言語設計と最適化機能の実装を説明しました。プログラミング言語設計に興味がある方にとっても、JavaScriptを使ったプログラミングに興味がある方にとっても面白い内容になっているかと思います。

  • JSX の使い方 自分メモ - latest log

    (ε・◇・)з o O ( JSXは日語ドキュメントがほぼないので〜 (ε・◇・)з o O ( 書き溜めといた奴を公開するよー (ε・◇・)з o O ( でも、色々と端折ってるので (ε・◇・)з o O ( 不足してる部分は、あらびき日記 や wiki や JSX公式ドキュメント を合わせてご覧ください〜 (ε・◇・)з o O ( 最新の JSX ネタも合わせてご紹介 http://d.hatena.ne.jp/gfx/20130726/1374890217

    JSX の使い方 自分メモ - latest log
  • 「JavaScriptのイディオム集@nmi.jp」をJSXでやるとどうなるの、っと - Islands in the byte stream (legacy)

    JavaScript イディオム集 を JSX でやってみました。jsx --testで実行できます。 総じて見ると、値の変換は「x as string|number|int」でできる分単純になっているほか、全体的に単純になっていて覚えるべきイディオムは少なくなっています。また、~array.indexOf(item)のような高速化のためのイディオムは不要です*1。 このあたり、他の AltJS でどうなのかも知りたいですね。 import "test-case.jsx"; import "js.jsx"; class _Test extends TestCase { // 数値化 function testNumify() : void { var v = "123"; this.expect(v as number + 100).toBe(223); // Math.parseFloa

    「JavaScriptのイディオム集@nmi.jp」をJSXでやるとどうなるの、っと - Islands in the byte stream (legacy)
  • なぜ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)
  • 静的型付けをもつJavaScriptへのトランスコンパイル言語を味見してみた その2 | DevelopersIO

    前回の訂正 前回の続きでHaxe、JSX、TypeScriptの言語機能についてまとめていきたいと思いますが、その前に前回の記事の内容に訂正があります。 JSXのコンパイラはJavaScriptで書かれている。 JSXとTypeScriptの型推論に関して、関数の型が明示されていれば関数の引数と戻り値の型は省略可能。 前回の記事も訂正してあります。 では、気を取り直して前回の続きに入りたいと思います。 型パラメータ HaxeとJSXはクラスに型パラメータを持つことができます。JavaやC#のジェネリクスに相当するものです。JSXは常に非変ですが、Haxeは条件によっては共変や反変になります。TypeScriptは正式リリースまでに実装される予定があるようです。 以下、前回作ったFruitインターフェース、Appleクラス、Fujiクラスを使ったサンプルです。 Haxe class Bag<

    静的型付けをもつJavaScriptへのトランスコンパイル言語を味見してみた その2 | DevelopersIO
  • TypeScriptのファーストインプレッション - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く

    TypeScriptで遊んでみている。 書いてて気持ちいい部分 コンパイル時に型チェックが走るのがすばらしく安心感がある。 素の JS にすごく近い。Coffee とか JSX は 「新言語」って感じだけど TypeScript は better JS って感じ。コンパイル後のソースとの乖離が少ないのでそこに脳力使わなくても済む。 書いてて気持ち悪い部分 素の JS にすごく近い。腐るほどある JS のダメな部分をかなり残している。JSのバッドノウハウ健在。 リスト操作もうちょっとサポートしてほしい。 で、結局どうなのよ 私は TypeScript かなりいい感じだなーと思っている。CoffeeScript とか JSX は JavaScript の「ダメなところ」をきちんと wrap してくれてるのが良いが、CoffeeScriptは型がゆるゆるで深夜のドンキホーテに居そうな感じするし、

    TypeScriptのファーストインプレッション - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く
  • なぜ次々とJavaScriptコンパイラが生まれるのか。 — DECONCEPTER

    最もJavaScriptに近いJavaScriptコンパイラ 先日MicrosoftからTypeScriptというJavaScriptコンパイラが公開されました。ファーストインプレッションとしては今までのJavaScriptコンパイラと比べると若干敷居が低く感じます。まず驚いたのはドキュメントがWordファイルだったこと。早速ダウンロードしてみたら一部文字化けしていました。さすが。PDFも用意されていたのでかろうじてドキュメントを読めました。Webページで用意して欲しい。 JavaScriptの記法そのままに型付けができる TypeScriptでまず好印象なのがJavaScriptのコードをそのまま書いてもコンパイルされるところ。又、「Type」ScriptというだけあってさらにJavaScriptの記法に型を付けられる。例えばstringと指定すればstringのプロパティをシンタックス

  • Code/JSX - CODE CODIUM.

    The MIT License Copyright (c) 2012 CODE CODIUM. All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software,

  • JSXの学び方 - Islands in the byte stream (legacy)

    JSXをどうやって学べばよいか、メモしておきます。 言語仕様 言語仕様は jsx.github.com にドキュメントがあるほか、実例としては言語仕様のテストである JSX/t/run/*.jsx が参考になります。特に JSX/t/run/*.jsx は実際に開発するとなると頻繁にgrep することになると思います。 http://jsx.github.com/doc.html https://github.com/jsx/JSX/tree/master/t/run また、組み込み関数の挙動はJavaScriptと同じなのでリファレンスとしてはMDNがいいでしょうし、実際のシグネチャは lib/built-in.jsx を見るといいでしょう。 DOM操作 / ブラウザAPI DOM用APIは、"js/web.jsx" をimportする必要があること、windowやdocumentがグロ

    JSXの学び方 - Islands in the byte stream (legacy)
  • GitHub - jsx/mizuki: Basic utilities for JSX

  • よーし、パパ酔った勢いでJSXに盛り上がっている連中をdisっちゃうよ〜 - mitamex4uの日記

    念のため書いておくけど、俺はJSXの開発者をdisったりはしない。 俺は車輪の再発明が好きだし、何よりモノを作る人間は素晴らしい。 しかし俺は今JSXに盛り上がっている連中にとてつもなく違和感を感じている。 JSXが登場した時にはすでにHaxeがあった。 JSXは開発途上だから今後に期待するが、現時点ではHaxeの方がはるかに洗練された言語であることは間違いない。 もう一度言うぞ。現時点ではHaxeはJSXより間違いなく優れている。 俺は静的型付け言語が好きだと言った。だがな、型はプログラミングを楽にするためのものであって、型のためにプログラミングするのは嫌なんだよ。 大人が誰も言わないなら俺が言ってやる。 型推論の無い静的型付け言語はクソだ。 型推論の無い静的型付け言語をありがたがって使う奴はドMだ。 JSXは現状では型のためにプログラミングする言語だ。 でもいいんだよ。JSXはまだ出て

    よーし、パパ酔った勢いでJSXに盛り上がっている連中をdisっちゃうよ〜 - mitamex4uの日記
  • JSXでrequestAnimationFrameを使う - Islands in the byte stream (legacy)

    <追記> 現在requestAnimationFrame()はJSX標準ライブラリの timer.jsx に組み込まれています。 W3Cのanimation-timingで定義されているrequestAnimatioFrame()を使うと、JavaScriptでアニメーションをするときに良い感じのフレームレートで実行してくれる、ということになっています。 This document defines an API web page authors can use to write script-based animations where the user agent is in control of limiting the update rate of the animation. The user agent is in a better position to determine t

    JSXでrequestAnimationFrameを使う - Islands in the byte stream (legacy)
  • JSXへのファーストインプレッションのメモ - mizchi log

    サンプルコードをひたすら読んだ。その感想。 http://jsx.github.com/try-on-web/# 読んだだけなのでコードはまだ書いてません。 言わなきゃいけない前提として、僕はJavaが嫌いです。 以下雑文 coffee-scriptっぽさはほとんど感じない(あえていうとコンストラクタが constructor なのぐらい) function というシンタックスが冗長な気がする # 自分がGoLang触ってて気に入ったのが関数定義が func で、高階関数への抵抗がものすごく減る 末尾 セミコロン冗長な気がする (LL脳) ハッシュ定義のカンマ省略したいなー(Coffee脳) abstract class 必要なのかなーうーん overrideのシンタックス必要だろうか override function say() : void {interfaceとmixinよいかも

    JSXへのファーストインプレッションのメモ - mizchi log
  • JSX の型を整理してみた - ぐるぐる~

    JSX の型はかなり複雑なことになっている気がしたので、整理してみました。 プリミティブ型、オブジェクト型、可変型、未定義許可型 JSX における型は、この 4 種類に分類されるらしいです。 プリミティブ型 プリミティブ型は現在、 boolean int number string の 4 種類があります*1。 これらの型を持つ変数には null を入れることができません。 var x: int = null; // compile error! また、これらの型の値は変更不可能 (イミュータブル) となります。 3 がいつの間にか 4 に変わっていたりしてほしくないですよね? "hoge" という文字列の o という文字がいつの間にか a に変わっていて "hage" とか悲しいですよね? これらの型の値では、そのようなことは起こりません。 オブジェクト型 オブジェクト型は例えば、 st

    JSX の型を整理してみた - ぐるぐる~
  • Big Sky :: JSX の Vim 環境を整備してみた ~ jsx.vim に何個か pull req を送った

    「JSX 書くなら Vim だよね」というのが当たり前になる明るい未来を目指して jsx.vim に何個か pull req を送りました! jsx/jsx.vim - GitHub https://github.com/jsx/jsx.vim pull reqを送った機能は次のとおりです。 コンパイラプラグインの追加 補完機能の追加 簡単に説明していきます。 コンパイラプラグインの追加 デフォルトではオンになっていないので、:compiler jsx にしておくか、vimrc で以下を実行する必要があります。 autocmd FileType jsx compiler jsx この状態で :make を実行すると quickfix にエラーが表示されます。vim-hier と併用すると以下の様になります。 補完機能の追加 manga_osyo さんが neocomplcache での実装

    Big Sky :: JSX の Vim 環境を整備してみた ~ jsx.vim に何個か pull req を送った
  • JSXよりHaxeがイケてる5つの理由(実践編) もしくは Real World Haxe - みずぴー日記

    JSXがリリースされて1週間ぐらい立ちました。ガシガシ進化が進んでてすごいですねー。 おかげで、文法と適用範囲が似てるHaxeにも注目を集まっている気がします。なので、今日はそのHaxeを実際のプロジェクトに適用した事例について紹介したいと思います。題してReal World Haxeです。 プロジェクト概要 プロジェクトの概要は、前にosiireさんが2009-10-21で書いているのでそのまま引用します。 某自動車販売会社用のWebサービス サーバーサイドを全部OCamlで作成。OCaml+MySQL。既に稼働中のサーバーへ導入しなければならず、その環境が少し古かった(debian serge)ので一瞬焦ったが、ちゃんとOCaml開発環境は揃った。初めてpa_monadを導入したが、とても便利だった。重回帰分析をOCamlで実装した(Cで書くのがイヤだったから)。OCamlのコードはト

    JSXよりHaxeがイケてる5つの理由(実践編) もしくは Real World Haxe - みずぴー日記
  • JSX で Array#forEach が5倍以上速くなった話 - kazuhoのメモ置き場

    JSX の進化速度が半端ない - ぐるぐる~ で紹介していただいているとおり、最新の JSX では function expression の型宣言を省略できるようになっています。これを利用して、たとえば配列の合計を求める場合、 var sum = 0; [ 1, 2, 3, 4, 5, 6, 7, 8 ].forEach(function (n) { sum += n; }); のように、JavaScript と 100% 同様に書くことができるようになりました。省略形を利用して [ ... ].forEach((n) -> { sum + n; }); でもいいです。 ところでこのコード、見た目は同じなんですが、実は JSX だと JavaScript よりも5倍以上速く動くんです。まだ最適化があまいところがあるのに。 なぜか。JavaScript の Array#forEach は配

    JSX で Array#forEach が5倍以上速くなった話 - kazuhoのメモ置き場