Spanish from Spain has an official dictionary that dictates what is correct and isn't. You can't be more prescriptive than that. Sure, that dictionary adds words based on usage, even ones that are clear misspellings of the "real" word, but they are marked as so.
calcopiritus
Whatsapp was great and everybody used it before Facebook bought it. It was 1โฌ/year subscription.
Now that Facebook bought it, there's no way of choosing an alternative. Only "nerds" care about it being owned by Facebook. And "nerds" don't have enough social power to say "if you wanna talk to me, you have to use this other app", they'll just stop talking to the "nerd".
Some people are just elitist.
"Ew? You use the GUI? I'm way better since I do that from the terminal".
But since the terminal has a shit UI, they do all sort of things for it to resemble a GUI more. So they can have the convenience of a GUI while not hurting their pride.
No. Maybe in the last one. Since I haven't seen it and just pretend doesn't exist
I'm not looking to argue about the importance of my points. I wouldn't have listed so many in that case.
The point I'm trying to make is that this is a very incomplete article, as it doesn't seem that much thought was put on the downsides.
A good article would've considered every angle. And so would probably conclude (if it had a conclusion) that the premise is incorrect, and the world of language design is more nuanced than "having both modifiers and annotations is bad language design".
And at that point, the article would've probably ended up being: when should annotations be used instead of modifiers?
Many of the most popular languages have both modifiers and annotations:
- Java
- Rust
- Python *Javascript
C doesn't have both because it doesn't even have annotations. Idk about C++, but it either doesn't have annotations (like C) or it should be in the list above
All of those have been heavily criticized from a language design PoV. And I've never seen anyone complain about this. People genuinely don't believe this to be an issue.
The closest is public static int main() for java. But making them annotations would not fix that, only rearrange the issue vertically.
I did not intend to sound angry. I was trying to do an honest review of this article. Since I did not consider it good at all.
What a way to validate OP by completely misreading what he said.
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.
You have the most important part flipped.
The authority we give the government is not to provide services. The authority is to collect taxes, which are used to provide services.
Anyone can provide services, but not anyone can collect taxes. The government can only collect taxes because we gave them the power to do so.
Without taxes, the government cannot provide the services. A lazy asshole that avoids paying taxes is preventing the government from providing more services, even if he "gave them power".
The case of the "lazy asshole" is not one in which he needs to steal food to survive. The case is of a perfectly capable person that could be doing literally anything to earn an income, but chooses not to, since stealing is easier. Even if he has an income, he may prefer spending his money on more expensive luxury goods, since he can save a lot of money by just stealing the food.
By doing so, he's being incredibly antisocial in multiple ways:
- Stealing is done without the knowledge of the shop. Which means that it is harder for them to keep track of inventory. Requiring more effort means that the price will go up (for the people that don't steal).
- Shops don't just suffer the loss. If an item is often stolen, they'll just increase the price to make up for it. For everyone that doesn't steal.
- If a shop chooses to suffer the loss instead, the thief is directly stealing from the shop (as opposed to everyone else). How is that fair in any way? The shop might even go out of business.
- It hurts the actual people that need the food: some people will be angry (for the reasons above) and will probably blame the people that need it. Might even jump to the conclusion of "why do we have social programs for them if they're gonna steal anyway?".
- It erodes trust in general. Everyone benefits if everyone behaves correctly. I don't think I need to argue why. In this case specifically, shops wouldn't need to implement anti-theft measures if nobody stole. It would be a waste of resources.
- It's even worse if you steal from another person directly or a small shop instead of a big shop. For multiple reasons.
- It does psychological harm. Maybe the food owner had plans for that food, so now he has to make new plans, or even worse, go make another trip to the store to buy more food.
- It lowers the stock. Which combined with the difficulty to keep track of inventory, might result in an item going out of stock. Preventing everyone else from buying it.
- If it was home cooked, it might've been cooked as a gift for someone else. Increasing the psychological harm.
I could go on. But I believe this is more than enough to get the point across.
When something is stolen, society doesn't just lose the value of the item. A 1โฌ item being stolen might be a loss of 10โฌ for society.
There's 2 choices:
- Literally everyone gets provided with the basic needs by the government.
- Only the people that are unable (not unwilling, important) to pay for basic needs gets them provided by the government.
Both cases should remove hunger as a problem. Only in case 2 would the lazy assholes be hungry. But being hungry should be motivation enough to work at least the bare minimum. Which means nobody would be.
What both cases have in common is: nobody has the need to steal food. Therefore, it should not be allowed, neither legally nor morally, due to it being incredibly antisocial and expensive.
The solution to hunger is not "let them steal". It is "give them food".
Or maybe we could have a system where the people that actually need it are given food, in order for there to be no excuse for stealing food.
Stealing food is still stealing, when you do it you indirectly increase the price of it for everyone else.
If everyone else just puts aside a bit of money to pay for food for those that actually need it, we can have both no starving and no excuse for stealing. Which would result in food being cheaper for everyone.
The most foreseeable event of the last 20 years.
Massive out of this world investment + no demand = prices so cheap they were operating at a huge loss
Operating at a huge loss + time = huge enshittification
Raising prices is the easiest form of enshittification. Ads are coming too. Lastly it will be degrading features. Incorporating more features that no one wants, and bundling with other services that no one wants.