D has become unbearable and it needs to stop
harakim
harakim at gmail.com
Wed Jul 5 23:22:14 UTC 2023
On Wednesday, 5 July 2023 at 10:14:38 UTC, FeepingCreature wrote:
> On Wednesday, 5 July 2023 at 09:50:55 UTC, harakim wrote:
>> If someone at my work removed a field that I was using from a
>> database or an optional field from an API, I would flip out. I
>> have never seen removing "useless" or "ambiguous" features as
>> a good thing if people are actually using them. If that's the
>> case, then you have to go out and talk to them and get them to
>> agree first because you're the one who screwed up. Otherwise,
>> you leave it as it is.
>>
>
> And what do you do when that person has left the company and
> you don't have anyone with commit access to their code?
It's hard to imagine a hypothetical situation where this could
happen and where I also couldn't come up with a a workaround.
Unless it resulted in a security issue or data corruption, I
would probably not change the API to add additional requirements
until the calling application could be replaced. If I added a new
field, it would be optional. If I couldn't identify which calls
were coming from the old errant service and I felt like I had to
make it required for security or data corruption reasons, I would
probably write a proxy. This is all assuming that service is both
never updated and also important.
As for D, do you know what Java would do in this situation? or
.NET? I know all of the 20 year old Java code that I have
attempted to compile still compiles. I don't have .NET code that
old, but I have never had issues downloading examples from 10
years ago unless they use XNA.
Maybe the D community should actively reach out and maintain a
list of critical projects (kind of like the kite list) and then
just make sure there is some kind of continuity plan and list
those as almost-standard libraries or the like so people will
tend toward them.
> Theoretically the use of the 'deprecated' feature is exactly to
> draw user attention to n upcoming change, and D already has
> very wide deprecation windows. If something is marked as
> deprecated and people only speak up (and post their repos) once
> it's actually removed, my sympathy is honestly limited.
If your target audience includes only people who notify you every
time a feature they use is deprecated, then I think that's a fine
stance. It would be helpful to spell that out as a philosophy of
D so people can make a language decision with that in mind.
> Compiler flags don't work as soon as libraries come into play.
> Really, what you'd want is *package flags;* settings that
> lexically affect exactly the modules of a particular dub
> library.
At first, I thought this made sense, but now I wonder why would
it be a problem? Either you're pulling the source and you can
compile with the flag or you're pulling the binary and it's
already built. It seems like it makes sense and I must be missing
something.
More information about the Digitalmars-d
mailing list