4 ms·
> That being said, Rust and possibly even Go would be strong contenders to make a new SQLite-like library/program today. At least on the Rust side, the C bindin
by mitchty 9y ago
> That being said, Rust and possibly even Go would be strong contenders to make a new SQLite-like library/program today. At least on the Rust side, the C bindings are excellent too.
Doubtful, rust and go do not run on nearly as many platforms as c and sqlite does. I get everyone wants to use other languages, but this incessant "rewrite in rust/go/$THING" is getting annoying.
I'm going to try to coin a new online discussion rule of programming language posts:
- At some point someone is going to suggest any problems for one language can be solved by rewriting in another language.
In this case "because c" "therefore rust". Its basically godwins law for programming language discussion.
- lukebitts 9y agoKeyword is "SQLite-like", you are the one bringing "rewrite in rust" up.
- mitchty 9y agoSeems like a distinction without a difference to rewrite "sqlite in c" to "not sqlite but sqlite-like in rust or go".
- lukebitts 9y agoHow is it not different? It would be a completely new library. I don't see what the argument against that is.
- mitchty 9y agoYou're free to do so, as is anyone. But you'll have to overcome and provide a good reason for why anyone using sqlite should move to your new unproven shiny. If anything sqlite is a poster child for c done (and tested/validated) right. You'll have to demonstrate a lot more than you can implement some things better in the new language.
- deleted 9y ago[deleted]
- jsmthrowaway 9y agoI interpreted that commentary as referencing a new library similar in architecture, like an implementation of S3 that lives locally in the software and is modeled after SQLite. Not “let’s rewrite SQLite” like everyone else seems to have run with.
- bitwize 9y agoGodwin's Law got repealed once actual, literal Nazis carved out a sizeable chunk of political influence in the USA and, to a lesser extent, Europe. And yes, language matters. C is not a well-understood language; unless you've committed the ISO standard to memory (and are perfectly careful not to do anything that will make it legal for the compiler to format your disk, like, say, using an int32_t in places where your operations are only well-defined for uint32_ts), the gotchas in the C minefield will come up and bite you in the ass. Rust was designed to avoid these pitfalls while still being usable anywhere C is. Rust should almost always be preferred for new projects.