D is our last hope

Steven Schveighoffer schveiguy at gmail.com
Wed Dec 20 02:15:20 UTC 2023


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


More information about the Digitalmars-d mailing list