[HN Gopher] SQLite: QEMU All over Again?
       ___________________________________________________________________
        
       SQLite: QEMU All over Again?
        
       Author : eatonphil
       Score  : 186 points
       Date   : 2022-10-04 14:47 UTC (8 hours ago)
        
 (HTM) web link (glaubercosta-11125.medium.com)
 (TXT) w3m dump (glaubercosta-11125.medium.com)
        
       | Beltalowda wrote:
       | Things like rqlite are great and all, but I'm not sure if that's
       | something that should be included in SQLite no matter which
       | development model it uses.
       | 
       | Looking at the libSQL page, it seems they want SQLite to go in
       | quite a different direction in general. That's all fine, but at
       | that point you're working on other problems than what SQLite is
       | intended to solve. People want software to solve every possible
       | problem under the sun, but SQLite is a project with a fairly
       | specific and narrow scope, which is intentional.
       | 
       | The "trick" is to enable things to be extended and patched
       | easily, if need be, so people can build extensions and derivate
       | projects if they want. I don't know to what degree SQLite allows
       | this - I'm not familiar with the SQLite source code.
       | 
       | At any rate, for this to succeed you need at least one person
       | actually writing code for it. Thus far, all I see in the repo are
       | some non-code changes (add license, coc, Makefile twaeks, etc.) I
       | don't know what the exact plans are, but you need more than a
       | GitHub repo with "we accept contributions" and wait for people to
       | submit them, because most people/companies won't. Almost all
       | projects live or die by their core contributors, not the
       | community.
        
       | gjvc wrote:
       | This will be a flop.
        
         | cryptonector wrote:
         | Any fork of SQLite will need serious funding to replace SQLite
         | itself.
        
       | tenebrisalietum wrote:
       | > Which means that the data that hits a single SQLite instance
       | now needs to be replicated to all the others.
       | 
       | My initial reaction:
       | 
       | Yeah because ... SQLite is not a database server - it's an
       | awesome API on top of a flat file? Do you want a replicated
       | database? Then use a replicated database.
       | 
       | Then looking at the list of solutions (rqlite, BedrockdB, dqlite,
       | ChiselStore, LiteFS) ... I guess people really do want to make it
       | replicated.
       | 
       | Why not use a SQL server?
       | 
       | Also: I was using QEMU on an old 32-bit Dell server that was
       | before Intel's VM efforts. It worked decently. :)
        
         | otoolep wrote:
         | As for rqlite.... see this FAQ entry:
         | https://github.com/rqlite/rqlite/blob/master/DOC/FAQ.md#why-...
        
       | _jal wrote:
       | > We encourage others to speak up if they feel uncomfortable.
       | 
       | OK - your weird swipe at Sqlite tentatively tells me you're
       | founding with a grudge, which (a) doesn't tend to last very long
       | as a motivation and (b) has nothing to do with me, so I'm not
       | interested at all.
       | 
       | So I don't have a dog in this fight, I'll check back in a few
       | years and see how it went. Happy forking!
        
       | dleslie wrote:
       | The headline is needlessly deceiving. The author is making the
       | case for, and subsequently announcing, a hard fork of SQLite for
       | the purposes of meeting the needs of edge computing.
        
         | tgv wrote:
         | It seems OP wants to "shame" (*) the sqlite devs into
         | supporting this fork. "You're going to miss the boat! History
         | repeats itself!"
         | 
         | (*) the modern word for guilt-tripping.
        
           | MichaelCollins wrote:
           | That's the way it looks to me. All of the SQLite code is
           | already given away for free. What more is there to give? The
           | trademark (owned by Hwaci according to the SQLite Consortium
           | Agreement.) He wants to use politically charged shame tactics
           | to get his hands on not just the SQLite code but the SQLite
           | brand as well.
           | 
           | Why does he want the trademark? Because he knows that his
           | complaints are fringe and few people will give a damn about
           | his fork, unless he has the trademark and can call his fork
           | the official SQLite.
        
             | glommer wrote:
             | I don't want the SQLite trademark.
        
               | MichaelCollins wrote:
               | Your manifesto and accompanying blog post are lay out
               | your desire for your fork to be the official SQLite. That
               | is contrary to the inclinations of the SQLite developers,
               | who don't accept outside contributions, so you are trying
               | to coerce a change to their policy using public shaming
               | and call-out tactics.
               | 
               | So you claim you don't want the trademark signed over to
               | you, but you do want access to the trademark opened up to
               | your fork.
        
               | cryptonector wrote:
               | Eh, u/glommer is calling it libSQL, not anything with
               | "SQLite" in the name, so I wouldn't assume that u/glommer
               | wants the trademark. But u/glommer does want some of
               | SQLite's reputation to attach to libSQL -- that's going
               | to be an uphill battle.
        
               | MichaelCollins wrote:
               | > _u /glommer is calling it libSQL, not anything with
               | "SQLite" in the name_
               | 
               | The blog post makes clear that being a fork is _" a
               | losing proposition in the long term."_ Because SQLite
               | developers own the trademark to SQLite, the only way for
               | this fork to not be a fork is if SQLite gives in to the
               | demands of the manifesto.
        
               | cryptonector wrote:
               | I don't think it's because of the trademark that forking
               | it is a losing proposition. It's because of:
               | - the proprietary test suite       - the SQLite team's
               | reputation       - SQLite's reputation         (which
               | relates to the test suite)       - the SQLite Consortium,
               | which funds the         SQLite team       - funding
               | 
               | The trademark is the least of these. I don't find TFA at
               | all compelling, and I find it distasteful, but I wouldn't
               | impute on the author(s) that they want the SQLite
               | trademark, especially given that they didn't even bring
               | it up.
        
               | MichaelCollins wrote:
               | > _SQLite 's reputation_
               | 
               | This is the one.
               | 
               | If it were really about the proprietary test suite and
               | fuzzer, then the manifesto should simply demand that
               | SQLite developers release those proprietary tools.
               | Instead they're demanding that SQLite accept a change of
               | contributor policy and correspondingly change their code
               | of conduct. They're wrestling for control of the brand,
               | not merely some tools.
               | 
               | And yeah maybe they're after the money the SQLite
               | Consortium gets too. But I think that's downstream from
               | SQLite's brand recognition.
        
               | cryptonector wrote:
               | That is a fair take, and now I agree. I suspect that
               | u/glommer et. al. hadn't understood the importance of
               | that test suite, else they would have mentioned it. To me
               | libSQL seems like pie in the sky. They're making demands
               | and threatening a fork, but w/o any evidence of
               | sufficient resources the threats are empty and the
               | demands will go unmet.
        
       | 0xbadcafebee wrote:
       | SQLite only works as a concept because it is not networked.
       | Nobody truly understands the vast and unsolveable problem that is
       | random shit going wrong within the communication of an
       | application over vast distances. SQLite works great because it
       | rejects the dogma that having one piece of software deal with all
       | of that shit is in any way a good idea.
       | 
       | Back your dinky microservice with SQLite, run multiple copies,
       | have them talk to each other and fumble about trying to get
       | consensus over the data they contain in a very loose way. That
       | will be much, much less difficult than managing a distributed
       | decentralized database (I speak from experience). It's good
       | enough for 90% of cases.
       | 
       | Remember P2P applications? That was basically the same thing. A
       | single process running on thousands of computers with their own
       | independent storage, shuffling around information about other
       | nodes and advertising searches until two nodes "found each other"
       | and shared their data (aw, love at first byte!). It's not great,
       | but it works, and is a lot less trouble than a real distributed
       | database.
        
         | kortex wrote:
         | Amen. The first rule of distributed objects is "don't
         | distribute your objects". It's much easier to reason about a
         | bunch of different actors, each with their own copies of
         | objects, trying to converge on consensus, than it is to
         | actually have a distributed database that obeys ACID and does
         | all the databasey things.
         | 
         | A subtle distinction, but an important one.
        
       | chrismorgan wrote:
       | > _Rejoin core SQLite if its policy changes_
       | 
       | > _We are strong believers in open source that is also open to
       | community contributions. If and when SQLite changes its policy to
       | accept contributions, we will gladly merge our work back into the
       | core product and continue in that space._
       | 
       | If libSQL is going Apache-2.01 rather than public domain, that
       | seems _extremely_ unlikely. The public domain nature of SQLite is
       | rather important for its deployments. And in fact licensing is a
       | rather important part of why SQLite is closed to contributions
       | (though with some administrative overhead it could be opened to
       | contributions from people from _some_ countries). The fact that
       | this announcement and project documentation seems to make
       | absolutely no mention of the licensing situation perplexes me.
       | 
       | --***--
       | 
       | 1 As they state in the text; but
       | https://github.com/libsql/libsql/commit/f7c54b8f792aa502f025...
       | is entirely insufficient, not constituting _application_ of the
       | license. I find this a bad sign, in stark contrast to the
       | meticulous care SQLite has taken to copyright matters.
        
         | cryptonector wrote:
         | Choosing a license that is not as good as public domain is a
         | way to preclude "rejoining core SQLite".
        
       | Joel_Mckay wrote:
       | If someone cares about their project, and chooses to share it
       | with the community... no one should feel entitled to pressure
       | them into another development model...
       | 
       | I find some of SQLite's library could be cleaner, but appreciate
       | the philosophy of keeping it consistent, understandable, and
       | simple... It is nice to have something reliable completed in an
       | afternoon. =)
        
       | _tom_ wrote:
       | SQLite's maintainers have a choice. They can spend their time
       | coding, or they can spend their time explaining, over and over
       | again, why they don't want to do a distributed database.
       | 
       | I can see why they don't take contributions.
        
         | cryptonector wrote:
         | They have changed their minds on features before. E.g., FULL
         | OUTER JOIN. They should and almost certainly do feel free to
         | change their minds on features relating to distributed DBs.
        
       | nothanks789 wrote:
       | By all means, fork the code base for your specific use case, but
       | I'll trust drh and his team over some rando any day.
       | 
       | sqlite isn't the most widely used database by accident - it's
       | installed on practically every mobile phone on earth. It's the
       | result of careful and deliberate design with millions of tests
       | and fuzzing. The sqlite team is very responsive to its users'
       | needs, but some features just don't make the cut. That's a good
       | thing - to keep the library small, fast and reliable.
        
         | rwmj wrote:
         | Glauber is definitely not "some rando". He's a very skilled
         | programmer who has worked on many things (including QEMU).
        
           | Kwpolska wrote:
           | Has he produced any code for the libsql project yet, or only
           | FUD blog posts?
        
           | glommer wrote:
           | rwmj! Now here's a name I don't hear in forever! Hope you're
           | doing great, man! And I won't take offense, I'm pretty rando,
           | though =p
        
       | Am4TIfIsER0ppos wrote:
       | > do not work with [...] tools like Github
       | 
       | feature
       | 
       | > with a clear code of conduct
       | 
       | bug
       | 
       | > Contributor Covenant Code of Conduct
       | 
       | terminal infection
        
       | as4hretret wrote:
        
       | jacobn wrote:
       | The approach to edge-ifying SQLite taken in [1] looks quite
       | promising - using FoundationDb as the storage handles a lot of
       | hairiness.
       | 
       | 1: https://github.com/losfair/mvsqlite
        
       | tarasglek wrote:
       | SQLite has a lot of rough edges. As amazing as it is, it would be
       | better if the core devs were more open to outside world.
       | 
       | I contributed a somewhat deep performance fix/workaround, it was
       | one of the more terrible open source experiences.
       | 
       | Hugely excited for libsql as an sqlite successor with a more
       | modern architecture.
        
         | glommer wrote:
         | Would love to see your contributions on libSQL!
        
       | mritun wrote:
       | A lot of words, manifesto decrying sqlite somehow striffling
       | innovation and a battle-cry for all to join ... but backed with
       | very little code.
       | 
       | SQLite is public domain. Anyone is free to claim it as their work
       | and do anything they wish.
       | 
       | No need to disparage. You never were prevented from doing what
       | you wanted to do. Take the code, improve it and if it's any good
       | it may get recognition.
       | 
       | The fact is sqlite is good enough for 99.9% case. Everything else
       | is fighting for the niche and the poster seems to be simply
       | pissed that sqlite has the mindshare even without having their
       | favorite features.
        
       | ENOTTY wrote:
       | Frankly, as someone more interested in emulation than
       | virtualization, I have been occasionally unhappy that most of the
       | energy behind QEMU goes to virtualization. Some of the things
       | QEMU has done to better adapt to virtualization do not translate
       | well to the emulation use case.
        
         | bonzini wrote:
         | This is not true, for example a lot of the work to enable
         | concurrent emulation of multiple CPUs started on the
         | virtualization side. It is also mentioned in the article that
         | both emulation and virtualization benefited from the
         | innovation.
        
       | tptacek wrote:
       | Just a note that LiteFS _isn 't_ a distributed filesystem;
       | despite the name, it's not a filesystem at all, but rather just a
       | filesystem proxy. It does essentially the same thing that the VFS
       | layer in SQLite itself does, but it does it with a FUSE
       | filesystem, so you don't have to change SQLite's configuration in
       | your application. As for the "distributed" part of it: LiteFS has
       | a single-writer multi-reader architecture; it's the same strategy
       | you'd use to scale out Postgres.
       | 
       | It's a little ironic to see LiteFS brought up in relation to a
       | SQLite fork, since the premise of LiteFS is _not changing the
       | SQLite code you link into your application_. Much of the work in
       | LiteFS is about cooperating with standard SQLite.
       | 
       | At any rate: it seems somewhat unlikely that a hard fork of
       | SQLite is going to succeed, in that part of the reason so many
       | teams are building SQLite tooling is the trust they have in the
       | current SQLite team.
        
         | xmonkee wrote:
         | >LiteFS has a single-writer multi-reader architecture; it's the
         | same strategy you'd use to scale out Postgres
         | 
         | I'm curious about how such a strategy deals with applications
         | that update a value and then read the updated value back to the
         | user, since there might be a replication delay between the
         | write (that goes to the master) and the read (that comes from
         | the closest replica). Do you make optimistic updates on the
         | client or do you club (write-then-read) operations into a
         | transaction?
        
           | kasey_junk wrote:
           | This is an application (and frequently data type) dependent
           | decision. Some data is safe to return on acceptance others
           | need to wait for acknowledged writes.
           | 
           | The most naive solution is to just make all writes slow but
           | acknowledged.
        
           | benbjohnson wrote:
           | LiteFS author here. It depends on the application. You can
           | check the replication position on the replicas and simply
           | wait until the replica catches up. That requires maintaining
           | that position on the client though.
           | 
           | An easier approach that works for a lot of apps is to simply
           | have the client read from the primary for a period of time
           | (e.g. 5 seconds) after they issue a write. That's easy to
           | implement with a cookie and it's typically "good enough"
           | consistency for many read-heavy applications.
        
         | mmastrac wrote:
         | Has sqlite been forked before? This is the first true fork and
         | re-license attempt that's caught my eye. The others I've seen
         | are "ports" and "modifications", but always pointing people
         | back upstream.
         | 
         | It's possible that the appetite for a SQLite fork is there, but
         | nobody has provided it.
        
           | gaius_baltar wrote:
           | > Has sqlite been forked before?
           | 
           | There is a fork called SQLCipher with native encryption.
           | Probably lots of others too, but this one is the one that I
           | remember.
        
           | cryptonector wrote:
           | TFA lists forks. rqlite comes to mind.
        
             | yellowapple wrote:
             | Is rqlite a fork? It strikes me more as an application that
             | uses SQLite as a dependency, rather than a fork of SQLite
             | itself.
        
               | otoolep wrote:
               | Nope, as explained in my other comment. It is, as you
               | say, built on top of SQLite.
        
             | otoolep wrote:
             | rqlite[1] author here. I wouldn't consider rqlite a fork in
             | any sense, just so we're clear. That rqlite uses plain
             | vanilla SQLite is one of its key advantages IMHO. Users
             | have no concerns they're not running real SQLite source.
             | 
             | That said, there are some things that would be much easier
             | to do with some changes to the SQLite source. But I think
             | the message that rqlite sits on top of pure SQLite makes is
             | still the right choice.
             | 
             | [1]: https://github.com/rqlite/rqlite
        
               | cryptonector wrote:
               | My mistake. Thanks for the correction!
        
           | vhanda wrote:
           | I do remember the author of LMDB [0] porting some parts of
           | sqlite to use lmdb instead, and then talking about the
           | results. A quick googling doesn't seem to give me a result
           | though.
           | 
           | [0] - http://www.lmdb.tech/doc/
        
       | gw99 wrote:
       | This smells like _" I don't like how SQLite because I can't get
       | in to the party so I'm making my own party"_ which is fine but
       | don't denigrate the product or the contributors who have been
       | doing an amazing job for a very long time.
        
       | js8 wrote:
       | Just a nitpick: Virtualization was pioneered by IBM S/370
       | mainframes, CP/CMS and the like. Author is talking about
       | virtualization on desktop/x86 specifically.
       | 
       | Unfortunately, for historical reasons (microcomputer revolution),
       | these are separate worlds.
        
       | diffxx wrote:
       | > The few core developers they have do not work with modern tools
       | like git and collaboration tools like Github, and don't accept
       | contributions, although they may or may not accept your
       | suggestion for a new feature request.
       | 
       | The funny thing about this comment is that SQLite is as close to
       | the gold standard of software quality that we have in the open
       | source world. SQLite is the only program that I've ever used that
       | reliably gets better with every release and never regresses.
       | Could it be that this is precisely because they don't use "modern
       | tools" and accept outside contributions?
        
         | Ar-Curunir wrote:
         | You're conflating two different arguments: not using modern
         | tools, and not accepting outside contributions. It's certainly
         | possible that limiting contributions to a set of trusted
         | contributors helps things move smoothly.
         | 
         | However it's not clear at all that using old tools has the same
         | effect.
        
           | ok_dad wrote:
           | > old tools
           | 
           | I have some of my great-grandpa's carpentry tools, and I use
           | them often. I guess I should go out and replace perfectly
           | good tools with new stuff from a big store like Home Depot or
           | Lowe's?
        
             | JAlexoid wrote:
             | People forget that Stanley #4 plane hasn't really changed
             | in over 100 years. It's still one of the best tools out
             | there.
             | 
             | We dumped CVS because it was a poor tool, for the time.
             | Subversion was better. Then completely distributed systems
             | became better, because connectivity and computational power
             | came about.
        
               | tolciho wrote:
               | CVS never managed to wedge itself and eat my files like
               | Subversion did. I went back to CVS.
        
           | notRobot wrote:
           | They don't use old tools, they use different tools.
           | 
           | Git development started in 2005, Fossil development started
           | in 2006, they're equally _modern_ , and largely do the same
           | things, just in different ways.
        
             | diffxx wrote:
             | Also, Fossil is essentially implemented _in_ SQLite. Fossil
             | is used to develop SQLite which is used to implement
             | Fossil. It's a virtuous cycle. For the SQLite project,
             | using Fossil is obviously superior to git. This doesn't
             | mean that arbitrary projects should use Fossil over git.
        
               | ThunderSizzle wrote:
               | The opposite can be said though, but git arbitrarily won
               | over a bunch of other DVCS systems (another e.g. hg),
               | mainly because of bandwagon and marketing.
        
         | lliamander wrote:
         | Personally I find Fossil a really compelling VCS. I plan to use
         | it for my next personal project.
        
         | tyingq wrote:
         | Well, and while they don't use git, they do use Fossil. Their
         | explanation for why doesn't make Fossil seem less modern.
         | 
         | https://sqlite.org/whynotgit.html
        
           | cryptonector wrote:
           | Fossil is not less modern than Git, just less popular.
           | 
           | Under the hood it seems a lot like Git. The UI is more Hg-
           | like. I disagree with D. Richard Hipp's dislike of rebasing,
           | but he's entitled to that opinion, and a lot of people agree
           | with him.
           | 
           | Calling Fossil "not modern" is a real turn-off. TFA seems to
           | be arguing for buzzwords over substance.
        
           | fluidcruft wrote:
           | Actually leaves me seriously considering fossil rather than
           | git for my next project.
        
             | Matumio wrote:
             | Agree, after reading up about fossil. Except for one thing:
             | I don't want the "closed team" culture that was
             | intentionally baked into the tool.
             | 
             | When git replaced SVN, it was so empowering that I, as an
             | individual, was able to use the full maintainer workflow
             | without the blessing of a maintainer, privately by default.
             | 
             | Before git, we saved the output of "svn diff" into a .patch
             | file for tracking personal changes. When submitting a
             | patch, the maintainer had to write a commit message for
             | you. With some luck, you even got credited. For sharing a
             | sensible feature-branch, you had to become a maintainer
             | with full access. This higher bar has advantages (it tends
             | to create more full-access maintainers, for one). However,
             | it sends this message: "Yes open source, but you are not
             | one of us."
             | 
             | Yes, fossil has this great feature of showing "what was
             | everyone up to after release X". I miss that in git.
             | (Closest workaround: git fetch --all && gitk --all.) But if
             | "everyone" means just the core devs, then I'm out.
        
         | [deleted]
        
         | bawolff wrote:
         | This make it sound like sqlite isn't using source control at
         | all. What they are actually doing is using a more obscure
         | source control program than git. Honestly who cares? Source
         | control is source control.
        
           | bena wrote:
           | While Fossil may be obscure, it's also dog fooding for them.
           | Fossil uses SQLite. It is built on top of SQLite.
        
         | tingletech wrote:
         | I think you are right.
         | 
         | Their rational for not using git seems reasonable to me
         | https://sqlite.org/whynotgit.html
        
         | clpwn wrote:
         | I feel like a lot of fantastic software is made by a small
         | number of people whose explicit culture is a mix of abnormally
         | strong opinionatedness plus the dedication to execute on that
         | by developing the tools and flow that feel _just right_.
         | 
         | Much like a lot of other "eccentric" artists in other realms,
         | that eccentricity is, at least in part, a bravery of knowing
         | what one wants and making that a reality, usually with
         | compromises that others might not be comfortable making
         | (efficiency, time, social interaction from a larger group,
         | etc).
        
           | Beltalowda wrote:
           | I don't think you need "abnormally strong opinionatedness" or
           | anything else special: all you need is a certain (long-term)
           | dedication to the project and willingness to just put in the
           | work.
           | 
           | Almost every project is an exercise in trade-offs; including
           | every possible feature is almost always impossible, and never
           | mind that it's the (usually small) group of core devs who
           | need to actually maintain all those features.
        
             | tobyjsullivan wrote:
             | I interpreted "opinionatedness" as meaning they have a
             | clear definition of what sqlite is and isn't, including the
             | vision of where it's headed. That would result in a team
             | with very strong opinions about which changes and
             | implementations are a good or bad fit for sqlite.
             | 
             | Can a project consistently make the right trade-offs
             | without having strong opinions like that?
        
           | awesomegoat_com wrote:
           | Totally agree.
           | 
           | It is just allowing human element that creates quality craft.
           | 
           | When you are following the best practices, you remove that
           | human element (hyperbole, I know).
           | 
           | When you force certain rules, jiras, stand-up, you increase
           | predictability, but the cost is the lower quality, lower
           | happiness and higher attrition.
        
             | chasil wrote:
             | SQLite's quality is due to the DO-178B compliance that has
             | been achieved with "test harness 3" (TH3).
             | 
             | Dr. Hipp's efforts to perfect TH3 likely did lower his
             | happiness, but all the Android users stopped reporting
             | bugs.
             | 
             | "The 100% MCD tests, that's called TH3. That's proprietary.
             | I had the idea that we would sell those tests to avionics
             | manufacturers and make money that way. We've sold exactly
             | zero copies of that so that didn't really work out... We
             | crashed Oracle, including commercial versions of Oracle. We
             | crashed DB2. Anything we could get our hands on, we tried
             | it and we managed to crash it... I was just getting so
             | tired of this because with this sort of thing, it's the old
             | joke of, you get 95% of the functionality with the first
             | 95% of your budget, and the last 5% on the second 95% of
             | your budget. It's kind of the same thing. It's pretty easy
             | to get up to 90 or 95% test coverage. Getting that last 5%
             | is really, really hard and it took about a year for me to
             | get there, but once we got to that point, we stopped
             | getting bug reports from Android."
             | 
             | https://corecursive.com/066-sqlite-with-richard-hipp/
        
             | chousuke wrote:
             | it's not that "best practices" or any of those things are
             | what causes trouble; it's failing to recognize that they're
             | just tools, and people will still be the ones doing the
             | work. And people should never be treated as merely tools.
             | 
             | You can use all of those things as to enable people to do
             | things better and with less friction, but you also need to
             | keep in mind that if a tool becomes more of a hindrance
             | than a help, you should go looking for a new one.
        
               | gonz0p0litik wrote:
               | Best practices are subjective. What is best practice is
               | for C is not the same as Python.
               | 
               | SQL DBs provide consistency guarantees around mutating
               | linked lists. It's not hard to do that in code and use
               | any data storage format.
               | 
               | Imo software engineers have made software "too literal"
               | and generated a bunch of "products" to pitch in meetings.
               | This is all constraints on electron state given an
               | application. A whole lot of books are sold about unit
               | tests but I know from experience a whole lot of critical
               | software systems have zero modern test coverage. A lot of
               | myths about the necessity of this and that to software
               | have been hyped to sell stock in software companies the
               | last couple decades.
        
               | diffxx wrote:
               | > it's not that "best practices" or any of those things
               | are what causes trouble; it's failing to recognize that
               | they're just tools, and people will still be the ones
               | doing the work. And people should never be treated as
               | merely tools.
               | 
               | For me, the concept of best practices is pernicious
               | because it is a delegation of authority to external
               | consensus which inevitably will lead to people being
               | treated as tools as they are forced to contort to said
               | best practices. The moment something becomes best
               | practice, it becomes dogma.
        
               | potatoz2 wrote:
               | Imagine your doctor or pilot eschewing "best practices"
               | and what your reaction would be. There's a reason
               | knowledge communities build consensus.
               | 
               | Best practice doesn't mean you're at the mercy of the
               | consensus, it just means you have to justify why you
               | should stray from it.
        
               | diffxx wrote:
               | This comment perfectly encapsulates the point that I am
               | making about best practices: the concept is used as a
               | cudgel to silence debate and to confer a sense of
               | superiority on the practitioner of "best practice." It is
               | almost always an appeal to authority.
               | 
               | No one wants cowboy pilots ignoring ground control.
               | Doctors though do not exactly have the best historical
               | track record.
               | 
               | Knowledge communities should indeed work towards
               | consensus and constantly be trying to improve themselves.
               | Consensus though is not always desirable. Often consensus
               | goes in very, very dark directions. Even if there is some
               | universal best practice for some particular problem, my
               | belief is that codifying certain things as "best
               | practice" and policing the use of alternative strategies
               | is more likely to get in the way of actually getting
               | closer to that platonic ideal.
        
               | [deleted]
        
         | marcodiego wrote:
         | I'm all for minimizing friction for contributors, but when I
         | read things like: "The few core developers they have do not
         | work with modern tools like git and collaboration tools like
         | Github", I wonder if the collaboration from someone who refuses
         | to send a patch to a mailing list (because it is not what they
         | are used to and don't care to learn how to do) is really worth
         | considering. I mean: if someone is not wanting to move a few
         | millimeters out of their comfort zone to make a contribution
         | is, very likely, someone who has very little commitment or will
         | try to force their opinions and methods onto others.
        
           | Kwpolska wrote:
           | SQLite does not accept any patches from anyone.
        
         | kbenson wrote:
         | Extremely well written and maintained and high quality _as of
         | now_ and having a plan to make sure that can continue _in the
         | future_ are sometimes entirely different things with needs that
         | oppose each other.
         | 
         | A single person can develop and release extremely high quality
         | software, and as long as it meets the needs of the users (it's
         | not missing a lot of features that a taking a long time to
         | deliver), a single person in absolute control and writing all
         | the code is probably a benefit in keeping it high quality and
         | with less bugs.
         | 
         | It may not follow that the same can be said a few years from
         | now, or even a few months from now, since the bus factor of
         | that project is one, and if "bus events" includes "I don't want
         | to work on that anymore but nobody else knows it well at all"
         | then for some users that's a problem (and for others not so
         | much).
         | 
         | On situation isn't necessarily better or worse than the other
         | (and it's probably something in-between anyway), it really just
         | depends on the project and the audience it's intended for. That
         | audience might be somewhat self-selected by the style of
         | development though.
        
           | RcouF1uZ4gsC wrote:
           | > Extremely well written and maintained and high quality as
           | of now and having a plan to make sure that can continue in
           | the future are sometimes entirely different things with needs
           | that oppose each other.
           | 
           | I think in this area SQLite has most other open source
           | software beat. SQLite is used in the Airbus A350 and has
           | support contracts for the life of the airframe.
           | 
           | https://mobile.twitter.com/copiousfreetime/status/6758345433.
           | ..
           | 
           | Other places I have see that they have support contracts
           | through 2050.
           | 
           | This is far more future support than any open source software
           | or likely most commercial software.
        
           | cryptonector wrote:
           | > Extremely well written and maintained and high quality as
           | of now and having a plan to make sure that can continue in
           | the future are sometimes entirely different things with needs
           | that oppose each other.
           | 
           | SQLite has both.
        
             | kbenson wrote:
             | And so does the Linux kernel. There are numerous cases of
             | successes and failures at both ends of that spectrum.
             | 
             | My point wasn't to imply that you can only pick one, but
             | that in some cases choices to maximize one aspect can
             | negatively affect the other if care is not taken, and
             | depending on audience high quality released software is not
             | the _only_ thing under consideration in open source
             | projects. Keeping the developer group small and being
             | extremely selective of what outside code or ideas are
             | allowed might bring benefits in quality, but if not
             | carefully considered could yield long term problems that
             | ultimately harm a project.
        
               | cryptonector wrote:
               | > > > Extremely well written and maintained and high
               | quality as of now and having a plan to make sure that can
               | continue in the future are sometimes entirely different
               | things with needs that oppose each other.
               | 
               | > [...], but if not carefully considered could yield long
               | term problems that ultimately harm a project.
               | 
               | SQLite has a successful consortium and a successful
               | business model, namely: leveraging a proprietary test
               | suite to keep a monopoly on SQLite development that then
               | drives consortium membership and, therefore, consortium
               | success, which then funds the SQLite team.
               | 
               | This has worked for a long time now. It will not work
               | forever. It should work for at least the foreseeable
               | future. If it fails it will be either because a fork
               | somehow overcomes the lack of access to the SQLite
               | proprietary test suite, or because a competitor written
               | in a better programming language arises and quickly gains
               | momentum and usage, and/or because the SQLite Consortium
               | members abandon the project.
        
               | diffxx wrote:
               | Very good points. The proprietary test suite is clearly
               | the (open) secret to SQLite's success. It seems to me
               | that it isn't even entirely accurate to describe SQLite
               | as written in C when the vast majority of its code is
               | probably written in TCL that none of us have seen. It's
               | more like C is just how they represent the virtual
               | machine which is described and specified by its tests.
               | The virtual machine exists outside of any particular
               | programming language but C is the most convenient
               | implementation language to meet their cross platform
               | distribution goals.
               | 
               | If someone did want to carve into SQLite's embedded db
               | monopoly, it would take years to develop a comparable
               | test suite. This seems possible, particularly if they
               | develop a more expressive language for expressing the
               | solutions to the types of problems that we use SQLite
               | for. Who would fund this work though when SQLite works as
               | well as it does?
        
               | menaerus wrote:
               | MongoDB folks started working on the SQLite alternative -
               | Realm.
        
           | arka2147483647 wrote:
           | > Extremely well written and maintained and high quality as
           | of now ...
           | 
           | As I see it, the quality comes from the fixed need, tight
           | scope and small professional team
           | 
           | Fixed need -> Somebody always needs a database
           | 
           | Smaller scope -> Less features, less code, less bugs
           | 
           | Professional team -> No newbies around to break things
           | 
           | Now, to be sure, this kind of development model can only work
           | for some projects.
        
           | cryptonector wrote:
           | > It may not follow that the same can be said a few years
           | from now, or even a few months from now, since the bus factor
           | of that project is one, and if "bus events" includes "I don't
           | want to work on that anymore but nobody else knows it well at
           | all" then for some users that's a problem (and for others not
           | so much).
           | 
           | You may have been speaking generally, and you'd be right, but
           | specifically the bus factor of the SQLite team and the SQLite
           | Consortium is larger than 1, and they could hire more team
           | members if need be.
           | 
           | If and when the SQLite team is no longer able to keep the
           | project moving forwards, then I think we'd see one or more
           | forks or rewrites or competitors take over SQLite's market
           | share.
        
           | diffxx wrote:
           | Fair points, although the bus factor is more like 3 or 4 for
           | SQLite as far as I know. The question though is that if the
           | entire team vanished from the face of the earth, what would
           | the impact be? My guess is that either SQLite would be good
           | enough as is for 99% of use cases and it wouldn't need much
           | development apart from maybe some minor platform specific use
           | cases or, if new functionality truly is needed, then it would
           | be better for a new team to rewrite a similar program from
           | scratch using SQLite as more of a POC than as a blueprint.
        
             | kbenson wrote:
             | I was speaking less to the SQLite situation specifically
             | and more to the general idea of "Could it be that this is
             | precisely because they don't use "modern tools" and accept
             | outside contributions?" and how I think teams that are very
             | small and not very accepting of outside help/influence
             | might affect that.
             | 
             | To that end I purposefully compares extremes, and tried to
             | allude to the fact that most situations fall between those
             | extremes in some way. SQLite is more towards one end than
             | the other, but it's obviously not a single developer
             | releasing binaries to the world, which is about as far to
             | that extreme as you can go. The other end would probably be
             | something like Debian.
             | 
             | That's not to say either of those situations have to be
             | horrible at what the other excels at. That singular person
             | could have set things in place such that all their code and
             | the history of it gets released on their death, and Debian
             | obviously has a working process for releasing a high
             | quality distribution.
        
               | Quekid5 wrote:
               | AFAIUI the company behind SQLite (Hipp & co.) have
               | basically endless funding. Not unlimited, just a good
               | enough budget and not likely to end soon. That's also a
               | big factor.
        
             | chasil wrote:
             | SQLite is supported until 2050, and will likely outlast
             | many other platforms if this goal is attained.
             | 
             | I hope the bus factor is high enough to reach the goal.
             | 
             | "Every machine-code branch instruction is tested in both
             | directions. Multiple times. On multiple platforms and with
             | multiple compilers. This helps make the code robust for
             | future migrations. The intense testing also means that new
             | developers can make experimental enhancements to SQLite
             | and, assuming legacy tests all pass, be reasonably sure
             | that the enhancement does not break legacy."
             | 
             | https://www.sqlite.org/lts.html
        
           | tablespoon wrote:
           | > Extremely well written and maintained and high quality as
           | of now and having a plan to make sure that can continue in
           | the future are sometimes entirely different things with needs
           | that oppose each other.
           | 
           | Software that's _truly_ "extremely well written and
           | maintained and high quality as of now" has the option of a
           | plan like:
           | 
           | > "At the time of my death, it is my intention that the then-
           | current versions of TEX and METAFONT be forever left
           | unchanged, except that the final version numbers to be
           | reported in the "banner" lines of the programs should become
           | [pi and e] respectively. From that moment on, all "bugs" will
           | be permanent "features." (http://www.ntg.nl/maps/05/34.pdf)
           | 
           | If your software needs perpetual maintenance, that's a good
           | sign that it's _probably_ not _that_ high quality.
        
             | mschuster91 wrote:
             | > If your software needs perpetual maintenance, that's a
             | good sign that it's probably not that high quality
             | 
             | The problem in a lot of cases is not the software _per se_
             | , but changing environments. Windows upholds backwards
             | compatibility to a _ridiculous_ degree (you can still run a
             | lot of Win95 era games or business software on Win10),
             | macOS tends to do major overhauls of subsystems every five-
             | ish years that require sometimes substantial changes (e.g.
             | they completely killed off 32-bit app support), but the
             | Linux space is _hell_.
             | 
             | Anything that needs special kernel modules has no
             | guarantees at all unless the driver is mainlined into the
             | official kernel tree (which can be ridiculously hard to
             | achieve). Userspace is bleh (if you're willing to stick to
             | CLI and statically linking everything sans libc) to
             | horrible (for anything involving GUI or heaven forbid
             | games, or when linking to other libraries dynamically).
             | 
             | The worst of all offenders however is the entire NodeJS
             | environment. The words "backwards compatibility" simply do
             | not exist in that world, so if you want even a chance at
             | keeping up with security updates you have an awful lot of
             | churn work simply because stuff breaks left and right at
             | each "npm update".
        
               | parminya wrote:
               | You say nothing seriously false, but perhaps depending on
               | things like NodeJS just inherently means your software is
               | going to be poor quality. If that is true, then both you
               | and the PP are probably right. I tend to think software
               | quality will be higher if you depend on a third-party
               | collection (such as so-called Linux distributions) than a
               | second-party aggregation (such as NPM).
        
               | mschuster91 wrote:
               | Even the distributions have a hard time with the NodeJS
               | environment and its relentless pace - and the more
               | software gets written in JS the worse. When e.g. software
               | A depends on library X@1.0 and software B on library
               | X@1.1, and X has done breaking changes, what should a
               | distribution do?
               | 
               | Hard forks in the package name (e.g. libnodejs-x-1.0 and
               | libnodejs-x-1.1) are one option, but blow up the
               | repository package count and introduce maintenance
               | liability for the 1.0 version. Manually patching A to
               | adapt to the changes in X works, but is a hell of a lot
               | of work and not always possible (e.g. with too radical
               | changes), not to mention if the work should be
               | upstreamed, then licensing issues or code quality crop up
               | easily which means yet _more_ work. Dropping either A or
               | B also works, but users will complain. And finally,
               | vendoring in dependencies works also, but wastes a lot of
               | disk space and risks security issues going unpatched.
               | 
               | And that's just for final software packages. Dependency
               | trees of six or ten levels deep and final counts in the
               | five digits are no rarity in an average NodeJS
               | application.
               | 
               | Importing even the bare minimum introduces an awful lot
               | of work and responsibility to distributions.
        
         | choletentent wrote:
         | Very similar approach is taken by the Lua developers.
        
         | 1vuio0pswjnm7 wrote:
         | When NetBSD imported sqlite and sqlite3 into their base system
         | that was a signal to me that SQLite is no-nonsense and
         | reliable. That was many years ago, around 2011 I think. Not
         | sure why SQLite is getting all the attention on HN lately.
         | Usually more attention means more pressure to adopt so-called
         | "modern" practices and other BS.
         | 
         | SQLite is interesting to me because like djb's software its
         | author is not interested in copyrights.^1
         | 
         | 1. https://cr.yp.to/publicdomain.html ^2
         | 
         | Here is how Hipp abandons his copyrights:
         | 
         | The author disclaims copyright to this source code. In place of
         | a legal notice, here is a blessing:                  May you do
         | good and not evil.        May you find forgiveness for yourself
         | and forgive others.        May you share freely, never taking
         | more than you give.
         | 
         | Apparently this is not be enough to convince some folks they
         | can use the code (maybe they really are doing evil), and so
         | there is also a strange set of "reassurances" on the website:
         | 
         | https://sqlite.org/copyright.html
         | 
         | It seems that is still not enough and so there is actually an
         | option to pay for a "license" to software that is in the public
         | domain. Don't laugh.
         | 
         | https://sqlite.org/purchase/license
         | 
         | 2. I seem to recall an open source OS project or two making a
         | fuss about djb's software being public domain but perhaps I am
         | remembering incorrectly.
        
           | bombcar wrote:
           | Public Domain doesn't exist in some countries, so
           | people/companies from those countries want an assurance that
           | their country's laws understands.
        
         | ad404b8a372f2b9 wrote:
         | This part also rung some alarm bells for me. It makes me think
         | the author is unable to see outside his bubble, and that
         | feeling is only reinforced by the comments about Rust and the
         | CoC in the Readme.
        
       | karmicthreat wrote:
       | SQLite is probably not compatible with community contributions.
       | They seem to be very optimized to the stability and reliability
       | of SQLite rather than features. Which is why people use it over
       | other solutions.
        
       | kazinator wrote:
       | Re:
       | 
       | > * We would like to use io_uring and asynchronous interfaces
       | 
       | > * We would like to provide replication hooks for distributed
       | systems
       | 
       | > * We would like to allow for WASM-based user-defined functions
       | 
       | This shit isn't needed in SqLite any more than QEMU needs to have
       | anything whatsoever to do with virtualization.
        
       | edfletcher_t137 wrote:
       | This whole thing reads like a slighted, uppity, smarter-than-
       | thou* child taking their ball and going home. It's off-putting.
       | 
       | *what's the point of pointing out other "geniuses": to encourage
       | the reader to think "oh well then our author must be in the same
       | group too!"? Transparently manipulative.
        
       | elteto wrote:
       | There is something distasteful about this announcement but I
       | can't quite pinpoint it. Maybe it feels like a bait and switch
       | announcing their own fork after the whole qemu commentary, or the
       | wording about the code of conduct. I don't know.
       | 
       | One of the greatest things about SQLite is how easy it is to
       | embed in random targets/build systems/languages: a .c and .h and
       | you are all set. Moving away from that model will turn off many
       | people away so I hope they retain that model.
        
         | hitekker wrote:
         | Trust your gut. It's a public shaming campaign disguised as a
         | history lesson. Glauber Costa is trying to seem welcoming in
         | one breath and, in another breath, is sniping at the same
         | people he claims to want to join.
         | 
         | > We [Glauber Costa] take our code of conduct seriously, and
         | unlike SQLite, we do not substitute it with an unclear
         | alternative. We strive to foster a community that values
         | diversity, equity, and inclusion. We encourage others to speak
         | up if they feel uncomfortable.
         | 
         | With zero new code to justify this fork, this article is little
         | more than a silly power trip by a flailing startup.
        
         | ColonelPhantom wrote:
         | The README has "Use Rust for new features" in it, so I doubt it
         | will retain the same simplicity.
         | 
         | As much as I like Rust, and despite mixing Rust and C++ being
         | the clear path forward for Mozilla, I'm not so sure it's the
         | winning approach here. Part of the beauty of SQLite is the
         | single .c/.h thing.
         | 
         | That said, I can see that maybe they're trying to expand the
         | use cases of libsql compared to SQLite. That seems to be the
         | whole idea with adding support for e.g. distributed databases,
         | which is something SQLite just doesn't bother with at all, and
         | would introduce a ton of external interfacing regarding
         | networking. SQLite uses only the standard C library, and even
         | then barely scratches its surface.
         | 
         | Also, SQLite's VFS API can do a lot there already. For example,
         | I remember seeing SQLite compiled to WASM, using a VFS that
         | downloads a remote database on S3 using HTTP Range requests. (I
         | don't think it supported writing to the database, but it was
         | still a really cool way of allowing complex client-side
         | querying of a dataset that is static but too big to transfer).
        
           | sgbeal wrote:
           | > Part of the beauty of SQLite is the single .c/.h thing.
           | 
           | Noting that it's not _developed_ that way. Its many files are
           | compounded together by the build process to produce the
           | amalgamation build. In a mixed-language project (Rust for
           | some, C for others) a single-file distribution literally
           | won't be possible and it will require as many toolchains to
           | build as there are languages involved.
        
             | bpye wrote:
             | I wonder if mrustc [0] would be sufficient to retain the
             | amalgamated build even if Rust were adopted. The regular
             | Rust tool chain would be needed for development still, but
             | if simply depending on the library the Rust components
             | could be transpiled to C...
             | 
             | [0] - https://github.com/thepowersgang/mrustc
        
           | sgbeal wrote:
           | > Also, SQLite's VFS API can do a lot there already. For
           | example, I remember seeing SQLite compiled to WASM, using a
           | VFS that downloads a remote database on S3 using HTTP Range
           | requests. (I don't think it supported writing to the
           | database, but it was still a really cool way of allowing
           | complex client-side querying of a dataset that is static but
           | too big to transfer).
           | 
           | <https://github.com/phiresky/sql.js-httpvfs>
        
         | NoGravitas wrote:
         | It also feels gross to me, but the only thing I can put my
         | finger on is citing webshit as the reason to completely change
         | the direction of a well-loved project.
        
       | wg0 wrote:
       | What they are missing here is that with QEMU only emulating and
       | not virtualising in a way, was a far bigger limitation
       | counterpart of which does not exist in SQLite.
       | 
       | SQLite delivers for the process embedded database promise and
       | delivers it well. Sure, can have column oriented flavour like
       | DuckDB etc but they don't call themselves SQLite or its fork.
       | 
       | Lastly, like many pointed out, SQLite is not even licensed
       | (Apache, MIT etc) it is just in public domain so anything is
       | possible.
        
       | eatonphil wrote:
       | Whether or not this succeeds, I think it's a great effort. SQLite
       | not taking any outside contributions is of course their
       | prerogative. But it would also be cool to see what could happen
       | with a more open development model. And their (libsql) plans
       | around io_uring and Rust for future code both sound like a good
       | start.
       | 
       | The way they're going about this fork (described in the repo [0]
       | readme) seems healthy enough for both projects as well.
       | 
       | Maybe the biggest challenge though is recreating SQLite's
       | private/proprietary test suite [1].
       | 
       | [0] https://github.com/libsql/libsql
       | 
       | [1] https://www.sqlite.org/th3.html
        
         | cryptonector wrote:
         | SQLite's proprietary test suite is its secret sauce that has
         | kept it closed to contributions and kept forks from happening.
         | It is the thing that made the SQLite Consortium a going
         | business proposition. It is the thing that makes it possible to
         | fund an open source infrastructure project with a small,
         | cohesive team.
         | 
         | The public believes that that test suite exists and has 100%
         | branch coverage, and that it is much larger and more complete
         | than the public test suite. Of course, there's no at the
         | private test suite exists, but we the public believe it does
         | and we have plenty of reason to believe that it does.
         | 
         | Any fork will instantly lose the benefits of that private test
         | suite. _This_ is what keeps the SQLite team able to reject
         | external contributions, and what keeps forks from taking hold.
         | 
         | Any hard fork will have a struggle with this.
         | 
         | I believe a Rust re-write would have much less trouble w.r.t.
         | the private test suite, owing to Rust's memory safety. But any
         | fork that remains C-coded will have trouble getting public
         | acceptance, and will have to have amazing features -or a new
         | public test suite- to get acceptance.
         | 
         | Meanwhile the SQLite team could respond by making SQLite3 a bit
         | more modular and able to be used in distributed database
         | constructions w/o alteration to any of the SQLite3 code. That
         | would take the wind out of the sails of any fork. This
         | possibility means that any forks need to be properly funded to
         | be able to compete, but the SQLite Consortium is almost
         | certainly well-funded, so it will take a serious commitment
         | -maybe even by some of the consortium's members- to see a fork
         | succeed.
        
         | justin66 wrote:
         | > But it would also be cool to see what could happen with a
         | more open development model.
         | 
         | It seems a little disingenuous to act like we don't know what
         | would happen, at least in broad strokes. Just compare and
         | contrast the nature of SQLite with "more open" projects and you
         | can get the gist.
         | 
         | More features, more bugs, abandonment of excellent testing
         | standards, poor handling of what are dismissed by the
         | developers (but not the current, extremely wide base of users)
         | as niche concerns.
        
           | eatonphil wrote:
           | It would be quite an uphill battle for this project to
           | succeed in the longterm. But I don't understand what's
           | disingenuous about hoping for innovation by a change in
           | process.
        
         | fluidcruft wrote:
         | Yeah, the test suite seems pretty key. It also probably
         | contains information about the proprietary extensions and
         | contract work from clients and can likely never be released.
         | 
         | Proprietary test suite is a pretty interesting strategy
         | actually. Very difficult for others to just steal your code and
         | support effort and run if they have to start from zero to build
         | a massive test suite.
         | 
         | I wonder how difficult it would be for some sort of tool to
         | assume a particular original sqlite.c has full coverage and
         | then suggest where additional tests are needed for patches?
        
       | xet7 wrote:
       | > The few core developers they have do not work with modern tools
       | like git and collaboration tools like Github, and don't accept
       | contributions, although they may or may not accept your
       | suggestion for a new feature request.
       | 
       | Git is not modern. It is many executeables, and Git repos are a
       | many files.
       | 
       | GitHub is not modern. It is closed source huge RoR application.
       | 
       | Fossil SCM is features of Git and GitHub much improved, and in
       | small portable fast executeable, storing repos in much smaller
       | space in one SQLite file.
       | 
       | Apache is not https://copyfree.org license. I prefer copyfree
       | licenses.
        
       | wyldfire wrote:
       | > Fabrice was, without any exaggeration, a true genius.
       | 
       | He's still living. So is he no longer a genius?
        
         | speedgoose wrote:
         | He is doing well: https://bellard.org/
        
         | csdvrx wrote:
         | Step 1 for a commercial fork: pretend the author is dead :)
        
         | blastonico wrote:
         | You have to renew your genius certificate every 2 years before
         | expiration.
        
           | gw99 wrote:
           | My last one expired 20 years ago.
        
             | Karupan wrote:
             | You can issue yourself a self signed "Genius" certificate
             | on LinkedIn. Just make sure your tagline has lots of
             | buzzwords.
        
       | jasonhansel wrote:
       | SQLite and QEMU have been successful in large part _because_ of
       | their limited scope. Further expanding the scope of a project
       | puts it at risk of becoming unfocused and unmaintainable. It
       | makes a lot more sense to start a new project to support this use
       | case than to try to reshape SQLite.
        
       | johnboiles wrote:
       | SITUATION: there are too many competing SQLite forks...
        
         | discodave wrote:
         | My thoughts exactly!
         | 
         | Why does it even need to be forked? The whole point of using
         | SQLite as a foundation for distributed, edge, or other stuff is
         | that it's a solid foundation that can be trusted to not change
         | too much.
         | 
         | Why the need to open SQLite to contributions? Build your fancy
         | distributed, or edge database _on top_ of SQLite and you won 't
         | need to modify SQLite at all.
        
           | sgbeal wrote:
           | > The whole point of using SQLite as a foundation for
           | distributed, edge, or other stuff is that it's a solid
           | foundation that can be trusted to not change too much.
           | 
           | Just to clarify: sqlite3 changes almost literally every
           | day[^1]. However, the project has always placed a premium on
           | backwards compatibility and the developers go way out of
           | their way not to break in-the-wild applications. Given how
           | many databases there are ("billions and billions"), even the
           | slightest backwards incompatibility is likely to affect
           | _someone_, and even 1% of "billions and billions" is a
           | significant number of databases.
           | 
           | [^1]: https://sqlite.org/src/timeline
        
         | Vt71fcAqt7 wrote:
         | They aren't competing. One has trillions of installs, the other
         | has a new code of conduct.
        
         | cestith wrote:
         | Good ol' #927.
        
       | jpgvm wrote:
       | One one hand, SQLite would probably be a more expansive project
       | if it allowed contributions in the same way PostgreSQL does. On
       | the other hand it would likely make it both a larger and more
       | complex project.
       | 
       | I think a better tradeoff would be making the case for why SQLite
       | should have the hooks needed to implement the edge computing bits
       | desired without forking the project itself or attempting to
       | replace what has made it so great for so many years.
       | 
       | This approach would allow the extra behaviors to be managed out
       | of tree and allow more free experimentation as a result without
       | prematurely landing on "blessed" approaches to these very complex
       | and frankly not yet well solved problems.
        
       | losfair wrote:
       | This project looks really exciting!
       | 
       | I'm working on mvsqlite [1], a distributed SQLite based on
       | FoundationDB. When doing the VFS integration I have always wanted
       | to patch SQLite itself, but didn't because of uncertainty around
       | correctness of the patched version...
       | 
       | A few features on my wishlist:
       | 
       | 1. Asynchronous I/O. mvsqlite is currently doing its own prefetch
       | prediction that is not very accurate. I assume higher layers in
       | SQLite have more information that can help with better
       | prediction.
       | 
       | 2. Custom page allocator. SQLite internally uses a linked list to
       | manage database pages - this causes contention on any two
       | transactions that both allocate or free pages.
       | 
       | 3. Random ROWID, without the `max(int64)` row trick. Sequentially
       | increasing ROWIDs is a primary source of contention, and causes
       | significant INSERT slowdown in my benchmark [2].
       | 
       | [1] https://github.com/losfair/mvsqlite
       | 
       | [2] https://univalence.me/posts/mvsqlite-bench-20220930
        
       | afavour wrote:
       | From a spectator's perspective it's going to be interesting to
       | see how this all works out. SQLite's dedication to doing one
       | thing, doing it well and staying incredibly small means it's
       | basically my go-to example for phenomenal software in 2022. But
       | at the same time maybe a more open model means we'll end up with
       | an embeddable DB that's capable of even more wonderful things. I
       | look forward to finding out.
        
       | thekozmo wrote:
       | Listening to SQLite creator podcast
       | (https://corecursive.com/066-sqlite-with-richard-hipp/# ), it
       | does feel that Glauber is right about weird collaboration
       | standards. The guy is against gmail, git, etc. Fossil may be
       | better for SQlite today, w/o many contributors, that's the
       | problem Glauber is trying to solve
        
       | justin66 wrote:
       | I wonder if they'll attempt to replicate the portion of SQLite's
       | test harnesses [0] that are proprietary but nevertheless
       | beneficial to all SQLite users, tests comprising over a million
       | lines of C code.
       | 
       | Those tests are possibly among what the blog author does not
       | consider to be "modern tools," which I don't even...
       | 
       | [0] https://www.sqlite.org/testing.html
        
         | cryptonector wrote:
         | That would be _very_ expensive, and would require extensive
         | funding, and would take years to complete.
        
       | resoluteteeth wrote:
       | All of the projects listed are clearly outside the scope of what
       | would potentially be merged into sqlite even if it accepted
       | contributions.
       | 
       | That said there is probably room for someone to maintain a sqlite
       | extension distribution with standard build settings for use
       | across different languages or something.
        
       | outworlder wrote:
       | Ew.
       | 
       | If you want to say something, say it. "I don't like that my
       | contributions aren't accepted, so I'm forking the codebase".
       | That's going to generate some discussion, but it's fine. Public
       | domain and all.
       | 
       | However,
       | 
       | "look what happened to qemu, same thing will happen to sqlite
       | (and I'm contributing to the problem and forking it)". One can't
       | say "no contributions led to fragmentation" while _at the same
       | time_ contributing to fragmentation by making a hard fork!
       | 
       | Also,
       | 
       | > "However, edge computing also means that your code will be
       | running in many geographical locations, as close as possible to
       | the user for the better possible latency. Which means that the
       | data that hits a single SQLite instance now needs to be
       | replicated to all the others."
       | 
       | Then replicate away. Leave that stuff out of SQLite. If that's a
       | really important use-case, go use couchdb or something similar.
        
         | chasil wrote:
         | It's wonderful that there is a fork of SQLite. It's good to see
         | new ideas.
         | 
         | Is Airbus going to use it in the A350? No.
         | 
         | Why not? It's not compliant with DO-178B, because it has not
         | been confirmed correct with "Test Harness 3" (TH3).
        
       | mrtweetyhack wrote:
        
       | nowtern wrote:
       | Just looking through the libsql repository on GitHub, turns out
       | they've changed literally zero actual code. All they've done is
       | added a README, some long-winded 'code of conduct' document, and
       | a configuration file for CI builds. That's it.
       | 
       | What is even the point of announcing this? There's nothing new,
       | nothing different. Just empty promises and hot air.
        
         | glommer wrote:
         | yes, we haven't changed any code yet. There are essentially two
         | approaches here: one of them is to present a finished thing,
         | and the other is to announce your intentions as soon as
         | possible and build every single thing in public.
         | 
         | We chose the latter in this case, as we think community is the
         | most important aspect of this.
         | 
         | but you are right to be suspicious! recommend checking back
         | later
        
           | Kwpolska wrote:
           | No code changes and inflammatory/defamatory blog posts aren't
           | a good way to build a community. If you had shown some code
           | that solves a real problem SQLite has, then people would take
           | you seriously. But if all your "contributions" consist of
           | ideas that 99% of SQLite users won't need, and a few text
           | files, your project doesn't look too serious to me.
        
       | gray_-_wolf wrote:
       | > they have do not work with modern tools like git
       | 
       | Isn't fossil younger than git?
        
         | sgbeal wrote:
         | > Isn't fossil younger than git?
         | 
         | They were initially developed in parallel. To the very best of
         | my recollection, Richard had no knowledge of git when he
         | started fossil. Fossil's initial development dates back to
         | 2005, IIRC, (edit: maybe 2006) initially as a TCL prototype. It
         | wasn't developed in earnest in C until 2007 and was self-
         | hosting by the end of 2007 (i discovered it around Christmas
         | that year).
        
       | adamgordonbell wrote:
       | I don't like how the 'manifesto' presents SQLite's code of ethics
       | as nefarious:                   We take our code of conduct
       | seriously, and unlike SQLite, we do not substitute it with an
       | unclear alternative. We strive to foster a community that values
       | diversity, equity, and inclusion. We encourage others to speak up
       | if they feel uncomfortable.
       | 
       | It seems in bad faith to imply that SQLite is some sort of toxic,
       | anti-diversity space. It's not. it's just a closed-to-
       | contributions open source project. Richard is pretty friendly guy
       | and I'm not certain if efforts have been made to reach out to him
       | here.
       | 
       | https://github.com/libsql/libsql/blob/main/README.md
        
         | devwastaken wrote:
        
         | ReptileMan wrote:
         | Sqlite works. I strongly suggest other projects adopting their
         | code of conduct. Seems to deliver awesome results.
        
         | [deleted]
        
         | narrator wrote:
         | This code of conduct is there to prime the foundation for the
         | takeover of by outsiders. With for profit companies, they can
         | just buy the company. For non-profits, outsiders takeover by
         | instituting DEI and then find something that they can make a
         | big deal out of, or outright lie to get the founders kicked out
         | and take over the organization.
        
         | mackal wrote:
         | D. Richard Hipp is a religious nutcase. Religion is toxic and
         | anti-diversity. At least American Christianity by and large is.
        
           | MichaelCollins wrote:
           | Intolerance towards religion is toxic and anti-diversity. In
           | America, the Civil Rights Act of 1964 makes discriminating
           | against people because of their religion illegal in many
           | contexts. If you can't work alongside somebody who is
           | religious, then you become a liability to any corporation
           | that respects this law.
        
           | how_rude wrote:
           | How rude.
        
           | e44858 wrote:
           | [Citation needed]
        
           | lliamander wrote:
           | It is precisely American Christianity which created the
           | system of religious tolerance and pluralism that we operate
           | under today.
           | 
           | And Richard Hipp, while religious, is clearly the farthest
           | thing from a nutcase as you can get. From everything I have
           | seen his behavior indicates that he is calm, rational,
           | thoughtful, and kind.
        
             | mackal wrote:
             | If I believed fairy tales were as real as he does religion,
             | which is just fairy tales, you'd call me a nutcase too.
        
         | incomingpain wrote:
        
           | HideousKojima wrote:
           | "This document was originally called a "Code of Conduct" and
           | was created for the purpose of filling in a box on "supplier
           | registration" forms submitted to the SQLite developers by
           | some clients."
           | 
           | From the very first line of the link.
        
             | incomingpain wrote:
             | Good catch, i glossed over history. Apparently HN wants
             | open source projects to push morality. I am quite
             | downvoted.
        
               | eitland wrote:
               | Half of HN detest Code of Conduct and that among other
               | things is why we love the what the SQLite team has done
               | here.
        
               | incomingpain wrote:
               | I detest pretty much all(including sqlite's) codes of
               | conduct. None of them are about getting rid of toxicity
               | but rather exercising power over people.
               | 
               | Alas, I have even been flagged by the admins. I must have
               | been really off base with my comment in a way I don't
               | understand.
        
         | glommer wrote:
         | it's not nefarious, it's just a different approach to things. I
         | think Hipp is justified in all he is doing, and I don't think
         | he is necessarily wrong. We just see things differently
        
           | adamgordonbell wrote:
           | Fair enough, It could be read that way.
           | 
           | I get frustrated that the code of ethics gets so much
           | attention of sqlite, in a bike shed type of way.
           | 
           | But by mentioning that, I think I've drawn even more
           | attention to it. My bad.
        
         | pseudalopex wrote:
         | > It seems in bad faith to imply that SQLite is some sort of
         | toxic, anti-diversity space.
         | 
         | They said SQLite's code of ethics is unclear. You inferred any
         | other criticism.
        
         | bitwize wrote:
         | A code of conduct that covers all the bases of the gold
         | standard for such things, the Contributor Covenant -- including
         | explicitly promoting DEI, protecting everyone but especially
         | members of marginalized communities from harassment, and
         | delineating explicit enforcement procedures and committees --
         | is table stakes for an open source project today. Not having
         | one presents compliance issues for companies who otherwise
         | might adopt your project.
        
           | lliamander wrote:
           | > A code of conduct that covers all the bases of the gold
           | standard for such things, the Contributor Covenant
           | 
           | It's amazing to me the hubris of people who believe that a
           | set of community guidelines that are less than a decade old
           | are superior to a set of community guidelines that have
           | successfully guided a set of communities for more than 1000
           | years.
        
           | glee_fliddy wrote:
           | Is this really true though? In the projects I've seen this
           | Covenant pushed heavily, it just seems to be a way to
           | distract from building the product, to instead spend valuable
           | contributor time debating identity politics.
           | 
           | There's a time and place for this sort of thing (e.g.
           | Twitter); open source projects are typically not an
           | appropriate venue.
        
           | zmgsabst wrote:
           | > including explicitly promoting DEI
           | 
           | > Not having one presents compliance issues for companies who
           | otherwise might adopt your project.
           | 
           | Insisting that people adhere to your ideology through
           | "compliance" sounds very totalitarian.
        
             | afavour wrote:
             | It really doesn't.
             | 
             | No-one is insisting on anything, really. "If you'd like us
             | to adopt your technology, do X" gives both parties a choice
             | in the matter and total freedom to walk away.
        
               | lliamander wrote:
               | 1. It's creepy that corporations are having expectations
               | about how volunteer effort to create code that they use
               | for free runs itself (or claims to run itself). It's
               | generally not even being made for the corporations that
               | are using it - the software is made for everyone to use
               | (and fork) as they see fit.
               | 
               | 2. These corporations are not engaging in this behavior
               | spontaneously. They are responding to a legal regime
               | which is increasingly becoming totalitarian.
        
               | cryptonector wrote:
               | To be fair this was corporations that actually pay for
               | development of SQLite via the SQLite Consortium.
        
               | lliamander wrote:
               | That is fair. It's still creepy - especially given that
               | the project is not open to contributions, and has not (to
               | my knowledge) had any issues with the broader "community"
               | related to the things covered in a code of conduct.
        
               | cryptonector wrote:
               | D. Richard Hipp handled the situation pretty well in that
               | he got what he wanted and the consortium members didn't
               | get what they wanted.
        
             | bitwize wrote:
             | When you're accustomed to privilege, equality feels like
             | oppression.
        
               | HideousKojima wrote:
               | I'm glad you're in favor of abolishing affirmative action
               | then, since it's literally systemic racism and even falls
               | under the disingenuous "prejudice plus power" definition
               | of racism!
        
               | MichaelCollins wrote:
               | > _equality_
               | 
               | Motte
               | 
               | > _DEI, aka Equity_
               | 
               | Bailey
        
             | gaius_baltar wrote:
             | Specially when demanded by entitled companies that want the
             | work of FLOSS developers for free. And, curiously, these
             | are usually the same companies that cry about (L|A)?GPL.
        
               | cryptonector wrote:
               | In the case of SQLite it was insisted by _paying_ members
               | of the SQLite Consortium.
        
             | Spivak wrote:
             | You do realize that SQLite adopted it's current coc for
             | _exactly_ this reason, right? That 's what's meant by
             | compliance, there are some situations where adopting oss
             | code requires specific licenses and compatible-ish coc's to
             | avoid issues with required harassment training and dei.
             | Some auditor will ask for "proof" and the coc is what you
             | can send them. And it's done virally like this because
             | otherwise it would be trivial to bypass by simply having a
             | subcontractor.
             | 
             | You think workplaces make people watch those cringy videos
             | for fun?
        
           | Phelinofist wrote:
           | https://github.com/opal/opal/issues/941
           | 
           | "Contributor Covenant was created by Coraline Ada Ehmke", ah
           | yeah that one
        
           | HideousKojima wrote:
           | An open source project's license is the only thing 99% of
           | corporations care about when deciding whether or not to use
           | some open source project.
           | 
           | And for me in my personal coding, lack of a code of conduct
           | is a positive to me.
        
           | tptacek wrote:
           | It does not seem to be preventing adoption of SQLite
           | anywhere.
           | 
           | People should have codes of conduct if they believe in them
           | (I do) and find they're necessary in the circumstances
           | they're working in (I have not yet).
           | 
           | People should stop going around proclaiming that pro-forma
           | codes of conduct are a basic necessity for every project; all
           | that does is exacerbate the drama around codes of conduct ---
           | which are perfectly useful and often necessary for huge
           | projects, and which don't at all need to be the topic of
           | 500-post message board threads about freedom.
        
             | wang_li wrote:
             | If I was in a situation where I had to have a code of
             | conduct for the people involved, it would have to be:
             | 
             | 1. Sticks and stones may break my bones but words will
             | never hurt me. 2. Don't be a dick.
        
         | roblabla wrote:
         | This is probably refering the SQLite Code of Ethics debacle.
         | 
         | SQLite has a Code of Ethics, which is used for ticking a box
         | when working with some of their clients (meaning: they probably
         | don't take it very seriously). For this code of ethics, they
         | chose to use the christian Rule of St. Benedict[0].
         | 
         | When it was implemented, it ruffled some feathers in a fairly
         | major way. While it's true that SQLite is closed to code
         | contributions, they do still accept discussions on their
         | forums, among other things. Those interactions would,
         | supposedly, be bound to the CoC. The sqlite devs later cleared
         | up that it was there for client compliance reasons, but the
         | damage was done.
         | 
         | I don't think this line is in bad faith. It's basically spelled
         | out on their code of ethics page that they basically don't care
         | too much about it and is mostly there for ticking boxes.
         | 
         | [0]: https://sqlite.org/codeofethics.html
        
           | mmastrac wrote:
           | > This document continues to be used for its original purpose
           | - providing a reference to fill in the "code of conduct" box
           | on supplier registration forms.
           | 
           | It seems somewhat deceitful to use this list to check those
           | boxes, which makes this entire page self-contradictory
           | (specific points highlighted):
           | 
           | > 24. Do not entertain deceit in your heart.
           | 
           | > 28. Utter only truth from heart and mouth.
           | 
           | > 39. Be not a grumbler.
        
             | mort96 wrote:
             | Where's the deceit? The page is incredibly honest about it,
             | any client which cares will immediately see the purpose of
             | the document.
             | 
             | It's working around bureaucracy. Nothing more, nothing
             | less. Given SQLite's position, that's incredibly
             | understandable.
        
               | mmastrac wrote:
               | Working around bureaucracy is still deceit. The spirit of
               | the ethics they state here would suggest a good faith
               | effort to put together a true code of conduct, however
               | basic.
               | 
               | The ethics that Christianity teach don't have a backdoor
               | because it's big corporate.
        
               | mort96 wrote:
               | Working around bureaucracy is not deceit. At least
               | according to my understanding of the word, "deceit"
               | requires that someone is lead to believe falsehoods.
               | That's not going on here. SQLite has a code of ethics,
               | and if that's all that's required by some bureaucratic
               | process, then that's fair game. If the process requires
               | enforcement of the code of ethics, SQLite should probably
               | not tick the box, and the document puts that information
               | front and centre.
        
               | mmastrac wrote:
               | I mean that's still deceitful. I get that they don't like
               | codes of conduct, but I can still find it amusing that
               | they violate their own code of ethics on the same page
               | they wrote them on.
        
               | eitland wrote:
               | At this point your argument is a _classic_ straw man:
               | 
               | Define what the opponent means or believes and then put
               | that definition up to tear it down.
        
               | mmastrac wrote:
               | Simply stating a fallacy does not make it one.
        
               | eitland wrote:
               | I pointed out in detail how it matches the fallacy.
               | 
               | Next up: The first step to get out of a whole you have
               | dug yourself into is to stop digging and all that.
        
               | mmastrac wrote:
               | > I pointed out in detail how it matches the fallacy.
               | 
               | I'm sorry, you did nothing of the kind. The only thing
               | that appears to have happened here, as far as I can tell,
               | is your definition of a strawman, and a cherry-picking,
               | uncharitable read of one of my comments.
               | 
               | > Next up: The first step to get out of a whole you have
               | dug yourself into is to stop digging and all that.
               | 
               | This hostility doesn't feel like the start of a
               | productive conversation, so I'll bid you a good day and
               | stop here.
        
               | mort96 wrote:
               | As far as I can see, you're wrong: my position is that
               | the CoE is not deceitful, /u/mmastrac's position is that
               | the CoE is deceitful (and that it's ironic or whatever
               | because the CoE says not to be deceitful). As far as I
               | can see, this is just a good old disagreement where both
               | parties understand and respond to each other's positions.
        
               | mort96 wrote:
               | I don't think I agree with the other commenter that your
               | argument is a straw man. I think we use different
               | definitions of deceit though. I don't think anyone is
               | being mislead, which in my mind is enough to make it not
               | deceitful; if you operate with a different definition,
               | that's okay.
        
               | mmastrac wrote:
               | I think that's fair - we seem to have a different view of
               | the same situation, which I can respect.
        
               | anon291 wrote:
               | In your view, christian ethics don't allow jokes, which
               | is a bit extreme given that many very serious Christian
               | theologians are also quite entertaining and have been so
               | historically as well.
        
               | eitland wrote:
               | Jesus himself was extremely pragmatic in some cases: Give
               | to the Caesar what belongs to the Caesar and all that.
               | 
               | People who don't practice should probably study the Bible
               | a whole lot more before telling practicing Christians
               | what to do or not.
        
               | 95014_refugee wrote:
               | > The ethics that Christianity teach
               | 
               | What "ethics"? And as a precondition, what
               | "christianity"?
               | 
               | Neither are unitary nor singular, and further irrelevant
               | to the topic at hand.
        
               | logicchains wrote:
               | >The ethics that Christianity teach don't have a backdoor
               | because it's big corporate.
               | 
               | Did you not read what Jesus did to the moneychangers in
               | the temple?
        
           | vlunkr wrote:
           | The fact that their Code of Ethics is a joke does not imply
           | that the project is in some way toxic.
           | 
           | Most developers don't need a Code of Conduct to tell them how
           | to behave because they're not 10 years old.
        
             | glommer wrote:
             | OP here, and I don't think SQLite is toxic.
        
               | cryptonector wrote:
               | The libSQL announcement implies that you find the SQLite
               | CoC toxic.
        
               | pseudalopex wrote:
               | The article said libSQL would have a clear code of
               | conduct. README.md stated their goals and said SQLite's
               | code of ethics was unclear. Was there another
               | announcement?
        
         | tantalic wrote:
         | > and unlike SQLite, we do not substitute it with an unclear
         | alternative
         | 
         | This portion of the statement is harsh, and I think the project
         | could do better by stating what they are doing and why, rather
         | than focusing on what SQLite is doing and why it is bad.
         | 
         | I would say that it seems feasible (to me) that SQLite's "Code
         | Of Ethics" works for a small team, open-source, closed-
         | contribution model but wouldn't work for the open-contribution
         | model that libSQL is trying to achieve.
        
         | Rebelgecko wrote:
         | One of the things I think is really innovative [1] about
         | SQLite's code of conduct is that it's a one-way covenant. The
         | developers are agreeing to act and engage with the community in
         | a certain way without expecting anything in return or enforcing
         | any of their beliefs on others. The rules are also very clearly
         | defined, even the ones I personally don't agree with.
         | 
         | I think the new "Contributor Covenant" is a step backwards.
         | It's pages and pages of text to say "don't be a jerk", and the
         | rules are so poorly defined that it isn't much more precise
         | than a one liner saying "don't be a jerk". There's lots of
         | catch-alls like "... And any other unprofessional behavior is
         | against the rules". You could stretch this to cover almost
         | anything. Hell, I've worked in professional settings where
         | wearing shorts was verboten, but I don't think open source
         | projects should be policing how participants dress except in
         | the most extreme circumstances (like if someone shows up to a
         | convention naked when it isn't pre-planned as being a naturist
         | event)
         | 
         | I find it confounding that the the new covenant is described as
         | being _less_ vague when it relies on poorly defined terms like
         | "community spaces" and "community leaders". What's a community
         | space? Who are the community leaders? Idk, but I've seen a
         | handful of cases these covenants have been weaponized against
         | developers expressing their personal opinions in a context that
         | has nothing to do with Github.
         | 
         | [1]: I know calling it innovative is a bit ironic when most of
         | it was written 1500 years ago, but it's innovative compared to
         | other software projects.
         | 
         | (Edited for grammar and to flesh out why I think the new
         | covenant is vaguer despite the author's claim, unlike the old
         | one with well-defined rules)
        
           | VancouverMan wrote:
           | These days, I find myself feeling far more comfortable and
           | trusting when a software community doesn't have a "code of
           | conduct", and when it doesn't have a "moderation team" or
           | "community leader enforcement".
           | 
           | Censorship, or even just the threat of censorship, causes far
           | greater harm to a software community than a small number of
           | thin-skinned people getting "offended" every now and then,
           | usually over trivial and irrelevant matters.
        
             | mschuster91 wrote:
             | > Censorship, or even just the threat of censorship, causes
             | far greater harm to a software community than a small
             | number of thin-skinned people getting "offended" every now
             | and then, usually over trivial and irrelevant matters.
             | 
             | Projects that do not promise to at least enforce a basic
             | level of civility however lose a potential coder base as
             | well, and that is people who are _not_ "mainstream" and
             | have to fight for survival (all too often literally, even
             | in Western countries) in the meatspace already all day:
             | women, gender-queer, people of color, people of non-
             | Christian religions... last thing they want is toxic gamer
             | bro culture seeping into spaces where they are active.
             | 
             | Anecdata, but anyway: I've been on HN for a few years now
             | and very often the lead developers for extremely complex
             | and interesting stuff, particularly reverse engineering,
             | fall under that umbrella somehow. The "free market" shows
             | just exactly where the highest talent classes are, and it's
             | _not_ the whiners whining about CoCs preventing them from
             | spamming  "I identify as an Apache helicopter" memes.
        
               | [deleted]
        
       | logicchains wrote:
       | I suspect there's a strong correlation in this case between
       | "Closed to outside contribution" and SQLite being one of if not
       | the most robust pieces of software out there.
        
       | bob1029 wrote:
       | I don't want to distract too much from the intended point of
       | this, but something to keep in mind per QEMU and virtual machines
       | - SQLite has its own VM too.
       | 
       | In fact, by binding application-defined functions to your SQLite
       | connection, you can realize your own virtualized application
       | execution environment.
       | 
       | https://www.sqlite.org/opcode.html
       | 
       | https://www.sqlite.org/appfunc.html
        
       ___________________________________________________________________
       (page generated 2022-10-04 23:01 UTC)