• 1 Post
  • 535 Comments
Joined 3 years ago
cake
Cake day: September 2nd, 2023

help-circle
  • What is this article? There is no author, and it is written as if it were an objective truth when it is clearly subjective.

    There is no conclusion, it’s just an introduction paragraph that says “do this, this is good design”, followed by a pro-con analysis, and then the article just ends. Given that it has real drawbacks, you would think it would be more nuanced than “do this, this is good design”.

    Furthermore the analysis is not even complete. The only 2 drawbacks mentioned only affecting the developer of the language. And ignoring more obvious drawbacks that would affect the users of the language:

    • Aesthetics. Annotations are just uglier than modifiers. Due to their special syntax instead of just a naked keyword.
    • Annotations take up more space. Screen space is valuable, annotations usually are stacked vertically, which takes up a lot of vertical screen space. This is in order to mitigate their use of horizontal screen space by their syntax.
    • Disorder. Annotations are not ordered, which means they are harder to parse by a human. And if there is a wall of annotations, a human might miss an important one because it is surrounded by others that are just boilerplate.
    • “Downgrading” modifiers to annotations removes their perceived importance. Modifiers modify the class/function/whatever, annotations add to it. Usually, you can ignore annotations and just look at the modifiers. If modifiers are annotations, you have to read the annotations to filter which ones are important to you and which aren’t. Which is harder to do due to the previous point “Disorder”.
    • If annotations were objectively better than modifiers, the logical conclusion would be “your language should not have modifiers, do annotations instead” instead of “if your language has both, remove modifiers”.
    • Namespacing is not objectively better. I don’t want to import “public” in every single file. It’s just useless boilerplate at that point. And some dependency might export their own “public”. Or even worse, a non-annotation (function, class) named “public”. If reserving keywords for modifiers is a concern, you can just prepend the uncommon ones with “__”. Nobody is going to complain that they can’t use the name “__readonly” because it’s reserved.
    • Variable declarations do have modifiers too (for example “const” in C). Annotations are awful for variable declarations. See the point about screen space. Same for closures or code blocks.

  • Headline: says something. (That is obviously not true and just clickbaiting)

    Instant disclaimer: the headline is not good, it should be instead “don’t do this other thing”.

    Later in the article: how do we avoid doing the thing I told you not to do? By doing what I told you not to do.

    The dude may be correct (idk, haven’t bothered reading the rest of the article), but he doesn’t know how to write/communicate. I don’t believe he’s respecting my time. Just tell in the title what you actually want to talk about.


  • 5 seconds at every boot and shutdown is important.

    The reason you shouldn’t blindly benchmark an init system is because most of the time is not caused by the init system itself being slow, but the processes it manages being slow.

    As the other commenter says, it is very easy to make the system “faster” by just configuring the timeouts to be lower. If you just set the timeout to 0 it will be very fast, but it won’t be a very good system.
















  • It’s a hyperbole. It’s not unethical. But many people don’t like it/hate it.

    1. An image is just more expensive than text. Text is usually ~1 byte per character. An uncompressed image is ~3bytes per pixel. Of course, most images are compressed, and compression does a lot of heavy lifting. But still. Also, you don’t need to uncompress plain text. More amount of bytes means more storage expense, more network expense, and worse user experience due to latency.
    2. We have plenty of tools that work for text. You can copy-paste it. You can easily edit it with just a keyboard. It is easily configurable via fonts and font sizes.
    3. Accessibility: text can be read by screen readers. Images (without alt text) cannot. Maybe there are some fancy screen readers that OCR images, but then it’s the case of point 1.
    4. Text is easily indexable. Which means that it’s searchable. If the reddit search tool were any good, it could find the post. Not for images. Alternatively, 3rd party search tools such as google and DDG work.

    There’s probably many more points.