JavaScriptには既にstrict mode(厳格な書き方をしないとエラーになるモード。Perlでuse strictみたいなの)がいますが、それに加えてStrong Modeというのを用意しようと提案されているそうです。
大きなところでは、グローバル汚染に対してエラーが出るようになっています。
"use strict"; // これでstrict modeを宣言 i = 0; //これはエラーになる var i = 0; // こう書かないといけない
Objectに同じ名前の要素を書いちゃった場合にもエラーになります。(筆者環境では、これを書いている時点ではブラウザが対応してないせいかエラーにならなかった)
"use strict"; var obj = { p: 1, p: 2 }; console.log( obj );
その他、消せないプロパティを消そうとしたらエラーになるとか、evalで変数を宣言できなくなるとか、いくつかの厳格じゃない書き方を正してくれるようになっています。
JavaScriptのいい加減さは拡張性やカスタマイズ性という意味では良い部分もありますが、開発規模が少しでも大きくなると泣きをみることもしばしば。
そんなstrict modeに加えてもっと厳格なモードが必要ではないかというのが、本日のお話。
Google's JavaScript Team Proposes "Strong Mode"
(GoogleのJavaScriptチームがStrong Modeを提案)
Is Strict mode enough for JavaScript? The Chrome V8 team is proposing an extension to Strict mode to be called Strong mode
JavaScriptはstrict modeで十分か? Chrome V8チームがstrong modeと呼ばれるstrict modeの拡張を提案しました。
Googleのサイトに提案が載ってます。
Experiments with Strengthening JavaScript
Strong mode is purely a subset of JavaScript. It does not add any new features but focuses on removing some.
strong modeはJavaScriptのサブセット。新しいfeatureではないよ。ただ一部の機能を除去してるよ。
ということだそうです。
主な禁止されている事項は、Objectのpropartyを消せなくなるとか(deleteはsyntax error!)、evalが使えなくなるとか(evalはsyntax error!)、関数を呼ぶ時に引数の数は合ってないといけないとか(今は数が違ってても普通に動いてしまう)、関数の宣言がimutable(不変)になるとか、安全にする為のいろいろな施策が打たれているようです。
既に実装がされていて、日本でも試している方がいるようです。
ES6時代のGoogle的Good Parts: V8のstrong modeを試す
中規模の開発まではstrict modeでも事足りるかもしれませんが、nodeで大規模な開発を始めた場合などはこのモードが存在感を持ちそうです。
私はできればJavaScriptでサーバ側の開発はしたくないなぁと考えている派なので、あまり関わることはなさそうですが。むしろクライアント側もScala.jsで。。。
- 電話もできないし写真も撮れない、何も出来..
- 個人情報が1ドルで売り買いされているとい..
- テキストエディタで作曲ができるプログラミ..
- FacebookもIoTに参入しているの..
- Remix Mini、1600万ドルの調..
- lolはもう古い? これからはhahaと..
- まもなくChromeでJavaプラグイン..
- A Neural Conversatio..
- アメリカ政府が政府サイトのHTTPS化を..
- SSDが早くなり過ぎて問題に直面する?
- The Fuckのパターンがすごく増えて..
- Google検索でモバイルからのリクエス..
- Apple Watchのおすすめアプリ紹..
- Deep Learningで音楽ファイル..
- Fedora23でようやくPython3..
- ウェアラブルデバイスの健康テクノロジーは..
- 4Kディスプレイについて知っておくべきこ..
- コンソールでタイプミスした時に「fuck..
- Fedora22のアルファ版でLinux..
- 2015年4月のgithub人気開発者(..