3 ms·
> You totally miss that Redis is more like a remote interpreter with a DSL that manipulates data structures stored at global variables (keys): I think he makes
by zzzeek 2y ago
> You totally miss that Redis is more like a remote interpreter with a DSL that manipulates data structures stored at global variables (keys):
I think he makes the point that these "global variables" are dynamically typed; you can have "listX" and then write a non-list into that same name; statically typed systems would not allow this. He makes the fairly non-controversial point that a statically typed system (SQL, other than that of SQLite) adds a level of type safety that can guard against software bugs.
- thayne 2y ago> you can have "listX" and then write a non-list into that same name; statically typed systems would not allow this Well, that depends. In most SQL databases there are many cases where supplying the wrong type of value will implicitly convert to the expected type, often in unexpected ways that can result in subtle bugs.
- zzzeek 2y agoPostgreSQL is very very good about really never doing this, and also a scalar vs. list is pretty much a PostgreSQL case since most other relational DBs dont have a native ARRAY type. I think you're mostly thinking of MySQL that has some int/string coercion cases which are to be clear bad, but not as egregious as "any arbitrary type goes right in with no checking whatsoever. as mentioned, SQLite breaks all these rules and I think SQLite is very wrong on this.