2016年08月10日 08時00分 UPDATE
特集/連載

タイプセーフの仕組みを解説JavaScriptの“もろい”タイプセーフを解決する「Onux JS++」

JavaScriptにはさまざまな欠点があり、その1つであるタイプセーフを実現するツールも複数存在する。今回は、JavaScriptでタイプセーフを実現する実装の1つ、「Onux JS++」について、Onuxの創設者に話を聞いた。

[Adrian Bridgwater,Computer Weekly]
Computer Weekly

 「JavaScriptはもろいプログラミング言語だ。タイプミス1つでサーバがダウンすることもある」。そう話すのは、ロンドンに拠点を置くOnuxの創設者ロジャー・プーン氏だ。

Computer Weekly日本語版 8月3日号無料ダウンロード

本記事は、プレミアムコンテンツ「Computer Weekly日本語版 8月3日号」(PDF)掲載記事の抄訳版です。本記事の全文は、同プレミアムコンテンツで読むことができます。

なお、同コンテンツのEPUB版およびKindle(MOBI)版も提供しています。

ボタンボタン

JavaScriptを重視するMicrosoft、Facebook、Google

 実のところ、JavaScriptの型チェックがコンピュータ科学の最重要分野の1つであることは確かだ。Microsoft、Facebook、Googleがこの問題に取り組んでいることからも、それがいかに困難かつ重要であるかが分かる。

 JavaScriptには6つの型がある。Object、Number、String、Boolean、Null、未定義の6つだ。

 問題なのは、99%の正確性ではよしとはされず、100%の正確性が求められることだ。

 OnuxはJavaScriptの「タイプセーフ」版である「Onux JS++」をリリースした。プーン氏によれば、コードを実行せずにJavaScriptを分析するのは非常に難しく、その上Webブラウザやプラットフォームごとにコードの実行方法が異なる場合があることから、このテクノロジーを思い付いたという。

JS++の型システムはオプションかつ妥当

 「妥当」というのは、開発者が型を宣言することに決めたら、コンパイル時も実行時も、その型の正しさが常に保証されることを意味する。これにより、開発者は小さな変更を1つ加えただけでアプリケーションが停止してしまうという心配をせず、自信を持ってコードの品質を徐々に改善していくことができる。

 JS++のソリューション(特許出願中)は、JavaScriptの全ての型を1つの型に「統一」する。これを「統一外部型」と呼ぶ。前述のように、JavaScriptではコンパイル時に正しい型を判断することが困難だ。型が実装時に定義される「ホストオブジェクト」(JavaScript公式言語標準のECMAScript公認)から、バグが多くて一貫性のないWebブラウザでの実装に至るまで、JavaScriptへの型の簡単な追加を難しくする問題は何百と存在する。

 「JavaScriptの型から影響を受ける他のソリューションの型システムとは異なり、JS++はJavaScriptを型システムから効果的に切り離す」とプーン氏は言う。

 JavaScriptを型システムから切り離した後、JS++は自動的に予防措置を講じ、JS++の型とJavaScriptの型の間で変換を実行する。

 「つまり、型の正しさを常に維持するようにデータの『サニタイジング』を行う。

この記事を読んだ人にお薦めの関連記事

この記事を読んだ人にお薦めのホワイトペーパー

Loading

注目テーマ

ITmedia マーケティング新着記事

news077.jpg

電通が学生と企業の共創プロジェクト「βutterfly」を開発、企業向けにスポンサードプランを提供
電通は、顧客企業と学生の協働型プロジェクト「βutterfly」を開始すると発表した。β版...

news040.jpg

「インバウンド」で注目される浅草、訪日外国人観光客で賑わう理由とは?
口コミ時代のWebとソーシャルメディアは最大の武器。最小限の手間で最大の効果を発揮する...

news103.png

オムニバス、「セゾンDMP」を活用したターゲティング広告を提供
クレディセゾンの100%子会社オムニバスは、クレディセゾンが保有するクレジットカードの...