I mean, E2E is the entire point of Signal. if you don't think E2E is important then Signal is the wrong app. Personally given the current political climate I think having the technical knowledge to understand what E2E is and not wanting E2E is bonkers. High chance of people getting killed or jailed in the US for mainstream political positions in the near future.
For those to be equal you need both associativity and commutativity.
Commutativity says that a*b = b*a, but that's not enough to allow arbitrary reordering. When you write a*b*c depending on whether * is left or right associative that either means a*(b*c) or (a*b)*c. If those are equal we say the operation is associative. You need both to allow arbitrary reordering. If an operation is only commutative you can turn a*(b*c) into a*(c*b) or (b*c)*a but there is no way to put a in the middle.
That era was nice but it has a different problem. People will pearl clutch about kids getting exposed to someone's custom skin making their character nude, or putting curse words on the side of a gun or whatever.
Can you show me a profile that demonstrate the slowness is because imports are running large amounts of arbitrary Python code? Maybe they shouldn't do that. Maybe libraries should be pushed to not run expensive arbitrary code execution at import time.
This would be a huge deal for Python startup time *if* it was applied to all the standard library packages recursively. Right now importing asyncio brings in half the standard library through transitive imports.
$ time python -c '' # baseline
real 0m0.020s
user 0m0.015s
sys 0m0.005s
$ time python -c 'import sys; old = len(sys.modules); import asyncio; print(len(sys.modules) - old)'
104
real 0m0.076s
user 0m0.067s
sys 0m0.009s
For comparison, with the (seemingly optimized) Numpy included with my system:
$ time python -c 'import sys; old = len(sys.modules); import numpy; print(len(sys.modules) - old)'
185
real 0m0.124s
user 0m0.098s
sys 0m0.026s
Context switching makes you less productive compared to if you could completely finish one task before moving to the other though. in the limit an LLM that responds instantly is still better.