So, depending on how you define "not worth it", which I take "I'm too lazy to implement it", you could be correct.

YaAA:
If the implementation is so obviously trivial why don't you implement a proof of concept? The compiler is open source after all.

JS:
because I have better things to do and there is an extreme likelihood it won't be accepted.

So, you have better things to do, but other people are lazy if they do not implement something you need but they don't?

It's a proof of concept, you offer it to other users (if you build it they will come, or not) who, if they find it as useful as you apparently do will lobby on your behalf.

YaAA
People routinely underestimate the ripple effect that adding 'trivial' extensions to a language can have on a language.

JS
Um, and people routinely don't think hard enough about the problem to realize the feature is an orthogonal semantic that has no bearing on anything but what it does.

It's not true that it has no bearing on anything else.

JS
Why do I know this?

Because the feature is short hand notation that can be directly implemented the long way. If the long way doesn't have problems, then the short way does not have any problems(except if your implementation is bad, but that's not the fault of the short way).

I can write a preprocessor to do the things I need to do. I have done it before. The problem is it is hard to make such features robust without some grammatical context such as an ast.

You have the source code for the compiler at your disposal. If this is as trivial to implement, and as useful to you, as you claim, then I do not see why you cannot knock something together to showcase the feature. Are you unwilling to do any work to see this feature implemented? If so, how can you impugn the work ethic of someone (by implying that they ate lazy), who has already donated their time and toil to you, if they follow suit?

Language design is by necessity a conservative affair; it's easy for a language to die a death-by-a-thousand-features.

See if you can find some real-world examples of where this pattern could be useful.

At the very least you need to specify the construct in more detail addressing, for example, the following:
- Does it only work on "final switch" or any switch?
- How are non-integer expressions handled, if at all?
- How does it interpret 'default'?
- How does it deal with range gaps?
- ...

Reply via email to