Immanuel Scholz immanuel.scholz at gmx.de
Fri Nov 24 13:25:47 GMT 2006


[from talk mailing list by NickW]
> I'm wondering if now is the time to add JOSM to the main OSM SVN archive
so more people can work on it - Imi?

I know, I will make many enemies with the following statement, but well,
sometimes you have to be unpopular:

Until now, I have not recieved a patch that passed unaltered into the JOSM
code, because I always found the quality of the patch code too low. Most
of this is poor/careless formatting and similar tiny stylistic things.
Some patches did *really* ugly things.

The current code base in JOSM is very "glassy" and can be easily broken by
bad or careless code. This is because:
 - much access is done by directly manipulating variables in other classes
   instead through interface methods (or in other words: member variables
are part of the interface).
 - there are no internal sanity checks for strange code constellations.
   (I rater use "code by convention" instead of "code by contract".)
 - I use some risky ("abuseable") but powerfull constructs as example
   the visitor pattern.
 - Last but definitive not least: I did some dirty hacks too, that, if
   copied carelessly, would break things in very strange places (e.g. not
using listener semantic here and then or the ugly incomplete line
segment boolean in class Segment).

This is probably my main reasons, why I don't check the JOSM codebase into
svn.openstreetmap.org. I just believe, things would get worse, especally
with code quality.

This doesn't mean that I want no other people to contribute. This does
mean, that I want to have a look on your patches before I apply them on
the JOSM code (for the above reasons).

There are some other reasons for me not to upload the code:
 - I like the way of having an accurate changelog by specifying subversion
   upload-comments in a readable way. I don't think this would be feasible
with the current osm subversion.
 - For me, the current uk-servers are more unstable than my own server
   (althogh my by far aren't the best too ;). That was one of the main
reasons switching the bug tracker (again) to josm.eigenheimstrasse.de.
 - I use the current josm subversion number as JOSM-version number. This
   proved very helpful and easy to track problems. With the osm-subversion
counter, I would have many revisions not relating to JOSM, together
with some user confusion whether they have a newer JOSM version or not
(if nothing changed).
 - trac requires the subversion repository to be at the same machine. So I
   would either have to move the JOSM wiki to the mostly broken osm-trac
or do some nasty auto-synchronization, which adds nothing but hassle
 - Last (and this time the least): I asked several times for administration
   access to some of the machines, e.g. the web server, the server trac or
subversion is running. I would like this to keep an eye on the trac
outages or to install auto-deployment of new JOSM version (as currently
done at 4:00am). To be honest, since I didn't get these accounts so far
(for several reasons, which changes over time), I feel a bit of
unwanted on the OSM-servers.

Since JOSM is GPL, non-patented and without any trademark on anything,
anyone is welcome to prove me and my silly objections wrong and host &
start developing JOSM elsewhere ;-). (Like some people already did).

If you do so, I only ask you to use a version control system, where I can
extract diffs in unix-diff-format of different versions to the whole
codebase, so I can lookup your patches more easily ;).

Ciao, Imi

Ciao, Imi

More information about the dev mailing list