[ruby-dev:52168] [Ruby Feature#21616] date ライブラリを deprecatedさせたい

Issue #21616 has been reported by jinroq (Jinroq SAITOH). ---------------------------------------- Feature #21616: date ライブラリを deprecated させたい https://bugs.ruby-lang.org/issues/21616 * Author: jinroq (Jinroq SAITOH) * Status: Open ---------------------------------------- ### 概要 *date ライブラリが長期間メンテナンスされておらず、機能を time ライブラリに委譲して deprecated させたい* というお話が出ていると風の噂で耳にしましたが、どこまでを考えられているのかご意見をお聞きしたいです。 ### 確認事項 #### `Date._parse` を time に移植したい `Time._parse` なるものが実現できれば十分でしょうか?(それっぽく移植は[してみました](https://github.com/ruby/time/compare/master...jinroq:time:implement_parse_from_date)。) #### `Date.strptime` を time に移植したい [date_strptime.c](https://github.com/ruby/date/blob/master/ext/date/date_strptime.c) をそのまま time に移植していいものでしょうか? 「time に移植するならついでにこんな感じだと嬉しい」といった要望があったりするのでしょうか? #### deprecated させた場合の影響範囲 deprecated はかなりのインパクトであり、様々な gem やプロダクトに影響を及ぼすかと思います。 例えば「Ruby on Rails では誰に相談すべきか」など、どこまでを考慮すべきでしょうか? -- https://bugs.ruby-lang.org/

Issue #21616 has been updated by nobu (Nobuyoshi Nakada). jinroq (Jinroq SAITOH) wrote:
#### `Date._parse` を time に移植したい
`Time._parse` なるものが実現できれば十分でしょうか?(それっぽく移植は[してみました](https://github.com/ruby/time/compare/master...jinroq:time:implement_parse_from_date)。)
むしろ、あまりにもheuristicすぎる`Time.parse`こそが廃止したい筆頭ですね。 また、実装面で言うとCとrubyをfuncallとblockで繰り返し行き来するというのも、少なくともVM化した1.9以降では有利とは言えません。
#### `Date.strptime` を time に移植したい
[date_strptime.c](https://github.com/ruby/date/blob/master/ext/date/date_strptime.c) をそのまま time に移植していいものでしょうか? 「time に移植するならついでにこんな感じだと嬉しい」といった要望があったりするのでしょうか?
しばらく前から考えているのが、基準になる時刻はどうせ必要なので、クラスメソッドではなくインスタンスメソッドのほうがいいのではということです。 こんな感じ。 ```ruby basetime = Time.now basetime.parse(time_string, format: ["%FT%T%Z", "%F %T %Z", "%+"]) ``` ただ、可能な`format`を全部渡すという形だと、省略を許すという記法がないと使いづらいかもという懸念はあります。
#### deprecated させた場合の影響範囲
deprecated はかなりのインパクトであり、様々な gem やプロダクトに影響を及ぼすかと思います。 例えば「Ruby on Rails では誰に相談すべきか」など、どこまでを考慮すべきでしょうか?
影響範囲などが読めないというのも、なかなか手が進まない理由にあります。 ---------------------------------------- Feature #21616: date ライブラリを deprecated させたい https://bugs.ruby-lang.org/issues/21616#change-114693 * Author: jinroq (Jinroq SAITOH) * Status: Open ---------------------------------------- ### 概要 *date ライブラリが長期間メンテナンスされておらず、機能を time ライブラリに委譲して deprecated させたい* というお話が出ていると風の噂で耳にしましたが、どこまでを考えられているのかご意見をお聞きしたいです。 ### 確認事項 #### `Date._parse` を time に移植したい `Time._parse` なるものが実現できれば十分でしょうか?(それっぽく移植は[してみました](https://github.com/ruby/time/compare/master...jinroq:time:implement_parse_from_date)。) #### `Date.strptime` を time に移植したい [date_strptime.c](https://github.com/ruby/date/blob/master/ext/date/date_strptime.c) をそのまま time に移植していいものでしょうか? 「time に移植するならついでにこんな感じだと嬉しい」といった要望があったりするのでしょうか? #### deprecated させた場合の影響範囲 deprecated はかなりのインパクトであり、様々な gem やプロダクトに影響を及ぼすかと思います。 例えば「Ruby on Rails では誰に相談すべきか」など、どこまでを考慮すべきでしょうか? -- https://bugs.ruby-lang.org/

Issue #21616 has been updated by jinroq (Jinroq SAITOH). nobu (Nobuyoshi Nakada) wrote in #note-1: 回答ありがとうございます。
jinroq (Jinroq SAITOH) wrote:
#### `Date._parse` を time に移植したい
`Time._parse` なるものが実現できれば十分でしょうか?(それっぽく移植は[してみました](https://github.com/ruby/time/compare/master...jinroq:time:implement_parse_from_date)。)
むしろ、あまりにもheuristicすぎる`Time.parse`こそが廃止したい筆頭ですね。 また、実装面で言うとCとrubyをfuncallとblockで繰り返し行き来するというのも、少なくともVM化した1.9以降では有利とは言えません。
2011 年頃に書かれたコードをそのまま使っていますので時期的に 1.9.3 頃のものですね…。 (Time._parse を採用するかどうかは置いておいて)無理に C で書かずとも pure ruby で書き直した方が良かったりしますかね。
#### `Date.strptime` を time に移植したい
[date_strptime.c](https://github.com/ruby/date/blob/master/ext/date/date_strptime.c) をそのまま time に移植していいものでしょうか? 「time に移植するならついでにこんな感じだと嬉しい」といった要望があったりするのでしょうか?
しばらく前から考えているのが、基準になる時刻はどうせ必要なので、クラスメソッドではなくインスタンスメソッドのほうがいいのではということです。 こんな感じ。
```ruby basetime = Time.now basetime.parse(time_string, format: ["%FT%T%Z", "%F %T %Z", "%+"]) ```
ただ、可能な`format`を全部渡すという形だと、省略を許すという記法がないと使いづらいかもという懸念はあります。
参考になります。ありがとうございます。
#### deprecated させた場合の影響範囲
deprecated はかなりのインパクトであり、様々な gem やプロダクトに影響を及ぼすかと思います。 例えば「Ruby on Rails では誰に相談すべきか」など、どこまでを考慮すべきでしょうか?
影響範囲などが読めないというのも、なかなか手が進まない理由にあります。
そうですよね…。 ---------------------------------------- Feature #21616: date ライブラリを deprecated させたい https://bugs.ruby-lang.org/issues/21616#change-114708 * Author: jinroq (Jinroq SAITOH) * Status: Open ---------------------------------------- ### 概要 *date ライブラリが長期間メンテナンスされておらず、機能を time ライブラリに委譲して deprecated させたい* というお話が出ていると風の噂で耳にしましたが、どこまでを考えられているのかご意見をお聞きしたいです。 ### 確認事項 #### `Date._parse` を time に移植したい `Time._parse` なるものが実現できれば十分でしょうか?(それっぽく移植は[してみました](https://github.com/ruby/time/compare/master...jinroq:time:implement_parse_from_date)。) #### `Date.strptime` を time に移植したい [date_strptime.c](https://github.com/ruby/date/blob/master/ext/date/date_strptime.c) をそのまま time に移植していいものでしょうか? 「time に移植するならついでにこんな感じだと嬉しい」といった要望があったりするのでしょうか? #### deprecated させた場合の影響範囲 deprecated はかなりのインパクトであり、様々な gem やプロダクトに影響を及ぼすかと思います。 例えば「Ruby on Rails では誰に相談すべきか」など、どこまでを考慮すべきでしょうか? -- https://bugs.ruby-lang.org/
participants (2)
-
jinroq (Jinroq SAITOH)
-
nobu (Nobuyoshi Nakada)