Re: Core and Not-So Core
- From
Jon Seymour <jon.seymour@gmail.com>
- Date
- May 10, 2005, 16:22 UTC
- Message-ID
- <2cfc4032050510092238259b63@mail.gmail.com>
- In-Reply-To
- <1115739511.16187.432.camel@hades.cambridge.redhat.com>
On 5/11/05, David Woodhouse <dwmw2@infradead.org> wrote:
Show 8 quoted lines
> On Wed, 2005-05-11 at 01:00 +1000, Jon Seymour wrote: > > I have been experimenting with pure-Java implementation of GIT > > concepts with a goal of eventually providing plugins to Eclipse to > > allow the Eclipse GUI to interact with GIT repositories. > > It's not April 1st. Why would you want to reimplement it in Java instead > of just using the existing implementation? Is this a religious issue? >
Not really - in the Java world, things are simpler if you don't have to carry around a JNI library - that way, you can just run it wherever a Java interpreter exists and not worry about having someone recompiling the JNI part.
A pure-Java implementation will perform better than a Java-invokes-C-executable approach [ though not, of course, a C-only approach ].
Another benefit of playing around with a Java abstraction is that I can more easily experiment with abstractions than I can in C since the abstraction-facilities of Java more directly support such playing than does C. So, for example, I can easily create a virtual repository which layers a local repository over a remote repository and transparently populates the local repository from the remote repository "on-demand". Of course, this sort of thing can be done in C, but it requires much more "work" to set up the abstractions.
You could perhaps argue that the existing 'C' tools in some way encapsulate access to the repository format. Maybe, but the fact is the rapid adoption of GIT has already effectively fixed the GIT repository format in practice so any change in repository format will require considerable planning anyway - planning that will allow sufficient time for implementations in other languages to catch up.
So, no, it's not a religious issue. If anything, it is being dogmatic to insist that the sacred GIT repository structure only be manipulated by 'C' tools blessed by the hands of Linus.
The concepts in GIT are bigger than the programming language its toolsets are implemented in.
jon.
-- homepage: http://www.zeta.org.au/~jon/ blog: http://orwelliantremors.blogspot.com/