数日来 JSHint について調べていたところ、JSHint の開発者アントン・コヴァリャノフ氏による記事を見つけました。なぜ JSLint からフォークして JSHint を作ろうと思い立ったのか、リリース時における作者自身の述懐です。

元サイト:Why I forked JSLint to JSHint




大変興味深い記事でしたので、著者の承諾を得て翻訳いたします。なお、JSHint の本家サイトはこちら、JSHint がバージョン 2.0.0 にアップデートされた記事(2013/05/10)はこちらです。

Anton Kovalyov

私が JSLint から JSHint をフォークした理由

20 Feb 2011 — Berkeley

君たちが苦しんでくれるほど、私の満足度は深まる —ダグラス・クロックフォード.

この金曜日、我々は JSHint を発表した。JavaScript のエラーと潜在的な問題を検出し、開発チームが統一的な規約のもとでコーディングできるようにするためのコード品質管理ツールだ。 1

JSHint は、ダグラス・クロックフォード氏によって作られ保守されている JSLint のフォークだ。長い間、私は快適に JSLint に使ってきた。しかし数カ月前から、JSLint はしだいに不快なほど押し付けがましくなり、コードに対して難癖をつけるようになってきた。開発者をバグから守るツールだったはずなのに、プログラムをダグラス・クロックフォード氏の流儀で書くよう強制するツールに変わってしまったのだ。

次のコードはその一例である。これのどこに致命的エラーが潜んでいるか探してみてほしい。

         /*global jQuery */

         // Example taken from jQuery 1.4.2 source
         jQuery.extend({
             /* ... */

             isEmptyObject: function( obj ) {
                 for ( var name in obj ) {
                     return false;
                 }
                 return true;
             }

             /* ... */
         });
      

このコードに問題点があるとは誰も思わないだろう。私もそうだ。しかし JSLintは「 var 宣言を関数の先頭に移動させなさい」というエラーメッセージを吐き処理を停止してしまう。なお悪いことに、この動作をオフにするオプション設定もない。残された選択肢はコードを書き換えるか、JSLint を捨てさるかしかない。

会合やカンファレンスに集まる JavaScript を使いこんでいる開発者の口から、クロックフォードのツールに好意的な言葉が滅多に聞けないのは、そういう理由があるからなのだ2 (コミュニティからのフィードバックに対して彼の返す辛辣な言葉もそれに輪をかけている)。

コード品質管理ツールが有意義なものであり、またコミュニティにとっても有益なものであると考える私にとって、これは悲しむべき事態だった。それが私は JSHint の開発に着手した理由だ。開発の最初の日から言い続けてきたように JSHint は常にコミュニティ駆動型のツールである。その単純な理由は、皆が共同して作り上げるプログラマのコミュニティは、一人で働くプログラマに勝っているにちがいないからだ。その一人のプログラマが誰であったとしても。

( Paul Irish 氏、Divya Manian 氏、Jamie Gillar 氏の本プロジェクトへの協力、および Ryan Grove 氏のドメインへの寄付に多謝)

1最初の告知は Badass JavaScript ウェブログで行われた。

2 JavaScript開発者であるBrendan Eichの言葉も引用しておきたい - “JSLint can suck it”.

 

かなり辛辣な文章ですね。JSHint の生まれた背景に、ダグラス・クロックフォード氏と JavaScript 開発者コミュニティとのあいだの確執があったわけです。

その結果、コミュニティの支持は JSLint からアントン氏の JSHint に傾きつつあるようです。「JavaScriptコミュニティのトレンド 2012版」に記載したように昨年末の時点で「コードチェッカーの JSLintも、ぎりぎりで1位( 56% )ではあるものの、この分野の2位 JSHint ( 55% )に 1% 差と迫られており、これも転落間近という雰囲気」という状況でした。

おそらく今年2013年の時点では、少なくとも英語圏の JavaScript コミュニティではトップはすでに逆転しているでしょう。ただ、日本語圏の JavaScript ユーザ間では今のところ JSLint のシェアの方が圧倒的ではないかと予想しています。私自身は、PHPStormではアントン氏の JSHint をオン(JSLint はオフ)にして使っています。




ちょうど本稿の著者アントン・コヴァリョフ氏が共著されたThird-Party Javascriptという本が今月末(2013年1月末)発売されます。

「サードパーティ JavaScript」とはあるサイトのページ内に埋め込まれた他のサイト(つまりサードパーティ)の JavaScript のことです。ソーシャルボタンやアフィリエイトリンクなどに多用されている現代的なテクニックであり、一冊全部サードパーティ JavaScript について論述した興味深い書籍です。

電子書籍版は版元で直接購入できます: Third-Party JavaScipt