Hi,
Frederik Ramm schrieb:
> Given that you never simply change the coordinates of a node without
> having a proper change command, it should be quite uncomplicated to
> have that command change the node's index value as well when required.
> And even if you found you had to encapsulate the node's lat/lon, this
> would not mean that you'd have to encapsulate everything else or every
> other object while you're at it. *If* you're willing to think about
> this without prejudice. If, however, all you think when seeing JOSM
> code is "Yuck, I wouldn't touch that", then don't say "There is just
> no way to do it...".
Well, of course "no way to do it" is a figure of speech. There's always
a way. Yes, we can update the index manually, after changes -
everywhere. What about plugins? It may not be an API change in the
strict sense, but a Plugin failing to update the index breaks the
application. You can do all kinds of stuff. We could use Java just like
a procedural language and create beautifully functioning applications
that way. Or we could use AspectJ and load-time weaving to restore
encapsulation despite the use direct field accesses. The questions
remain: does it scale? Is it maintainable? Does it make sense?
Refactoring is a well-established concept in the software development
world right now. It is well understood under which circumstances it is
applied and when it isn't. Usually this boils down to: leave the code in
a better state than you found it.
> "Wholesale" means: "I'm going to refactor all this because it is not
> written in the style I want to work with". I don't support that. First
> think about what you want to do, then think what needs to be changed
> to achieve that, then make the changes you need. ONLY the changes you
> need. Not 100 other changes that you think someone else might also
> need at some point in the future ("and while I'm here I'll also fix
> this and that...").
Well, frankly what I read between (and not so much between) the lines is
that the maintainers don't want the issues to be fixed. I smell a
constant uphill battle about whether or not something needed to be
refactored or not, especially given. And I'll be absolutely straight
here: this isn't something I want to get involved with.
>> I don't see that NG or NG-2 would fly at this point.
>
> I don't see why not. I'm astonished why everybody is so eager about
> fussing around with a piece of software they think has the crappiest
> design ever when they could instead contribute to a clean, new
> approach. I'd rather have those people who are comfortable with the
> way JOSM is written work with JOSM, and those who are not work with
> JOSM-NG, and I have no doubt that if you'd invest in JOSM-NG the same
> time you're willing to spent refactoring JOSM, then JOSM-NG would
> indeed fly. The sheer rendering performance would make many people
> want to switch.
Investing in JOSM or -NG makes a very crucial difference: one is
scratching itches, the other is getting deeply involved with another
open source project. As long as -NG cannot be used for day to day
mapping, there's no itching and thus no scratching.
I am already involved with several open source projects in varying
depths, from one-time patch-submitter to owner. My interests in JOSM are
just that: scratching itches. You may argue that my refactoring proposal
is way more than just scratching, and I am the first to assert that I
tend to be sucked into stiff like that easily. But what I definitely
won't do is to invest into a ground-breaking effort - no matter how
clean, nice and smart -NG may be (sorry Petr, please don't take it
personally).
Oh, and to answer the initial question: I just egocentrically assumed
that the motivation for a lot of prospective contributors might be
similar. Investing into something one already uses and with proven value
is nice and dandy, but not into something new.
Joerg
_______________________________________________
josm-dev mailing list
[email protected]
http://lists.openstreetmap.org/listinfo/josm-dev