-
-
Notifications
You must be signed in to change notification settings - Fork 5.4k
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
Backbone is being actively maintained #4244
Comments
There are many forks. I've created my own here: https://github.com/conversejs/skeletor I'm using it to move away from Backbone views to Lit web components. Still keeping the models and collections for the time being. |
Thanks for the link. Yeah, I see there are many forks. But it's hard to get the living and used ones through GitHubs interface. |
You can try https://github.com/blikblum/nextbone It uses ES classes, is tree shackable, integrates with webcomponents (out of box with LitElement, but can be any web component library), has a form bind component, validation library (backbone.validation conversion), VirtualCollection, LocalStorage. Also comes with integration with Firebase/Firestore: https://github.com/blikblum/nextbone-firestore and a full featured routing https://github.com/blikblum/nextbone-routing Everything covered by tests. Lacks documentation Examples: |
"Dead" is not the right word. I think you're asking will there be feature additions or API changes? My guess is the answer is "not likely". But the project certainly seems to be actively maintained (and well, stable...) |
It is pretty much dead. There are so many things that could be done to move this project forward that are not being done. For example, in skeletor I've created a Backbone view (called ElementView) that doubles as a web component. Nextbone is also working with web components. One of the biggest drawbacks of Backbone (due to its old age and legacy) is that views can't be nested and rendered declaratively, like you can with modern frameworks. Absolutely zero work has gone in to try and address this in Backbone itself. Another thing that could be done would be to get rid of underscore, either by using only native methods or using lodash with tree shaking (something that I do in Skeletor) and another thing would be to split code out into multiple files and start using modern language features. Lastly, I have a lot of respect for Jeremy, but the fact that the project is still under his personal Github account and that a Backbone organisation was never created is a red flag, and might very well have contributed to this project dying (given that he himself is not interested in continuing work on it). It doesn't look to me like there was ever much effort put into trying to make this a community managed project. If there was, then perhaps there would have been more efforts on modernization and renewal. |
I would imagine that most projects that use Backbone for it's Model, Collection, View "primitives" will extend their capabilities a lot over time, to fit their application needs. That's precisely the market fit for this project in my opinion - to provide those primitives and allow people to extend as needed. I'm really happy with Backbone having a fixed and very stable feature set / API; it allows me to depend on it long-term.. Anyway, the good thing is we are spoiled for choices for frontend frameworks and rendering libraries and reactive data libraries these days :) I think Backbone, precisely because of it's simplicity, still forms a very valid option as part of the overall picture for many projects; so in that sense (and that it is actively maintained...), I would not consider it "dead". Most of the Linux tools we use every day (ls / cat / df / ...) haven't changed in 20 years - but nobody considers those projects to be "dead"; they're just small feature-set applications that do one thing well, and that's all they should ever do... |
btw @jcbrand I really like what you've done with skeletor - it's actually really similar to how I use Backbone.Views (.toHTML methods, no jquery, WC etc..). My point mostly is that Backbone is a library to enable people to build their own opinionated data-handling classes, view rendering, integrations, etc... I don't expect or want Backbone to make those decisions for me. |
Sure, having a lib with a stable feature set or API has its advantages. But it's a pity VSCode or other IDEs can't give me the support I expect nowadays due to the way the API is designed. |
@chkpnt: Could you please elaborate? What is lacking for these IDEs? |
I've got nearly no IntelliSense within a Unfortunately, I'm unable to give VSCode the corresponding type hints, see microsoft/TypeScript#36771 (comment) |
I'm guessing if you extended via the ES2015 At least with models, you can extend them the ES2015 way. With Views it's more tricky (IIRC due to the In Skeletor the |
I understand why some people feel that Backbone is dead. Years go by without updates, PRs and issues go stale, and there is no adaptation to relatively new technologies like ESM. Still, I would consider Backbone mostly alive for the following reasons:
That said, I would like to see Backbone a little more actively maintained, too. ESM support would be nice. I am also contemplating a future Underscore 2.0, which would necessitate a Backbone 2.0 (at least for me, because I want to keep using Backbone). If I decide to break compatibility between Underscore and Backbone, it will be unfair of me to expect Jeremy to restore it, so I should do that myself when the time comes. I will ask Jeremy whether I can maintain Backbone as well. |
Update to the above: as I expected, Jeremy replied quickly. He has given me collaborator access, so I can manage issues and pull requests. 🎈 I'll introduce myself, because I'm mostly new to the Backbone issue tracker. I work part time as a scientific programmer and part time as an open source contributor and consultant. I prefer to build my web application frontends using Backbone, Underscore, jQuery (old is gold!), Mustache and i18next. Since discovering Backbone.Radio, I've been consistently using that as well. I've published a couple of smallish plugins for Backbone, backbone-fractal and backbone-machina, as well as two other very small libraries that can be useful when developing Backbone applications, jquery-promise and handlebars-i18next. I have also contributed to backbone-relational and As I mentioned in the previous comment, I've been maintaining Underscore since 2020. All Underscore releases from 1.10.0 onwards were mostly the result of my contributions (the current release is 1.13.1). During that time, I modularized Underscore, added support for Node.js's particular way of handling ES modules and made many other, smaller contributions, all while working hard not to break anything (there were some bug fixes, which invariably break the code of someone exploiting the bug, as well as some accidental breaks, but I repaired the latter). I also added sponsorship options and a security policy. You can expect all of that goodness to come to Backbone, too, over time. With that background information, here is my plan in stages:
Questions and comments welcome! |
Update in case anyone is wondering: I'm still at stage 1 of the above list. I expect to dive head first into stage 2 somewhere in the next month or so. |
Any update? |
@GammaGames Not really. I consider stage 1 more or less finished, but I haven't dived into stage 2 yet, which requires significant focus. The plan is still the same, but I realize it's taking longer than I previously stated. Sorry for testing your patience. If there is a particular part of the above plan, or an issue or pull request where you'd like to see urgent action, please let me know and I'll see what I can do. |
@jgonggrijp Would setting up sponsorships for backbone.js make sense? I'd love to see backbone financially supported by the community. |
@karloscarweber Yes it would! In fact, you can already support my open source work on Patreon. I intend to also set up a Tidelift subscription, like I have done for Underscore. Do you think I should make a priority of GitHub's integrated sponsorship button thingy? |
@jgonggrijp Yes. I think it would make it more clear that somebody is supporting Backbone.js. Also I saw Wontache and it's really cool. Good work. |
Alright, I did it. Only Patreon for now; Tidelift requires some additional preparations. |
OK everyone, high time for an update. Some things got in the way, which meant that stage 2 got delayed way more than I expected and hoped for. Good news, though! With helpful cooperation from my employer at Utrecht University, I secured two weeks that I will be able to spend full time on Backbone: July 17-28. I will attempt to start and complete stage 2 within those ten days. Before that time, I will likely already make some small contributions to Backbone that I'm factoring out of another project. And of course, my base level of maintenance never went away: I'm always keeping an eye on the issue tracker and the pull requests. To those who would like to know a bit more about the backstory of the delay and a full account of my open source plans for this year: please consider joining my Patreon. It already has some backstory and I have a post coming up with my plans. Alternatively, for those who do not need to know the details, but are still looking into other ways to support the development of Backbone financially: sponsorship is now also possible through GitHub and StackAid. Inclusion in the Tidelift subscription is still planned for the future. |
Stage 2 in progress! |
Patreon reenabled! (EDIT: Switched to GitHub Sponsors due to the fees.) I won't be able to keep it activated forever since I have to be careful about my expenses, but at least I can support you for a few months. |
Thanks! |
I just published version 1.5.0 to NPM. This closes my full-time sprint of the past two weeks, which was a breeze! Thanks a lot to @paulfalgout, @GammaGames and everyone else who kept me company. You helped me a lot, even if it didn't feel like much effort. What's next:
Speaking of Twitter and Mastodon: in my original plan, I suggested creating a Twitter account for Backbone. With the current developments at Twitter, I'm not sure that would be a sustainable move. I could create a Mastodon account instead, or I could just stick to my personal accounts on both platforms for the time being. Opinions and suggestions welcome. |
Woops, no, it already happened! https://tidelift.com/funding/github/npm/backbone |
Update on Patreon about the past sprint, with a shoutout to @paulfalgout, @GammaGames and @Rayraz. |
I saw the latest version of Backbone. Thanks for keeping it updated. Like your point - "It has a clever, timeless design" I like Backbone for its simplicity. Thought I share my version of Backbone View. Focused on server rendered apps. |
2021-12-14 update by @jgonggrijp: I'll be maintaining Backbone. You can skip to this comment for the latest news.
As this project seems to be dead: is there a still maintained fork?
The text was updated successfully, but these errors were encountered: