D is our last hope

Walter Bright newshound2 at digitalmars.com
Wed Dec 20 19:53:44 UTC 2023


On 12/19/2023 6:15 PM, Steven Schveighoffer wrote:
> 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!

Yes, I agree. It sounds like some of the work you've done would be candidates 
for Phobos3. Check with Adam Wilson!



More information about the Digitalmars-d mailing list