2020(ねん)開発(かいはつ)終了(しゅうりょう)したOSSプロジェクト - Moment.js

個人的(こじんてき)使用(しよう)したこのとのあるOSSのうち、2020(ねん)開発(かいはつ)終了(しゅうりょう)したプロジェクトのまとめです。
本当(ほんとう)全部(ぜんぶ)まとめて()こうと(おも)ったけど時間(じかん)がないので1つずつ紹介(しょうかい)します。

Moment.js

公式(こうしき)サイト:https://momentjs.com
リポジトリ:https://github.com/moment/moment/

Javascriptで日時(にちじ)(あつか)うライブラリです。
終了(しゅうりょう)理由(りゆう)ドキュメントページ のProject Statusの(らん)()かれています。
要約(ようやく)以下(いか)のとおりです。

イミュータブルに変更(へんこう)することの(むずか)しさ

Momentのオブジェクトはミュータブルです。
イミュータブルにしてほしいという要望(ようぼう)(おお)いですが、

  • 変更(へんこう)途方(とほう)もない作業(さぎょう)であること
  • 使用(しよう)するプロジェクトにとって重大(じゅうだい)変更(へんこう)になること
  • (ほか)のライブラリで(すで)実現(じつげん)されていること
    • →なので(ぎゃく)にミュータブルであることが重要(じゅうよう)であると(かんが)えている

といった理由(りゆう)から(むずか)しいようです。

ファイルサイズの(おお)きさ

設計(せっけい)(ふる)さからツリーシェイキング(Webpack(とう)でバンドルする(さい)使用(しよう)していないコードを排除(はいじょ)すること)が()かなかったり、 国際化(こくさいか)やタイムゾーンのサポートでバンドルサイズが(おお)きくなってしまいます。
また、ファイルサイズの(おお)きさからChromeの開発者(かいはつしゃ)ツールでは()()えを推奨(すいしょう)しており、Momentチームもこれを支持(しじ)しています。

まとめ(個人的(こじんてき)感想(かんそう)

Project Statusの最後(さいご)には、日時(にちじ)のライブラリが必要(ひつよう)なくなることが(ねが)いであると()かれています。
(すで)標準機能(ひょうじゅんきのう)でTemporalというグローバルオブジェクトが検討(けんとう)されており、 こちらに((とく)にMomentやその()日時(にちじ)ライブラリを使用(しよう)したことがある(ひと)は)貢献(こうけん)してくださいと()められています。
プロジェクトの終了(しゅうりょう)(かん)してはレガシーな設計(せっけい)というよくある理由(りゆう)ですが、 プロジェクト開始時(かいはつじ)はまさか2020(ねん)現在(げんざい)まで標準機能(ひょうじゅんきのう)実装(じっそう)されず、様々(さまざま)日時(にちじ)ライブラリが作成(さくせい)される事態(じたい)になるとは(おも)っていなかったんだろうなぁ。。。