

JS-Git Needs Your Help - creationix
https://www.bountysource.com/#fundraisers/325-js-git

======
creationix
I'm implementing git in JavaScript to bring more independence to developers on
more devices. This will enable more apps to have distributed data that works
fully offline and doesn't require cloud services to work.

One benefit of this as mentioned in the fundraiser text is to build developer
environments for kids.

But another benefit that's less obvious and very relevant to this week's news
is it moves power back into the hands of the users of software. Much of
software has been moving to the cloud in recent years and most new devices can
only work with cloud data. You can't even log into a chromebook, surface,
android tablet, or iPad without registering with some online service and
giving them your personal details.

If you want to write some software on these devices you have to use the device
like a thin-client and be at the mercy of your internet connection and some
cloud service (like online IDEs). The platforms, for the most part, don't
allow much local work to be done.

They do all allow JavaScript and have some form of network connection and
persistent storage. By implementing git in pure javascript we'll be able to
build tools that work completely offline, peer-to-peer or, if desired, with
cloud based systems. I believe the owner of the hardware and software, the
author of the code, should decide how and where it gets distributed.

But I need funding to complete this project. I have a house, a wife and 3 kids
to take care of. I've quit my paying work so that I can make time to finish
js-git. It's getting close, but I need just a little more time to finish it to
be something useful.

If you care about giving control back to the user or believe in enabling kids
and think this is a useful way to accomplish this, please back me and/or
spread the word.

------
lmm
There was an implementation of git in javascript a few years ago; it withered
on the vine (I've been trying to salvage the code for an in-browser
distributed sync thingy, but it's pretty crufty). Why should we expect
anything different to happen with this one?

~~~
creationix
There are several failed attempts. Most of them died because they were just
side-projects and/or programmed in a monolithic manner and crumbled under
their own weight. The two main devs on js-git are myself and Chris Dickinson.
I'm working on it full time so it can have the attention it needs (hence the
fundraiser) and Chris has a couple of failed attempts in the past and knows
what bad areas to avoid.

There is nothing wrong with JavaScript itself that makes this infeasible.

------
IceyEC
How do you intend to handle the limits of LocalStorage size? 5MB is not enough
to hold much git history and associated files.

~~~
creationix
There are many other ways to store data locally that vary by platform. They
range from full filesystem access in node.js to html5 fs apis in modern
browsers and chrome apps. Winfs has it's own APIs ported over from C#, Firefox
os has fs. Also there is IndexDB in most browsers. LocalStorage is probably
the only thing I'm not going to try to use.

