Non-ugly ways to implement a 'static' class or namespace?
thebluepandabear
therealbluepandabear at protonmail.com
Mon Jan 23 00:36:36 UTC 2023
On Monday, 23 January 2023 at 00:27:29 UTC, Adam D Ruppe wrote:
> On Monday, 23 January 2023 at 00:21:12 UTC, thebluepandabear
> wrote:
>> there's nothing in the language currently that would 'force'
>> the user
>
> Why do you hate freedom?
It's not a freedom issue, it's a library-design issue. Some
libraries want to incorporate a namespace-like design to force
the user to be more 'explicit' with what they want.
SFML has a `Keyboard` namespace which has a `Key` enum.
The user is 'forced' (although I am not sure if this is the case
since it's C++) to use the `Keyboard.` declaration before using
the `Key` enum. Looking at code block 1 and 2, which makes more
sense?
```C++
Keyboard::Key.A
```
```C++
Key.A
```
The first one does, because looking at the second one, the person
who will read the code might be confused what 'Key' means, is it
a car key, a set of keys for unlocking something, etc?
Now, the user doesn't have to use the library if they don't want
to. There will be plenty of libraries out there that don't have
namespaces.
I haven't been programming for a long time, but most of the other
languages I used had such a namespace feature. Kotlin has
something called an `object` which is essentially a namespace and
it is great. The benefits of adding a namespace-like feature
outweigh its costs, imo.
More information about the Digitalmars-d-learn
mailing list