Moment.jsがメンテナンスモードへーー新機能開発は行わず

 JavaScriptの日付操作ライブラリ「Moment.js」の開発チームは9月15日、プロジェクトのステータスとしてプロジェクトはメンテナンスモードに入り、代替ライブラリへの移行を推奨している。

 Moment.jsは日付や時間をパーシング、検証、操作できるJavaScriptライブラリ。MIT Licenseの下で公開されている。最新版は9月13日に公開された「Moment.js 2.28.0」。プロジェクトによると2020年9月現在で毎週1200万以上のダウンロードがあるという。

 一方で、プロジェクトがスタートしたのは2011年。プロジェクトチームは「前世代のJavaScriptエコシステム向け」であり、「現在のWebは当時とは全く異なる」としている。時代に合わせて機能を加えてきたものの、設計は2011年当時と同じで、今後は新機能の開発よりも安定性を優先させるとしている。

 例として、Moment.jsのオブジェクトが変更可能(mutable)であることを取り上げ、immutableにするためには互換性を大きく損なう変更が必要であるとしている。また、サイズについても、実行されないコードを削除するテクニック(Tree Shaking)を用いることができず、肥大化するという。

 これらの問題について議論した結果、新機能の追加は行わない、バージョン3はなく大きな変更を加えない、APIをimmutableに変更しない、サイズ問題にも対応しない、と決定したという。重要なセキュリティ問題への対応などは行う。また、新しいプロジェクトが使用することを推奨せず、Luxon、Day.js、date-fns、js-Jodaなどを代替として推奨することにしたと報告している。

 すでにChrome Dev Toolsはサイズを理由にMomentのリプレースを推奨するなどの動きがあり、Moment.jsチームも同意するとしている。プロジェクトのホームページにも、「プロジェクトでMomentを使うことを検討しているなら、新しい代替があるかもしれない」と記している。

Moment.js
https://momentjs.com