DConf 2022 thoughts

Posted 2022-08-08

Some thoughts on dconf after I finally caught up on the youtubes.

Core D Development Statistics

In the community

Community announcements

See more at the announce forum.


The big event of the last week was the in-person dconf 2022.

Guillaume Piolat wrote up some thoughts here: https://rentry.co/isfzn

I had other obligations and missed most of it live, but caught up on youtube. See links and timestamps in this thread: https://forum.dlang.org/thread/wkviprqccjitalzonloi@forum.dlang.org

A few of my own thoughts and counterpoints:

Walter said D no longer has binary literals. This is not true; they're still there and still useful. I wrote the original implementation of std.conv.octal and still like parts of it, but I rarely use it, and library binary literals would be even worse (notably, you'd be virtually required to quote them every time. some people think octal numbers ought to also always be quoted but meh).

Built-in binary literals are a win of D and ought not be removed. In fact, I say we should add octal literals back too, just use a better syntax. C's leading zero is madness, but 0o777 wouldn't be bad (and 0O777 would be banned for the same reason D allows 0L but not 0l).

The talk about microservices having vibe beat Java... I wonder how cgi.d would do in that test, since it beats vibe in most other test!

Sebastiaan's thing in day two has some interesting concepts. I've work with his library in the past, doing some minigui integrations, It isn't exactly easy to use yet but has a lot of potential. He's interested in seeing how more of the arsd libs can be worked in. This is gonna take some effort but maybe we can worth together on it and make it happen. I expect it will be a while though, since we're both pretty busy with other obligations.

Atila's talk on day three mentioned some nice things - actually making things happen hopefully - and the api ideas are generally ok. But I'm skeptical that dip1008 will ever actually work correctly and I believe the phobos 2.0 work keeps slamming into brick walls because leadership keeps insisting on a useless and impossible requirement: that they share code. There's one way to achieve that: git branches. Realistically, old versions don't get that much work and a cherry pick can apply what does need to get. But they reject that practical solution, which killed previous efforts and will kill future efforts too. I hope they'll reconsider.

Day three also had a talk about templating more of druntime, which is an effort I support, but they did show significant compile time harm (which has been happening pretty steadily with druntime; much of the slowdowns between D1 and modern D is actually in druntime's implicit import) and what bothered me is they didn't seem to investigate type erasure in the templates. This is somewhat tricky to do, and may require either language changes or compiler hints to do it genuinely well (though existing things like pragma(inline) might be close enough already too), but we ought to be able to do it even if it does take help from dmd. druntime and dmd are merged for a reason: they work together. And improvements to dmd to support druntime also help other libraries too. This kind of practical, need-driven development has a history of success that we should embrace.

And in that penultimate talk, Robert used a mess of phobos when a simple call to dom.d would suffice. lol. Something that really annoys me are the regular calls that D needs "more people"... to do things we've already had for over a decade. Maybe dub's broken search is to blame.

Finally, Mike's talk had some nostalgia for the good old days. lol. I really got into D in 2007; that's when I decided to actually switch to it instead of experimenting with it, but it was actually 2006 when I first played with it (and indeed, I first heard of it even earlier, but rejected it in favor of Digital Mars C++!), so much of that old stuff was familiar. I liked how he called out that more users is not necessarily more contributors. While contributions come in many forms - sometimes just usage reports can lead to good feature requests, for example - it is entirely possible for a project to have plenty of users yet still be on a shoestring budget... indeed, it could make things worse. Gotta be careful on how you actually do it.

I didn't have too much to say about the rest of it. I don't think videos are a great form of communication for programming things, and I'm already familiar with a lot of the people and concepts in the talks anyway. I also only mentioned the things I have comments on, which tends to be a point of disagreement, so remember you might get something entirely different out of it.

DConf Online 2022 is going to take place in addition to this. I'm told it will be in December this year, but haven't heard much else about it yet.