Only direct product properties should drive users' choices, everything else just raises the market entry barrier for potential competitors.
310 karma · joined August 1, 2019
Only direct product properties should drive users' choices, everything else just raises the market entry barrier for potential competitors.
Even in this post lots of points are invalid and/or survivorship bias. Scala 3.3 recently introduced a breaking change in their type resolution (fortunately we don't use Scala 3), cats-effect migration is painful and drags on for a long time (years), sbt is slow and hard to understand.
UDP-based HTTP/3 could be considered a better transport protocol in the future with its multiplexing and lack of HOL-blocking, but right now it's still worse than TCP on stable connections
The encoding is almost always UTF-8, I never encountered anything else on any network I used.
Yes, some networks may be stuck in the past, that's unfortunate, but the modern IRC is pretty good. Also custom extensions are not a problem since the capability negotiation was introduced.
It would have to influence the c2s protocol as well, e.g. the identity is tied to the service provider and it has to be communicated to other clients somehow to avoid collisions.
Rust has many cases when it introduces implicit type-level properties, another one is async-fns with its lifetimes and marker-traits such as Send.
What does that mean?
It is true that jemalloc is much better than the standard malloc, but it still suffers from memory fragmentation, although typically a program can run for much longer with it.
> It’s the operating system’s job to manage fragmentation in the allocator, right?
No, not really. The operating system does nothing with the memory space of the process, other than providing syscalls for giving the process more pages.
> Wouldn’t this be a criticism of any long-running program which uses dynamic allocation, not only Rust?
What some thicker runtimes such as JVM do is that 1) they track all pointers present in the data used by the program and do not allow programs to cast them to raw integers (or back); 2) they can defragment the heap by moving the memory chunks around to fill in the gaps and at the same time they rewrite all pointers that point to moved chunks so that they still point to the same data.