Deprecate std.signals?

Bastiaan Veelo Bastiaan at Veelo.net
Sun Apr 4 17:39:59 UTC 2021


On Tuesday, 30 March 2021 at 11:23:21 UTC, Berni44 wrote:
> I've got the feeling, that std.signals is rarely used and not 
> up to D's standards... Therefore I suggest to move it to undead 
> and deprecate it.
>
> But I might err on this. What do you think?

I might be able to provide some background on this.

Prior to becoming a D convert I used to program in C++, and Qt 
was the enabler that made that a pleasant experience. At the 
heart of Qt is their signal-and-slot concept that makes it 
possible to tie components together without them needing to know 
about each other or their lifetimes. It’s implementation relies 
heavily on the C preprocessor.

Back in 2004 I decided to test D’s claim that a preprocessor is 
unnecessary to be equally powerful as C and C++. As a litmus test 
I made an attempt at implementing the signals and slots concept. 
I wasn’t quite successful [1]. Others tried as well, and I 
suppose that Walter got tired of the subject coming up on the 
mailing list time and again because one day he announced that he 
had implemented it himself and since then it has been in the 
standard library.

I have always thought that this was a good idea, and I still do: 
if signals and slots are standardised, GUI libraries and other 
frameworks can be built on top of that and then they will all be 
compatible. Somehow that hasn’t happened yet. Neither has 
`std.signals` been the last word on the subject, because both 
`descore`[2] and `phobosx`[3] provide alternative 
implementations. And if I’m not mistaken, `dlangui`[4], 
ironically, uses its own variant.

I understand that `std.signal` is not up to modern standards, and 
maybe deprecating it is a good idea. But I can’t help feeling 
that we thereby have failed to prove a point.

— Bastiaan.

[1] http://www.dsource.org/projects/dcouple/wiki
[2] https://code.dlang.org/packages/descore
[3] https://code.dlang.org/packages/phobosx
[4] https://code.dlang.org/packages/dlangui



More information about the Digitalmars-d mailing list