Well also caching matters.
In HTTP, intermediate proxies were able to offload the server.
One of my strongest criticism of HTTPS is that it's designed to force users to always connect the server, disabling proxy caching.
That hurts users (because the server track them) and smaller websites (that needs more bandwidth and computing resources).
If you double half square (cut over a diagonal) you might get the original square, a triangle or a parallelogram: it all depend on how you arrange the two halves you get.
If you multiply one square by one, you can only get a square.
So I think I got the joke, I was just surprised to see mentioning #crochet in #math, a concept I've never heard before.
Ok, now I see your aggressiveness in this thread is just due to confusion.
When you write:
```
The complexity is understood by experts collectively, and if they honestly serve the general public it's not a problem what so ever.
```
it becomes evident you have no clue about programming and software.
Do you know the history of #Heartbleed?
There are thousands of severe security vulnerabilities in software discovered every years because:
1) not even experts, collectively¹ or not, understand the software they code
2) when a system is not fully understood by any single mind, you just need ONE dishonest expert to introduce subtle vulnerabilities.
Indeed this happens continuously in the real world, like it or not (I don't).
Anyway, feel free to keep your loved chains on your mind singing "Don't worry... be happy..." 🎶🎙️🎶
Bye!
___
¹ whatever "collectively" means in the contest of understanding complex and ever-changing systems
I do not know why you are so aggressive, but for sure we attribute different value to privacy and freedom.
The parallel with, say, legal writing is weaker than it seems because any contract is going to be enforced in front of a human (a judge) that will interpret both the text, the law and the intents of parties.
OTOH, you are right that even with writing we have field experts (mathematicians, lawyers, poets, novelists and so on) and that's fine but there is a reason why such professions are strongly tied to something that can be read by anybody.
Would you trust a court that can jail you for violating laws you are unable to read?
Today in our industry there is a lot of fuss about #Ethics in #AI just because we don't want to admit that any software for which we cannot explain exactly and completely the relation between input and output is broken and should not be used on human data.
But the same is true for proprietary software and even with #opensource software that is too complex to be understood in a reasonable amount of time by any single programmer (not mentioning people unable to program).
That's the power I was talking about: we create automated system that impose our will to unsuspecting and unaware people that not only have no understanding on what it really does (think of trackers, analytics and so on), but do not even realize they should be enabled to have a saying!
We basically write secret #laws that self-enforce over unsuspecting people and that not only affect what they can and cannot do, but what they can and cannot think!
And not just on an individual level, but on a global scale!
I don't think that a carpenter, an architect or a plumber can be so dangerous, tbh.
mnot’s blog: How the Next Layer of the Internet is Going to be Standardised https://www.mnot.net/blog/2021/06/21/standards-competition-governance
#selfHosting can be a lot like gardening.
It's one upfront investment and then lots of tiny tweaks over a long time.
I'm not sure I understood your last paragraph, but I cannot take you seriously when you state that if you weren't able to read and write because writing was still a craftmanship like it was 5000 years ago, you would appreciate the expert that would read and write your letters "as long as the expert is independent and provides a service fair and square".
How would you know that her service is fair if you couldn't read them yourselves? Asking different experts to read your letters and see if they all say the same? And to read the letter written by an indipendent competitor?
I don"t know.
I'm glad the alphabet was invented.
And I think we lack an alphabet for #Informatics (and even lack fundamental concepts like ancient civilizations laked the zero).
I don't know.
My rule of thumb is: if it takes more than a month to be fully read and understand a software, it's broken beyond repair.
The more time, the more it's broken.
How broken is #Python? #Rust? #GCC?
I ported GCC to Jehanne, because I used to share your insight about legacy, isolation, containerization and substitution... but I'm not sure anymore.
You don't need to convince me about the intrinsic evilness of #capitalism, but you are missing the point.
Would you like a world where you need to rely on an expert/élite to write or read anything?
That's what billions of people do everyday right now, through automatisms they do not understand (#WhatsApp, #GMail and so on).
Our craft is not like others, even if most of us are (or pretend to be) still unaware of our power.
We are the scribans of our age.
At times I feel hopeless for the future of our cybernetic world.
Can computing be fixed?
#9front is a great operating system... if you know (its own) C and its (great) userspace tools.
#Jehanne should be simpler (a toy so far, but even if complete it would stay simpler) but even if ignoring the huge amount of work wasted to port #GCC before it was turned to yet another weapon of #US imperialism, it still requires to learn a lot of glibberish.
Why in 2021 I have to explain my daughters what `grep` means? `cat`? `xargs`? `git`?¹
Why we still use cli arguments (argc, argv) instead of a proper and uniform command language pre-parsed by the kernel?
But the problem is deep.
At times, I despair. 😢
Because I see how this lead straight to a terrible dystopia for future generations.
But apparently, nobody care enough.
____
1) Don't get me wrong: I like these software a lot and use them extensively everyday, but they are tools designed to maximize the productivity of an élite of experts, not to empower casual programmers.
For sure we have a privilege: being able to code.
It's the privilege of scribans in Ancient Egypt and we should work hard to invent an alphabet that free the rest of the world from our power, as we tend to serve the Pharaons of our age.
We continuosly raise complexity, either accidentally or as an explicit entry barrier to "the market" (think of modern browsers) while we should always keep it so low that literally everybody could read and modify the code.
That's what turned #FreeSoftware from a quest for #freedom to an expression of #USA power and #US-privilege.
I recognize such privilege but as @jcbrand noticed, it doesn't give anybody any entitlement on my work.
It just give me the will and energy to look for solutions that turn such privilege into a freedom that everybody can use for real (but not without study: even if you want to drive a car you have to study how to drive, and a computer is much more powerful - and socially dangerous - than a car!)
They are mutually exclusive in C (and most other languages, afaik) but I've seen at least one language using:
1) non-constants as case expression
2) non-exclusive branches
A recent example is React's Router dom's Switch (but I've seen this before)
I don't like this approach but I was looking for an `if/elif` idiomatic alternative in an if-less language.
Voted imperative because computers are things we tell what to do.
But if we are talking about pure functions (no side effect, no change to state and so on) I would let the verb "compute" as implicit and use a name describing what have to be computed instead.
This is my usual naming approach but there are more corner cases that depend on context.
For example, when programming a domain model, specification methods are usually called `IsSatisfiedBy` since the class/interface express the conditions represented.
Similarly in DDD, I name most analysis method as `Analyse` as the interface/class name express the analysis that will be computed.
to be fair I can think of cases where sequences of `if/else if` cannot be easily subsumed by a `match/case` statement, not even if you evaluate the case selection expressions (as PHP did, as far as I can remember).
I mean something like
switch(true){
case isMonday(): print "Monday ";
case isSunday(): print "Sunday";
case isJune(): print "June ";
default: print "hi! ";
}
would print "Monday June ", but would not (easily) subsume "if/elif" (as far as I can think right now).