-
-
Notifications
You must be signed in to change notification settings - Fork 399
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Help this project stay strong #374
Comments
I'm not Joshua, but I want to give my opinion.
This is unfortunately the mindset that keeps burning people out on open-source software. There is no competition. This is not a product.
You are assuming sqlite3 has more weekly downloads than better-sqlite3 because of the name. Even if this number would mean anything, it is still not comparable. One project started in 2009 and the other in 2016. Even if we ignore that, then one project has a commercial entity behind and the other doesn't. So if you really wanted to look at it in a competitive way, then Joshua is already winning. He has created a beautiful piece of software that works better than the competition for almost every use-case. And he is also free to move the project in whichever direction he pleases, without behind held back by a corporate entity and its arbitrary goals and policies If someone is in charge of a software project and bases their decisions off of which module is the first search result then this person should not be in charge of a software project. Especially when it comes to such a fundamental piece of your architecture as the database. @JoshuaWise I wanted to bring this up in the future but since this came up now: have you considered setting up GitHub Sponsors? I am currently held back by my health condition but once I'm able to launch my commercial product I was planning on supporting better-sqlite3. GitHub Sponsors would work best for me because I can write the costs off as business expenses. I'm not sure if that works with Patreon and definitely not with a PayPal transaction without a proper invoice. So I cannot promise anything right now, but maybe others would rather use GitHub Sponsors as well. |
I suspect what burns people out is tirelessly working without reward and the expectation from evangelists that all software should be completely free - the notion that their time is essentially worthless.
It certainly looks like competition: it is called "better"-sqlite after all and performance comparisons are front and center. Competition can be a good thing.
Everything is a "product": if it doesn't get and maintain enough traction it will die or deteriorate. Some of the best software products I've seen have gone to pot once the original author(s) bowed out. The exception is where it gets finished/reaches a point where it doesn't need work - rare in today's CI world.
better-sqlite doesn't make it into the first few pages of search results for "sqlite node". Most people using node are just expecting to use async code. Once you've found something that does what you thought you were supposed to be doing and has 283K+ weekly downloads and you've trawled several pages looking for alternatives and not found any why would you keep looking ? The majority of JS developers aren't going to have a reason to add "synchronous" to their search terms or a use case where the performance sends them looking past node-sqlite3.
Sponsorship (Github/Patreon) works for some people/organisations (as sponsors) but not for others.
Ok, so I should have put a smiley in there but the sentiment remains: I can use better-sqlite where I need sync or async (via a child process/messaging) but I can only use node-sqlite for async so I would much rather see better-sqlite with the bigger following and better chance of funding and survival that goes with that. |
@bobOnGitHub fair enough |
I'd like to shed some light on a few talking points, from the author's perspective.
After my discovery, I decided to share my findings publicly by posting benchmarks and describing why async drivers underperform in this situation. However, I believe there is always an intrinsic competition between dogma/misinformation and reason/experimentation. A side effect of Node's own marketing is the perpetuation of the belief that async is "always" better for I/O operations. Any experienced programmer should be skeptical when reading the word "always". The reality is that async is advantageous under many common conditions, but those conditions are frantically evaded by SQLite3 (in a very intelligent way). However, without a deep understanding of SQLite3 and how it evades those conditions, the everyday programmer won't realize this (or even have the time to think about it). This is the main reason I felt the need to post my findings. Over time, I've used Node less and less. In fact, I'm not using
I haven't considered this. Thanks for the idea; I might use it.
Unfortunately, I'm not in the business of trying to integrate with projects that I don't use or understand.
Unfortunately, as @bobOnGitHub pointed out, this is what most JavaScript developers do. Hopefully leaders making important decisions won't, but the hobby programmer most certainly will, and they have equal weighting when it comes to SEO, which perpetuates the problem.
I haven't looked into it yet, but if it's the ideal way for some people (including you) to help support this project, then it's pretty much a no-brainer for me to setup that up. I'll get on that. Thanks for the suggestion. |
So much for "Development of this module is sponsored by MapBox." TryGhost/node-sqlite3#1292
I know this feeling. I cannot speak for you but feeling pressured into working on something is a shitty feeling. And if that's not enough toxic people show up and demand things (I'm not thinking of anything particular in this repo, but I've seen it happen enough). I'm glad you keep supporting the project and I like the way you handle everything. I think at this point better-sqlite3 just works and there are no major issues. So there's no reason to stress about that. I fully understand that there is simply no motivation for you to work on big new features that are not essential. Maybe when these feature requests come up you can make it more clear that the project is essentially in maintenance mode and people cannot expect these feature to magically appear out of thin air. I do have interest in better-sqlite3 and in the future I hope to be in a position where I (or my business) can support it. Until then I'll keep triaging issues every now and then. |
For those interested and invested, you can now become a sponsor of |
@JoshuaWise,
Hi Joshua,
Just seen the Patreon/Paypal links and a few thoughts sprang to mind.
It'd be a shame to see the competition win out just because they got the SQLite name for their repo - SQLite3 for node is top of the search list results just now. There's an excellent book on seo I came across recently. (I read it for free on kindle unlimited but will buy it at some point)
Some observations:
Have you considered crowd funding options for specific functionality like worker_thread and SQLCipher ? With 33K downloads a week it could work.
Another "sell"/focus for better-sqlite could be with jupyter-lab/data science for Javascript developers - the work flow is essentially sequential so having synchronous data access is ideal. see here. Should also be very useful for users of TensorFlow.js
The text was updated successfully, but these errors were encountered: