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

Frederik Ramm frederik at remote.org
Wed Aug 20 19:23:27 BST 2008


Hi,

Gervase Markham wrote:
>> I haven't seen code designed by any of those calling for wholesale
>> refactoring because of the "yuck" factor. 
> 
> Apart from the JOSM-NG codebase, you mean?

Which is now discounted by the same people because it "doesn't fly"... 
heck, it would really not take long to get it flying, and would probably 
even be easier than trying to impose what you believe is good 
architecture onto JOSM.

> If you want to allow programmers to contribute who are not familiar with
> best practices in any language, then what you really seem to be asking
> for is bad programmers :-) They aren't called "best practices"
> arbitrarily, you know.

I'd go for second-best or third-best practices anytime if they achieve 
good results for the mappers. This is not a programming beauty contest.

> JOSM is a programming project, in that it's a project whose main
> activity is programming. OSM is a mapping project, which JOSM helps to
> enable. Programmers may invest their time in JOSM because they like
> programming, but are more likely to do so because they like mapping. But
> that's no reason to say that it doesn't matter if the code is of poor
> design.

Your argument is that poor design can be rectified without losing 
contributors. This is what I doubt. In my eyes some aspects of JOSM's 
poor design actually enable mappers who know a bit of programming - 
maybe you would call them "bad programmers" because they don't know any 
best practices, in any language - to contribute. You say that the design 
discourages those that you would call "good programmers" from 
contributing. To me it is important that JOSM serves its users well, and 
JOSM's users are the mappers. I am after their experience; they alone 
know what JOSM needs to be like to be a powerful tool in their hands.

Now in a professional software development environment, which this isn't 
and never will be, the programmers would sit down with the users and try 
to find out what they need. Depending on the methodology en vogue at the 
time, they'll draw up use cases, settle for an iterative approach or do 
one of hundred other things to satisfy their users. (Or, equally often, 
just satisfy the contracts and not care about the users.)

While it would be great to have a large programming staff and users 
would just formulate their wishes in trac tickets for programmers to act 
upon, I don't believe we'll ever get there; one reason being that 
programmers will prefer to work on what *they* like and not what the 
users like.

So I'm trying to keep the entry barrier low, to allow as many as 
possible users to actually become programmers. I prefer a bad programmer 
with lots of mapping experience to a good programmer who is just that.

>> We have had a number of people who showed up on the mailing list, their
>> first post being something along the lines that everything needs to be
>> refactored and they're willing to help. Then you tell them to take it
>> slow, and then they're gone. 
> 
> That's not normally what you say, though. You normally get defensive and
> say "it's all fine as it is".

I guess it depends on how patronizing their initial call is.

> If your response was instead "well, let's see your first patch" then
> they might not be gone so fast. :-)

I'll do that in the future, and add (in line with the Torvalds interview 
I quoted) that I'd like the first patches to be trivial ones not 
exceeding 20 lines ;-)

> You think there are gangs of troublemaking Java hackers roving the
> internet, looking for software projects to mess up the design of? 
> Why else do you think they'd be here?

Showing off. Demonstrating how great they are and how stupid the others. 
  It's a personality trait that many people share. Some submit small 
patches and demonstrate a willingness to at least work with what's 
there; others prefer to lecture us about how they would have done 
everything better (if they would have done it). I know that because I 
was one of them when I was young ;-)

> Doubting someone's good intentions is not a great way to start a
> relationship. Do you think that perhaps this hostility, whether
> explicitly expressed or not, might be a factor in scaring them off?

Quite frankly: OSM is, as much as anything else, a political project 
where you have to learn to work with the others. Coming into the room 
and questioning everything the others have done so far is something 
that's bound to result in a degree of hostility and make your life more 
difficult. If you're subsequently scared away by the echoes of your own 
behaviour, then you're probably unfit for the project anyway.

You're on the lists long enough to know about the tons of "why don't you 
use PostGIS" questions from newcomers on the other lists. Some simply 
ask (and assume that there is probably a reason they don't know); others 
come in condescending (and assume that we must all be idiots who have 
never heard of PostGIS). The reaction they get varies accordingly, but 
sometimes even those who ask politely are brushed off because nobody 
wants to hear it any more. This is not something that is specific to 
JOSM or even specific to my person.

Bye
Frederik

-- 
Frederik Ramm  ##  eMail frederik at remote.org  ##  N49°00'09" E008°23'33"




More information about the josm-dev mailing list