jQuery 公式 Blog は、10月 29日付けで投稿された記事「jQuery 3.0: The Next Generations」 で、次期リリースから現状の jQuery 2.x 系の後継を 「jQuery 3.0」、1.x 系の後継を 「jQuery Compat 3.0」 と名称変更し、今までメジャーバージョン番号が異なっていた 2つの jQuery を、jQuery 3.x に統一すると発表しました。
該当の Blog 記事が公開されたときに Twitter でもつぶやいたんですが、簡単に言えば下記のようなメジャーバージョン番号の統一と、名称変更が、次のリリースから行われます。
2.x系 → jQuery 3.0、1.x系 → jQuery Compat 3.0 に表記を統一するってよ「jQuery 3.0: The Next Generations : Official jQuery Blog」 http://t.co/CNWEKivpK1
— Yoshiki Kato (@burnworks) October 30, 2014
元々、jQuery 2.x 系は レガシーブラウザ (IE 6/7/8) への対応をやめることで、より軽量で高速、そして安定化を目指した新バージョン。一方で jQuery 1.x 系は 2.x 系と互換性を持ちつつも、レガシーブラウザへの対応が可能なバージョンとしてリリースされていました。
これを名称変更する理由ですが、公式 Blog では下記のように説明されています。
The concept of versioning gets a little more nuanced with jQuery, where browser compatibility can be just as important as API compatibility. In order to create a slimmer jQuery, the team started shipping two versions in 2013. The first version remained numbered in the 1.x line and, currently at 1.11.1, maintains compatibility with a maximal number of browsers. The second version, starting with 2.0.0 and now at 2.1.1, dropped support for browsers like IE8 or lower in order to streamline the code. Both the 1.x and 2.x versions of jQuery have the same public APIs, even though they differ somewhat in their internal implementations.
Our next releases will use a different nomenclature. As before, there will be two different released files. The successor to what is now version 1.11.1 will become jQuery Compat 3.0. The successor to jQuery 2.1.1 will be jQuery 3.0. There are two different packages on npm and Bower, but they share the same version to indicate they have the same API behavior.
jQuery 3.0: The Next Generations : Official jQuery Blog から引用
要約すると、
「jQuery 2.x 系と jQuery 1.x 系は、多少内部実装が異なるものの、同じパブリック API を持っている。にもかかわらず、メジャーバージョン番号が違うと誤解を招くので、1.x 系は現在の最新バージョンである 1.11.1 を最後に、次のバージョンでは 「jQuery Compat 3.0」 に、同じく、2.x 系は 2.1.1 を最後に 「jQuery 3.0」 と名称変更する。」
ということで、レガシーブラウザのサポートが必要な場合は jQuery Compat 3.x 系を、そうでない、最新の jQuery を利用する場合は、jQuery 3.x のパッケージを選択すればよいということになります。
CDN から配信される jQuery 3.x 系に関してはどのようなファイル名のルールになるかはまだわかりませんが、jQuery CDN や Microsoft CDN では元々下記のように、
/* jQuery CDN */ <script src="//code.jquery.com/jquery-1.11.1.min.js"></script> /* Microsoft CDN */ <script src="//ajax.aspnetcdn.com/ajax/jQuery/jquery-2.1.1.min.js"></script>
ファイル名にバージョン番号を含むシンプルなものですので、3.x 系になっても jquery-compat-3.0.0.min.js もしくは jquery-3.0.0.min.js のように、同様のルールで呼び出せそう。
Google はちょっと形式が違って、
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
みたいな形式なので、どうなるんですかね。
/* 下記は予想なので実際とは異なると思います */ <script src="//ajax.googleapis.com/ajax/libs/jquery/3.0.0/jquery.min.js"></script> <script src="//ajax.googleapis.com/ajax/libs/jquery/3.0.0/compat/jquery.min.js"></script>
みたいな感じになるんでしょうか。まぁリリースされればわかると思いますが。
ちなみに、コメント欄では 「Compat」 って名称はどうなんだ的なコメントが結構寄せられていますね。「jQuery Legacy 3.0」 の方がいいんじゃね? 的なコメントもあって面白いというか、確かにその方がわかりやすいかなとも思いました。