ddulaney
Joined 8 years ago
Joined 8 years ago
These are the same reasons Google Docs took off, and they are real advantages.
The no damage being caused on the surface was a “new fact”. That would never fly today, for better or for worse.
The idea of using the same tools to manage your docs as you manage your code only makes sense if you understand what tools you use to manage code! If you don't -- if your main experience with documentation tooling is Word, or maybe MadCap stuff -- that's a really huge leap to make.
If you ever find yourself on the wrong end of it, read this article for advice but also explanations: https://www.kalzumeus.com/2017/09/09/identity-theft-credit-r...
Understanding how the system works, which buttons work and which don’t is half the battle.
This is an issue with the C++ standardization process as much as with the language itself. AIUI when std::optional (and std::variant, which has similar issues) were defined, there was a push to get new syntax into the language itself that would’ve been similar to Rust’s match statement.
However, that never made it through the standardization process, so we ended up with “library variants” that are not safe in all circumstances.
Here’s one of the papers from that time, though there are many others arguing different sides: https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p00...
There’s a great talk by Louis Brandy called “Curiously Recurring C++ Bugs at Facebook” [0] that covers this really well, along with std::map’s operator[] and some more tricky bugs. An interesting question to ask if you try to watch that talk is: How does Rust design around those bugs, and what trade offs does it make?
Unfortunate that the color scheme is confusing, but not any weird borders.
You can see the uncolored map here: https://en.m.wikipedia.org/wiki/File:BlankMap-World6-Equirec...
There are at least 3 knobs to turn every time you want to parse a CSV file. There’s reasonably good tooling around this (for example, Python’s CSV module has 8 parser parameters that let you select stuff), but the fact that you have to worry about these details is itself a problem.
You said “handling data is complicated as much as the world itself is”, and I 100% agree. But the really hard part is understanding what the data means, what it describes. Every second spent on figuring out which CSV parsing option I have to change could be better spent actually thinking about the data.
I think the reasoning (as it was explained to me) was that when people made their original contributions, they were agreeing to the license at that time (in this case GPL, but for other projects MIT). But the other contributors never agreed that the main maintainer could relicense their contributions for a fee.
The upshot was that we went with an in-house fully-proprietary alternative. More expensive, probably lower quality.
We also want to engage with and donate to the projects we use, mostly out of risk management: if they go unmaintained that’s bad for us.
We probably would’ve for LZO too; not sure why that fell through.