| |
| Posted by Steven Schveighoffer in reply to H. S. Teoh | PermalinkReply |
|
Steven Schveighoffer
Posted in reply to H. S. Teoh
| On Tuesday, 19 December 2023 at 18:37:47 UTC, H. S. Teoh wrote:
> I'm a heavy Phobos user, and std.algorithm / std.range are among the best parts of Phobos. Among the better modules are std.datetime, std.path, std.bigint, std.regex (I'm a regex addict). std.process is awesomely convenient for dealing with processes; one of the better-designed APIs in Phobos IMO. std.math / std.numeric are pretty standard, with a few nice things in there, though there's that strangeness with real vs. double. std.stdio is also pretty standard, but could be improved (replace with I/O pipes?). I'm addicted to std.format for its convenience but the implementation really could use some improvement, same goes for std.conv. std.uni's implementation could also use some improvement, but what's there is pretty serviceable for dealing with Unicode (main missing features: Unicode line-breaking algorithm and grapheme width -- I have an incomplete implementation of the latter but never got around to finishing it).
>
> std.meta / std.traits / std.typecons are good for metaprogramming, though there are some weird bits.
>
> Other parts of Phobos are meh, like std.container (I use it from time to
> time but the API is klunky and rough around the edges), std.digest
> (never used it, kinda random why it's in Phobos), std.encoding (hardly
> ever use it), std.experimental (when it is coming out of deep freeze?),
> std.json (meh), std.xml (bleh). std.getopt gets the job done, but has
> weird differences with standard Posix getopt() for no good reason, which
> made me write my own getopt on at least 3 separate occasions.
> std.signals - never used it, std.socket (meh), std.bitmanip (sometimes
> useful), std.base64 (kinda random, used it once or twice but that's
> about it -- honestly could just go in a dub library), std.csv (meh - my
> fastcsv alternative runs way faster, though with no validation).
> std.net.curl - weird API, std.net.isemail - seems like a totally random
> thing to put in Phobos. A lot of this stuff honestly could do better as
> dub packages / external repos.
A great list and analysis!
-Steve
|