[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Port Subversion to Java

From: Gili <junk_at_bbs.darktech.org>
Date: 2004-11-26 20:27:33 CET


        This is a continuation of a discussion started here: http://subversion.tigris.org/issues/show_bug.cgi?id=2141

        I will quote it for the benefit of everyone (read it from bottom up). My response follows (before I quote the
original post):

        Ok, ouch, that was harsh :) Max, I am sorry for posting in the wrong place but I am new to all of this and
there is such a thing as newbie mistakes. Sorry again.

        On the talking of BDB Java, I got my information from here: http://www.sleepycat.com/products/je.shtml
        If it isn't a 1-to-1 port of the C version please excuse my mistake but then I would advise you to use
Hibernate and drop BDB altogether.

        On the topic of porting Subversion, I did not mean to imply that the amount of work accomplished by the
subversion project is trivial. I was simply stating that C++ and Java being close relatives in syntax makes it
relatively easy to move between one language and the next. You really didn't have to get so defensive. There was no
malicious intent in my post.

        On the topic of C being more portable than Java ("I think you will find C compilers are more widely available
than JVMs"), that might be true but it is far easier to make Subversion work under different platforms when it is
written in Java than under C. All the major and not so major platforms have a full-fledged JVM and making
Subversion work across all of them is far more trivial than porting that same code using C. I don't think this
argument is disputed by anyone.

        On the topic of ease of development, I wasn't trying to imply that it is easier to develop under Java as a
language than under C as a language. Clearly this depends upon the personal experiences and preferences of your
development team. What I was trying to imply is that in the field of networking, XML and DBs there are awsome
mature open-source Java libraries out there that would do this for you and ease your development. Stuff like
Hibernate simply does not exist under C/C++ (as far as I know), there are many other such examples.

        On the topic of Hibernate, you wrote: "adapting Subversion to use Hibernate would be a fairly in-depth
reorganization - i.e. no easier than implement than an SQL backend in C." ... Well, not exactly. Adapting
Subversion to use Hibernate would be no different than adapting Subversion a new repository format that resides in
an SQL database (as opposed to BDB which does not use SQL, to my knowledge). The major benefit of using Hibernate
in Java instead of coding this in C is that once coded *once* against Hibernate, your code will fit on top of *any*
database. Hibernate abstracts away any DB-specific differences so you can focus on the actual work. This is huge.
You can stick Subversion on top of MySQL, PostgreSQL, DB2, SQLServer, etc... This opens a lot of doors for

        My point is: there is a lot of value added in porting Subversion to Java. Yes it would require work, but
there are also advantages there. Please consider them with an open mind and feel free to discuss them with me on
this mailing list.

Thank you,

Max Bowsher:
The posting of this issue is wrong in so many ways.

Firstly, you have thoughroughly ignored the request (in bold red text on a
yellow background, no less) to raise concerns with the mailing list first.

Secondly, you haven't bothered to check your facts - BDB Java Edition is a
sort-of workalike containing only some of the C Edition features, not a port.

Thirdly, you indicate that you believe porting Subversion would be "trivial". In
doing so, intentionally or not, you call the entire amount of work accomplished
by the subversion project so far "trivial", since the amount of work to port
code between languages is inevitably proportional to the amount of code!
I hope it self-explanatory that calling people's work trivial is not a polite
way to introduce yourself.

Fourthly, you follow this an erroneous assertion about cross-platform support -
I think you will find C compilers are more widely available than JVMs !

Fifthly, your statements about ease of development are highly subjective - Java
might be easier for *you* but experienced C programmers would no doubt hold the
exact opposite view.

Sixthly, from what I can see from reading the Hibernate homepage, adapting
Subversion to use Hibernate would be a fairly in-depth reorganization - i.e. no
easier than implement than an SQL backend in C.

If you wish to respond to this, please do so on one of the subversion mailing lists.

Consider porting Subversion to Java. Berkeley DB has already been ported to Java
and I suspect porting Subversion to Java would itself be a trivial matter. The
major benefit would be better cross-platform support and (generally speaking)
easier development. Then there is the matter of being able to make use of all
those great Java core and open-source libraries out there which will make
networking code easier, XML support (should you need it) easier, etc. Another
benefit is that you could stack Subversion on top of Hibernate and give it the
ability to run inside *any* database: MySQL, DB2, SQL server, etc. This would be
seen as a huge boon for commercial clients.

Let me know what you think.

To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Received on Fri Nov 26 20:29:46 2004

This is an archived mail posted to the Subversion Users mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.