DIP1044---"Enum Type Inference"---Formal Assessment
ryuukk_
ryuukk.dev at gmail.com
Fri May 12 03:25:11 UTC 2023
On Friday, 12 May 2023 at 03:11:49 UTC, ryuukk_ wrote:
> On Thursday, 11 May 2023 at 23:00:03 UTC, epilogue wrote:
>> On Thursday, 11 May 2023 at 00:56:03 UTC, ryuukk_ wrote:
>>> Don't you find this code easier to read and review?
>>>
>>> ```D
>>> if (target.os == .Windows)
>>> {
>>> item("windows");
>>> }
>>> else
>>> {
>>> item("posix");
>>> if (target.os == .linux)
>>> item("linux");
>>> else if (target.os == .OSX)
>>> item("osx");
>>> else if (target.os == .FreeBSD)
>>> {
>>> item("freebsd");
>>> item("bsd");
>>> }
>>> else if (target.os == .OpenBSD)
>>> {
>>> item("openbsd");
>>> item("bsd");
>>> }
>>> else if (target.os == .Solaris)
>>> {
>>> item("solaris");
>>> item("bsd");
>>> }
>>> }
>>> arrayEnd();
>>> ```
>>
>> No, I find this harder to review.
>>
>> `.` is the module scope operator, which is already going to be
>> difficult for new dlang coders to learn about given that they
>> would end up searching for the meaning of the `.` character (I
>> speak from *my* experience learning D).
>>
>> I haven't reviewed the DIP in full, but a quick search of the
>> DIP for "module scope operator" does indicate that overloading
>> the module scope operator was already called out as
>> undesirable, so I'm not sure why you would use `.` again here
>> when trying to defend the rejected DIP.
>>
>> Having read the conversation, but not the DIP, I think the
>> repetition issue is known, but the examples offered don't
>> demonstrate (to me, a random nobody reading this thread) a
>> clear improvement of the language or the code in question.
>>
>> I will add that this particular case of repetition the DIP
>> seems to be intended to solve reminds me of brace-expansion in
>> bash, where `foo.iso{,.sig}` expands to `foo.iso foo.iso.sig`
>> allowing bashers to avoid repetition in some cases of
>> repetitive strings, but it should be evident to anyone
>> subjected to reading someone else's bash script that that
>> reducing repetition with brace expansion does not
>> unconditionally improve reviewability of the code in question.
>
> The syntax doesn't matter, i could have used # or :, what ever,
> let's focus on the idea first
>
> It's am improvement to me, hence why i advocate for it, i'm not
> a compiler developper, i can't think of everything, all i can
> think of is it's going to improve the way i write my code
>
> All it took me to appreciate it was to discover it when i was
> using a language that happen to support it, as simple as that,
> i'm not good at english, not even at programming, but i can
> appreciate things makes me write nice code
>
>
> ```D
> switch (action.type)
> {
> case .Attack: do_attack(); break;
> case .Jump: do_jump(); break;
> }
> ```
>
> this is simple and readable, if i can't convice you, then there
> is nothing i can do
>
> Steve Jobs came up with the iPhone when everyone was saying
> "touching your screen with your fingers is a stupid idea", and
> look at us now..
>
> All it takes is to try it
that switch could be further improved with pattern matching, but
that's a discussion for a different DIP
More information about the Digitalmars-d-announce
mailing list