[josm-dev] Refactoring of the JOSM architecture vs. Plugins

David Earl david at frankieandshadow.com
Tue Aug 19 10:01:33 BST 2008


On 19/08/2008 09:09, Frederik Ramm wrote:
> JOSM is currently designed in such a simple fashion that I can honestly 
> ask someone who is only a C++ or Ruby or whatever programmer to 
> implement features. 

Coming into it from nothing, I have to say that I was able to add 
several new features, including the substantial threaded audio mapping 
application, with minimal learning. I knew only a little Java, but am an 
experienced programmer.

Of course, I can't say what my experience would have been had it been 
structured differently.

We do have to bear in mind that Frederick isn't the original author, so 
he inherited what is there now too.

> The reason I don't work with JOSM-NG myself, and the reason I came to 
> JOSM in the first place, is that I am result oriented. I don't care for 
> Java. I want the editor to be usable to the mappers, and I want to 
> concentrate the little time I have on working on new *features* that 
> make life easier for mappers, instead of a cleaner architecture (even if 
> this possibly helps new features in the future - the whole of OSM is a 
> "low hanging fruit" project, we don't usually do things that will help 
> us the day after tomorrow, we do things that help us now).

I found this tension at work as well, and I think it is there across the 
software industry. The tension between the "pragmatists" and the 
"perfectionists". Pragmatists risk digging themselves into holes over a 
long term because a product becomes unmaintainable, but perfectionists 
risk never getting a product to market at all in any reasonable time 
(and in the commercial world, reasonable is usually "yesterday" and 
dictated by sales and marketing, not technical).

I'm generally on the pragmatic wing, so I have a lot of sympathy for 
Frederick's position.

But in the end, it depends what effort and commitment people are 
prepared to put in to make something they see as desirable happen, not 
just talking about it. It sounds like there is a basis for doing this in 
JOSM-NG, though I've not looked at it so can't really say.

David




More information about the josm-dev mailing list