October 27, 2023
On Friday, 27 October 2023 at 15:01:07 UTC, Timon Gehr wrote:
> On 10/27/23 16:35, Imperatorn wrote:
>> On Friday, 27 October 2023 at 13:00:37 UTC, Timon Gehr wrote:
>>> On 10/26/23 19:38, Imperatorn wrote:
>>>>>
> You conduct yourself as if there was some group of powerful stakeholders called "users" with a uniform and informed opinion on this matter that elected you as a representative.
>

Yes, because there, is? Everything except that I have been elected.

Have you even tried opening a browser and checking? And if you don't have access to the world wide web then go to a library, and if there is no library nearby, go outside and talk to someone, anyone. Any developer should do basically.

It's unsettling how little work anyone want to do, just search for yourself. It takes 30 minutes to get a complete picture of the current state in all major languages having string interpolation.

Do we have to start at the bottom of the entire logical chain for it to become obvious?

0. The world exists ✓
1. There are users ✓
2. Some of them write programs ✓
3. Many of the programs written in the last decade have string interpolation ✓
4. All of them can give you a string without the user having to do anything ✓

Now the question becomes:
Do you care about those users or not?

If not, then ok, just say so? I would respect that. But don't be surprised when they think you're doing something that feels unnatural to them. Like using a door, flipping a switch or whatever you do every day. If suddenly someone thought it would be a splendid idea to make you scream for 30 seconds straight to make the light bulb turn on, great, do that. But don't try force convince the rest of the world that your borderline psychotic behavior would be "normal" and that it would be offensive to question the design.

>
>> That basically what the current implementation does.
>
> No, that's not true.

You just say "no" without providing any evidence. Why? Is itsome kind of Halloween thing

> Sometimes there is a better solution.

Here you are actually correct and have a point. There might be better solutions. And D might be the first to show that.

But think of it in terms of probability.

Is it more probable that we, or the rest of the world, are wrong?

> I am not surprised, just disappointed at the quality of discourse.

Your subjective view of the quality of discourse is of course important, but it does not change any of the facts provided.
October 27, 2023
On Friday, 27 October 2023 at 15:59:57 UTC, Imperatorn wrote:

> Your subjective view of the quality of discourse is of course important, but it does not change any of the facts provided.

So then, please, let's all try to keep the quality of discourse up a bit and stay focused on the pros and cons of the competing string interpolation implementations.

Thanks!
October 27, 2023

On Friday, 27 October 2023 at 16:04:26 UTC, Mike Parker wrote:

>

So then, please, let's all try to keep the quality of discourse up a bit and stay focused on the pros and cons of the competing string interpolation implementations.

Yeah, we might have strong views about what is the best way to proceed, but we should assume everyone else is also trying to do what's best for the language. Expressions of diverse viewpoints ensures everyone is heard and that all issues come out. It's okay if we have different objectives/priorities/use cases.

October 27, 2023
On Friday, 27 October 2023 at 16:04:26 UTC, Mike Parker wrote:
> On Friday, 27 October 2023 at 15:59:57 UTC, Imperatorn wrote:
>
>> Your subjective view of the quality of discourse is of course important, but it does not change any of the facts provided.
>
> So then, please, let's all try to keep the quality of discourse up a bit and stay focused on the pros and cons of the competing string interpolation implementations.
>
> Thanks!

👍
October 27, 2023
Much like the entrepreneur, the language designer is tasked with the difficult job of predicting what users would want in contrast with what they currently have and expect. This is how innovation materializes.

After giving Adam's implementation a spin, I'm convinced this is the proper way to move forward despite not having conceived it as a possibility beforehand. It's powerful, exploiting D's superior metaprogramming and DBI capabilities, but doesn't stray too far from the current situation found in many languages in that one can just use `text` or something similar if a plain string is required.

I anticipate the worst solution will win out given Walter's disposition, but I nonetheless hope for the best.
October 27, 2023
On Friday, 27 October 2023 at 19:18:08 UTC, djent wrote:
> After giving Adam's implementation a spin, I'm convinced this is the proper way to move forward despite not having conceived it as a possibility beforehand. It's powerful, exploiting D's superior metaprogramming and DBI capabilities, but doesn't stray too far from the current situation found in many languages in that one can just use `text` or something similar if a plain string is required.

Which makes me wonder is there a way to open up for implicit conversions? C++ has this which I kind of like.
Can we meet in the middle of road and allow implicit conversions in some cases?
October 27, 2023
On Fri, Oct 27, 2023 at 07:18:08PM +0000, djent via Digitalmars-d wrote:
> Much like the entrepreneur, the language designer is tasked with the difficult job of predicting what users would want in contrast with what they currently have and expect. This is how innovation materializes.
> 
> After giving Adam's implementation a spin, I'm convinced this is the proper way to move forward despite not having conceived it as a possibility beforehand. It's powerful, exploiting D's superior metaprogramming and DBI capabilities, but doesn't stray too far from the current situation found in many languages in that one can just use `text` or something similar if a plain string is required.
> 
> I anticipate the worst solution will win out given Walter's disposition, but I nonetheless hope for the best.

I also hope that Adam's approach will win.  To me, it's the design that best leverages the existing strengths of D: metaprogramming, DbI, and strikes a pretty good balance between power and convenience.  This gives it the potential address many of the issues that were brought up against string interpolation -- having it integrate well into DbI means you actually have a fighting chance of mitigating such issues without adding yet another hack into the compiler/language.

Walter's solution in contrast seems rather lackluster, it solves only one specific case but leaves other use cases out in the cold, and we eventually end up with yet another half-baked feature that works well enough on its own but doesn't really integrate deeply with the rest of the language.


T

-- 
Knowledge is that area of ignorance that we arrange and classify. -- Ambrose Bierce
October 27, 2023
On 10/27/23 17:59, Imperatorn wrote:
>>
>>> That basically what the current implementation does.
>>
>> No, that's not true.
> 
> You just say "no" without providing any evidence. Why?

What can be stated without evidence can be dismissed without evidence.
You made a ridiculous analogy. You are acting like people simply have to be crazy for not seeing it your way. Like in fact, the devil is not in the details.

I think concerns like the interpolated string expanding into multiple local variables being surprising behavior are much more important than claims like "you have to be crazy for not doing it like those 5 other languages, psychologists say so!".

> 
>> Sometimes there is a better solution.
> 
> Here you are actually correct and have a point. There might be better solutions. And D might be the first to show that.
> ...

Interestingly, no. The Java proposal linked earlier is similar in this respect.

> But think of it in terms of probability.
> 
> Is it more probable that we, or the rest of the world, are wrong?

It has _already been shown to be a source of issues_. It's simply the power of hindsight, afforded to D because Walter has been somewhat conservative in adding new shiny features. D often ends up doing things somewhat differently to avoid pitfalls into which other languages have fallen. This is a meaningfully different endeavor to stupid straw-man proposals like breaking language changes such as `int.asint`, accident-inducing captcha on car breaks, or having lightbulbs be activated by 30 seconds of screaming.

When you engage in such comparisons, you are essentially saying "different implies worse. I don't have to make the case. if you were a reasonable person, you would already agree with me". The implication actually goes the other way around. But this is not surprising. Better is also always different.

> 
>> I am not surprised, just disappointed at the quality of discourse.
> 
> Your subjective view of the quality of discourse is of course important, ...

Nothing particularly subjective about it. E.g., from you last post:

> But don't be surprised when they think you're doing something that feels unnatural to them. Like using a door, flipping a switch or whatever you do every day. If suddenly someone thought it would be a splendid idea to make you scream for 30 seconds straight to make the light bulb turn on, great, do that. But don't try force convince the rest of the world that your borderline psychotic behavior would be "normal" and that it would be offensive to question the design. 

This insulting hyperbole adds nothing to the discussion. All it does is attempt to discourage people from engaging in a discussion with you, because you accuse them of being crazy for having a nuanced perspective. You are also rudely twisting my words here. Questioning the design is a priori not offensive. I would be glad if you were just questioning the design. But maybe try accepting or critiquing some of the answers on their own merit and toning down your GPT-fueled fallacious rhetoric and appeals to popularity.

> ... but it does not change any of the facts provided. 

Well, in a high quality discourse, facts would be provided instead of personal attacks that are then critiqued in a meta-discussion advocating for basic civility. So yes, it would change the facts provided.
October 28, 2023
On Friday, 27 October 2023 at 21:19:43 UTC, Timon Gehr wrote:
> On 10/27/23 17:59, Imperatorn wrote:
>>>

There are no personal attacks.

The Java proposal is just a proposal, I am talking about the existing solutions that people use already.

Accusing people of weird things does not gain you any points or sympathy, it just shows you are not honest enough to see the facts without layers of politics, strategy or personal motives.

It's called motivated reasoning.

I don't have a hidden motive other than caring about the vast majority of users and making the probability that D gets more users higher.

It's totally fine if you don't care about those things, but then don't pretend that you do. That's the issue. Not the facts.

There could very well be a good reason you don't care about those things, but then just state them clearly.

For example:
"We know the majority of users expect A, but we still think this solution B is better, so much so that we are fully aware of the consequences and that it might very well lead to those expecting A not using D"

Or something like that.

Totally fine, just be honest about it.
October 28, 2023
On 10/28/23 11:08, Imperatorn wrote:
>>>>
> 
> There are no personal attacks.
> 
> ...
> 
> Accusing people of weird things does not gain you any points or sympathy, it just shows you are not honest enough to see the facts without layers of politics, strategy or personal motives.
> ...

Can't make this up. Shameless juxtaposition. 🤣

Anyway, you have well earned a spot in my Thunderbird kill file. Enjoy.