【レビュー】
|
Doctor JS is a genius. He'll analyze your JavaScript code, complete with polymorphism, prototypes, exceptions and callbacks. |
Mozilla Labsから実験的な新サービスDoctor JSが公開された。Doctor JSはJavaScriptのソースコードを静的に分析して型推論の結果を表示するサービス。任意のJavaScriptソースコードを分析して、変数やまたは関数の返り値などの型を示してくれる。JavaScriptではプログラミングの段階では厳密な型付けを要求されない。Doctor JSを使うとどの変数がどの型に対応するかを実装段階でチェックできる。ベースとなっているのはDimitris Vardoulakis氏らが開発したCFA2と呼ばれる関数言語向けのフロー分析システム。Doctor JSはCFA2をJavaScriptに適用することで構築されている。
Doctor JSを使った分析はデモページから実施可能。ページの左側に設置されたテキストエリアにJavaScriptソースコードをコピーし、真ん中の虫眼鏡ボタンを押す。分析した結果が右側のテキストエリアに表示される仕組みになっている。ただし、すべてのJavaScriptソースコードが分析できるわけではない。試用してみた限り、ある程度のサイズを越えてくると分析できなくなるような動きを見せる。
JavaやC/C++は型付けが厳しい。一方、JavaScriptのようなスクリプト言語では厳密な型付けをソースコードレベルで実施する必要がない。こうした動的言語では型に関するプログラミング上の煩わしさに手間をとられることがなく、高速な実装を実現できるという特徴がある。一方、実行時に型を特定することになるため、思いもよらない問題が発生するケースや、型が厳密なコンパイル型言語と比べて実行性能を発揮しにくいという欠点もある。
Doctor JSを使えば、JavaScriptでコーディングしつつ、それぞれの変数や関数の型を意識したプログラミングができるようになる。型が厳密であることにはそれなりの利点があるため、Doctor JSをうまく活用できれば動的言語の便利さをうけつつ、型付けが強い言語の方法論も適用できるようになる。またDoctor JSは、他人が実装したJavaScriptソースコードを読む場合の手助けとしても利用できる。
| トマトを食べれば痩せられる!? -京大ら、新発見の成分で肥満改善効果を実証 [21:00 2/10] |
| JAXA、液体シリコン中に残存する共有結合を観察 -大口径ウェハの実現に期待 [20:11 2/10] |
| NEDOなど、熱膨張が小さな樹脂複合材料ペレットの量産化に成功 [19:22 2/10] |
| 理研、一般顕微鏡を蛍光顕微鏡に強化できるアダプタを試作して性能を実証 [19:15 2/10] |
| 天の川のブラックホールが小惑星を飲み込んでいる - NASAが発表 [18:08 2/10] |
|
9ストーリーズ ~バレンタインのエピソード~ [08:05 2/11] キャリア |
|
RX-7改フェラーリ登場!/マジックRX-7XX 【大阪オートメッセ2012】 [08:04 2/11] キャリア |
|
【連載】鉄道トリビア 第137回 山手線と京浜東北線から●●●が消えた!? [08:00 2/11] ライフ |
|
JRグループ、「周遊きっぷ」を見直し - 19の周遊ゾーンが3/31で販売終了に [07:30 2/11] ライフ |
|
「青春18きっぷ」春季用は2/20発売 - 夏季用・冬季用の発売は現時点で未定 [07:30 2/11] ライフ |