https://jsprimer.net/ で公開している「JavaScript Primer(jsprimer)」の改訂2版の予約が開始されました。 jsprimer 改訂2版の発売日は2023年6月9日の予定です。

jsprimerの初版は2020年4月に出版されたので、3年ぶりの改訂となります。

jsprimerはhttps://jsprimer.net/のウェブ上でも公開していて、ウェブ版は常に更新されているLiving Bookとして公開しています。 一方で、書籍版はその時点のウェブ版をベースにしたスナップショットになっていて、出版に合わせて校正、書籍に向けたレイアウト変更、索引の追加などを行なっています。

簡単にまとめると、ウェブ版は常に最新ですが読んでる途中でも内容が更新される可能性はあります。一方で、書籍はその時点のスナップショットとして色々チェックやレイアウト改善をして安定させたバージョンになります。まとめて読むなら書籍版の方がおすすめです! 詳しくはウェブ版と書籍版の違いを参照してください。

改訂2版の変更点

2020年4月から2023年5月ぐらいまでの変更内容が含まれています。 JavaScriptの仕様であるECMAScript(ECMA-262)も常に更新されるLiving Standardですが、毎年6月ごろにスナップショットとしてECMAScript 20XXをリリースしています。 そのため、jsprimer 改訂2版では、初版からの変更としてECMAScript 2020、2021、2022の内容が含まれています。

リリースノートにECMAScriptのバージョンに合わせた変更点をまとめてあるので、これも参照してみてください

ECMAScriptの変更への対応だけではなく、読みやすくするための変更や、JavaScriptの現状に合わせた変更も含まれています。 まとめると次のような変更がjsprimer 改訂2版に含まれています。

  • ECMAScriptの新しいバージョンであるES2020、ES2021、ES2022に対応した
  • 新しいECMAScriptの機能によって、使う必要がなくなった機能は非推奨へと変更した
  • 文字では想像しにくいビット演算、非同期処理などに図を追加した
  • PromiseとAsync Functionを非同期の処理の中心として書き直した
  • 一方で、エラーファーストコールバックは非同期処理としてはメインではなくなった
  • Array#includesという表記は、Private Classs Fields(#field)と記号が被るため廃止した
  • Node.jsでもECMAScript Modulesを使うようになり、CommonJSはメインではなくなった
  • Node.jsが12から18までアップデートし、npmは6から9までアップデート、各種ライブラリも最新にアップデート
  • 読者からのフィードバックを受けて、全体をより分かりやすく読みやすくなるように書き直した

jsprimerのウェブ版はオープンソースとして公開してる書籍なので、実際のDiffはGitHubでも確認できます。

コミット数的には468(squashしてるの実際は数倍な気がします)、ファイル数的には342、28 contributorsとなっています。

ほとんどの章に変更が入っているのですが、大きなところだと次のような変更があります。

また改訂2版では、次の方々にレビューをしていただきました。ありがとうございました。

  • haruguchi(池奥 悠馬)
  • 2nofa11(ツノ)
  • staticWagomU(林 永遠)
  • kakts(阿久津 恵太)
  • keisuke kudo(工藤佳祐)
  • r-shirasu
  • 藤野慎也(morinokami)
  • kobakazu0429(小畠 一泰)
  • 滝谷修

jsprimer 改訂2版が予約できます

2020年から3年分の変更が含まれた「JavaScript Primer(jsprimer)」の改訂2版の予約はもうできます! jsprimer 改訂2版の発売日は2023年6月9日の予定です。

jsprimerは更新をし続けて、そのスナップショットとして書籍を出すというスタイルを取っています。 そのため、書籍を購入してくれると、jsprimerの更新が継続しやすくなります!

なぜOSSなのか?なぜ無料で読めるのか?
JavaScript Primerを出版しました!/JavaScript Primerはなぜ書かれたのか? | Web Scratch

予約できるのは物理的な書籍のみですが、Kindle(epub)やPDFも発売予定です。 電子版の公開や実際に発売が開始された時に通知を受け取りたい方は、次のフォームからメールアドレスを登録してください。

JavaScript Primerの更新情報を購読

* indicates required

フォームが表示されない人は https://github.us13.list-manage.com/subscribe/post?u=fc41e11a2b9dc6f05350e0de0&id=7ab1594ae8 から登録できます。

また、法人などで大量(数十冊?)に注文したい場合は、割引などができる可能性があるので、[email protected] までご連絡ください。

jsprimerの更新を支援する方法

文章の間違いや問題などがあったらIssueやPull Requestで直接修正できます。

現在、ECMAScript 2023の仕様の対応を進めていて、いくつか対応しないといけないところがあります。 大体はProposalごと(仕様策定の流れはECMAScript · JavaScript Primer #jsprimerを参照してください)に進めていくので、気になる方はIssueにコメントしてください。 ちょっとした変更するだけのIssueもあるので、やりたい人はコメントしてください。

ES2023の変更のレビューをしたいという方は、コメントやReactionなどをしておいてもらえると、PR出す時にmentionとかできます。

金銭的に支援したい方は、書籍を買ったり、GitHub Sponsorsで著者を支援してもらえると嬉しいです。

また、今年のオープンソース活動振り返り @ 2022 | Web Scratchでちょこっと書いていましたが、Open Collectiveを使ってjsprimer自体を支援できる仕組みを考えています。

Open Collectiveならプロジェクト(コレクティブ)単位で作れて、そのプロジェクトのContributorに対して分配ができます。 書籍は誰が書いてもいいので、jsprimerを書いてる人へ分配できる仕組みができて、jsprimerの更新を支援できるようになるといいなーと思ってます。 Open Collectiveのコレクティブを作ってる人があんまりいなくて、参考になるものがあまりなくちょっと時間がかかっていますが、この辺詳しい人とかいたら教えてください!

まとめ

  • JavaScript Primer 改訂2版が2023年6月9日に発売されるので、予約できます!
  • ES2020,2021, 2022の3年分の変更が含まれた改訂になっています!
  • 今後は6月後半にリリースされるES2023の対応などをやっていきます
  • 更新を支援する方法は本を買う他、IssueやPR、Sponsorsなどがあります