D has become unbearable and it needs to stop

Martyn martyn.developer at googlemail.com
Tue Jun 13 15:34:28 UTC 2023


On Tuesday, 13 June 2023 at 14:17:33 UTC, deadalnix wrote:
> On Thursday, 8 June 2023 at 13:38:20 UTC, GrimMaple wrote:
>> I usually try to stay more silent (on the form at least), but 
>> I think I reached my boiling point. I've been a (self 
>> employed) full time D developer for almost 2 years now, 
>> developing quite a large codebase of personal closed source 
>> projects, as well as adopting some 3rdparty code like dlangui. 
>> And my life has become particularly miserable in the last half 
>> a year or so.
>>
>> [...]
>
> Case in point:
>
> https://issues.dlang.org/show_bug.cgi?id=23989

Interesting...




Anyway, this is a general question for all, and I understand I am 
(likely) showing my n00bness as a D developer.

(Afterall, one of the reasons I am skeptical using Dlang for 
production is precisely this reason... no LTS and, more 
specifically, mangling of libraries tested under different dmd 
builds)

For example.. lets say:-

I have created a D application using DUB. So far, so good. It 
builds with the latest version of dmd I installed earlier today 
(2.104.0)

Ok, now I need to use some libraries. DUB is great for this! 
However, when I search for packages, how do I know which version 
they support?

```
    2.104.0?
    2.103.0?
    2.102.0? (???)
```

Are we expecting maintainers of these libraries to keep them up 
to date monthly? Lets be honest.. if I need to include 3 DUB 
projects into my application then what are the chances they have 
been tested on 2.104.0? It is highly unlikely. The next question 
is - what version should I be using? Atleast 4 versions old?

One DUB package might have been updated 4 months ago. While I can 
predict the version they last used, it does not mean thats that 
the version tested by the maintainer. Should I have to predict 
this? Should I have to look at their code? Each DUB package have 
their own versioning which does not help, either.

Now, imagine the difficulties of an application with 3 or 4 DUB 
packages. Each library being released/updated at different times 
and lord knows what version they were last tested on. Will they 
all work with 2.104.0?

Because of potential breaking changes for each new release... 
could I end up with ProjectA being OK but not another, while 
experimenting with different dmd versions?

There is a reason why LTS releases exist. Look at other 
languages. Java, .NET, C++. Look at other projects like Linux or 
Blender. Could you imagine Blender users going by monthly builds 
only. Blender would fall apart and fast!

Again, if we had LTS builds, our libraries can target those 
specifically. It also makes it easier to maintainers to plan 
ahead for the next LTS. As my previous post suggested, the 
version of the libraries can start with the LTS version. It makes 
it so easy to know if your version is supported, etc.

Just my 2 cents and I apologise if I am really missing the point. 
I am sure atleast some of this lands with a number of people.





More information about the Digitalmars-d mailing list