Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

This has happened already. See https://doc.rust-lang.org/std/cell/struct.LazyCell.html

It's just it's not frequent.

There is very few things that need to be in the standard library. I only ever miss chrono or equivalent not being in std.



Time functions are a prefect example of somewhere there should be expanded support for in the STD. I'm also of the opinion that there should be a generic and reasonable async runtime in STD, since having `async` in the language, but to direct way to use it without a crate or writing your own executor is awkward.

Then there are things like serialization and logging, which I like the idea of having promoted crates which are essentially just better advertised for newcomers. (Maybe included in the distribution already in some way).


If Chrono were in std, that would have been a disaster IMO.


Not exactly chrono crate (to quote "chrono or equivalent"). More like Java's version of chrono.


But what if we did that 5 years ago? Oops. And even Java's API has problems too. Why not let it be provide by the ecosystem where it can qctually evolve?


What problems does Java JSR 310 have (old Java time yes, but those are known issues)? As far as I have used it, it was damn near perfect.


It lacks a hybrid duration type. Instead, it splits durations into calendar and time durations and conflates the length of a `day` depending on whether it's in `Period` or `Duration`. And AFAIK, it doesn't support time zone aware duration rounding. And I don't see a way to compute a `Period` from two `ZonedDateTime` values in a way that respects time zone transitions.

To be clear, it's good. But there are mistakes that the Temporal project learned from and fixed.

(Temporal's single `Duration` type does have pros and cons, so I don't mean to frame having two distinct types as a strict negative. But it's very clunky.)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: