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

Language Advocacy

From: Bruce Atherton <bruce_at_flair.law.ubc.ca>
Date: 2001-03-02 18:48:43 CET

I wonder if we could drop the language advocacy on the list. I think most
of us understand the following:

   - TMTOWTDI = ease of expression
   - TMTOWTDI = maintenance nightmare, since other peoples' idioms will not
be your own (Perl is the PL/I of the modern world in this respect)
   - No part of Subversion itself should be written in Perl
   - There is a need for Perl bindings to the Subversion library.

Now that we are all agreed, let's move on.

At 10:16 AM 02/03/2001 -0600, pohl wrote:
>While we're on the subject of language bindings, I'd like to ask if
>anybody here has considered how one would write a client class library
>in Java? Would it require maintaining separate implementations in
>Java of both Neon and libsvn_ra_dav of one didn't want to go the
>less-portable JNI route?

I think it depends on which libraries you are talking about.

Regarding the FS libraries, I believe that JNI is required in order to get
at the Berkeley DB libraries. The bindings are created as part of the
standard build from Sleepycat. Furthermore, given the portability goals of
Apache and Subversion, I'm not sure how much more portability a pure Java
solution would give you.

If your concern is for clients using the network layer, you probably don't
want to require them to do any kind of compilation so you have to deliver
Java bytecode and possibly (if using JNI) compiled binaries for each
platform. So there is a real advantage to avoiding JNI on the client, in
that you don't have to provide many different binaries.

If you want to avoid JNI you will need a library that talks DeltaV. For
ease of understanding and reuse, it would probably be helpful if
libsvn_ra_dav was reimplemented in Java as well, although there is no
reason it would have to be. The Java client could just as easily call
directly into the DeltaV library.

There are a number of projects that are developing WebDAV libraries in
Java, such as Jakarta Slide http://jakarta.apache.org/slide/index.html,
Websphere DAV4J http://www.alphaworks.ibm.com/aw.nsf/techmain/DAV4J, and
WebDAV Explorer http://www.ics.uci.edu/~webdav/. Jakarta Slide even
specifically mentions their intention to include DeltaV client support.
None of them currently support DeltaV that I could find, though.

That is my take on it, anyway.
Received on Sat Oct 21 14:36:24 2006

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