Frank W. Zammetti wrote:
Jonathan Revusky wrote:

I guess you and I think quite differently about certain things. In another part of this discussion, you mentioned malice as a reason not to give people commit access on an "on-demand" basis. However, this is something that hardly occurs to me as being much of a reason. In the above, you mention the idea that your secret voting mechanism could be "cooked" or people could suspect it is. This also never really occurred to me. I guess I just have a certain basic trust in the ethics of other open source people, and it does not occur to me that someone would cook the voting or that anybody would think that I would cook the voting.


No question I tend to take a pessimistic view of things until I have reason to believe otherwise. I dare say all you have to do is look around the world and you will see more evidence to support that perspective than the more positive perspective. Sad, but I think true.

But you say "...certain basic trust in the ethics of other open source people..."... do you mean that you would allow anonymous, full commit privileges to anyone and everyone?

It is very unlikely that I would ever let anybody muck with the repository anonymously. For starters, while I think malice is quite rare in this case, the chances become much higher when you're talking about people who aren't taking the basic minimal responsibility of saying who they are.

As a practical matter, the issue only will come up with people who have been on your mailing list and have some ideas and the subject of them becoming more involved comes up. In most (maybe all) cases I actually have been the one to bring it up.

Basically, I'm arguing that being extremely liberal about giving people who shown some interest commit access is not nearly as dangerous as you are portraying it to be. I think the dangers of this kind of elitist closed club attitude that you see here are greater.

In other words, a situation where anyone who wants to, whether they have ever seen the project before or not, can commit to the repository. This I absolutely think is a bad idea. A very bad one at that.

Frank, isn't this a bit of a red herring? Who on earth who has not seen the project before *wants* to commit code? It really seems to me that you keep bringing up cases that have no relation to anything I recognize from my own experience as resembling reality.

Again, the basic question we are discussing is subject to empirical verification. To keep talking, from first principles, about whether something is a good idea or not, when it can be tested empirically, is ultimately sterile. (I originally wrote "masturbatory" here, but find that too inflammatory...) It's like a bunch of ivory tower intellectuals having a theoretical debate about whether it's raining outside or not. Some illiterate janitor or somebody happens into the room, opens the window, sticks out his hand and says. "Fellas, it's raining out there."

Now, when I say this is empirically resolvable, I don't mean it's all that easy to run a well controlled experiment since each case will be different. However, here is the basic idea. You have one project that takes the elitist "committers as high priesthood" approach and another comparable project that has practically no barriers to entry (you do have to say what your name is but that should not be a big barrier.) You also have to be interested, but that's possibly a red herring because somebody who is not interested simply does nothing and never asks for commit access.

The basic question is which project are you going to bet on in terms of it continuing to evolve and innovate? I don't know for absolutely sure, but in the experiment outlined above, given my thinking right now, I would bet my money on the project with low barriers to entry.

While you can't run a perfectly controlled experiment, once you accumulate enough data points on this, you can start to, at least tentatively, draw some real conclusions.


But look, if somebody distrusts your ethics to that extent, why would they be in your community?


I guess it could be more me expecting people to be expecting the worst of me :)

Well, you know, it could also be that a public vote is preferred because project leaders are (at least vaguely) aware that if the vote is public people are less likely to disagree with them. (Of course, that is not exactly a legitimate reason.)


That could be part of it, sure.

But now, which one of us has the basic distrust issue here?? ;) LOL

Well, it's not comparable. That the project leaders would prefer to structure the voting in such a way that they tend to get their way is not the same as actually cooking the vote count or something. In any case, in my world view, it's normal that the people who did the lion's share of the work basically make the decisions, so I don't even see much problem with that. But my own suspicion is that most of the formalized voting stuff is an empty farce anyway.

Well, if it comes into play at all, it should be considered.


I would generally agree.

Well, maybe (just maybe, I'm not really *so* presumptuous) the next step of evolution of your thinking is to move more towards implicitly trusting people. I mean: trust people to be acting in good faith until proven otherwise. Trust people to be at least moderately competent until proven otherwise.


With the potential of major effort to clean up a corrupt source repository, I don't think you can do that.


I revert to my statement that a version repository makes it quite easy to restore the code to any point it was at in the past.

In any case, consider some potential bad consequence of letting just about anybody commit:

1. On occasion, people start committing all kinds of bad code and it's a lot of work for you to start sorting it out. (This very rarely happens because new people are typically very timid in their initial commits, and don't do drastic things, their cokmmits are small and localized and could be rolled back easily.)

2. Once in a very long while, let's say 10 or 20 years, somebody with sociopathic tendencies comes along and... I dunno... starts introducing bugs deliberately. (But c'mon, this just about never happens.)

Now, let's consider the consequences of making it very hard, nigh impossible, for new people to get involved.

A talented, energetic person who has a fire in his belly to do some stuff is given the runaround. You drive that person away. You lose all the contributions he would have made. Moreover, that energy gets invested in the competing project (in our conceptual experiment above) with low barriers to entry.

Which is going to be the bigger negative for a project, the above point, or points 1 and 2 above?



Just my opinion.

Sure, and you have the right to your opinion.

But, when a question is subject to empirical validation, once there starts to be overwhelming evidence that your opinion was wrong, you have to be flexible, don't you?


In general, in this kind of collaborative internet model, don't you have to make a leap of faith and implicitly trust (until proven otherwise, of course) people you've never met?


To some degree, yes. But what that degree is, well, that's where we don't completely agree :) I think there has to be *some* vetting that takes place, no matter how minor.

Well, I agree with you (and Craig) that the person should have a real name.

So maybe somebody whose mommy and daddy neglected to give him a name gets unfairly filtered out... ;-)

Aside from that, if somebody says he wants to work, I say, go to it, show us what you can do.


Look at it this way... let's say you have 20 people actively working on a project, doing fantastic work. All of a sudden, you let the 21st person in, and they proceed to commit some less than stellar work, or maybe even break code because they don't yet have a good understanding of the project. Is that fair to the 20 others?

How on earth is it unfair? They knew what they were getting into, an online collaborative project. Was there ever a guarantee offered that nobody would step on your toes a bit at some point?

If I am working on a project, and the other guys are obstructionist and I lose the possibility of collaborating with a talented volunteer who is given the runaround, I lose the benefit of that enriching experience, right? Possibly because the other guys are insecurely guarding their turf and so on. Is that fair to me?

In which case is the loss greater? I say the latter one, because the first thing is more like a minor inconvenience.

Even if it can all be undone, is it fair for any of them to have to take the time to do so?

It could be a PITA, but there is nothing inherently unfair about it. What's unfair about it?


I could quote Spock here, but I probably don't need to :)

That would  be the "appeal to higher authority" fallacy....


You see, what is the alternative? If you don't trust people by default, then how is trust established?

 >

I mean, this seems to be related to the catch 22 problem that you become a committer by contributing a lot, but it's practically impossible to contribute without being a committer in the first place, Craig never responded to this basic question. (Somehow, I suspect he won't.)


But this is where the attitude of the committers (of any project, not talking Struts specifically here) comes into play. They have to be willing to accept contributions that don't come from themselves. If that is the case, a person can build up that trust and build up that reputation that leads to an invitation to join. One could even envision a situation where a person submits 10 things, none of them is accepted, and the person is still invited to join. That obviously would require the existing committers have a very open-mindedness about them, but it could happen. This serves your point of view and mine: there is a vetting process that I like, and there is a basic trust by default for you, maybe not quite to the degree you like, but I think its a reasonable compromise position.

Well, that could be good. It all comes down to empirical questions. If an approach works, it works. Black cat, white cat... both catch mice....

Once your approach clearly didn't work in a case, though, there has to be an honest taking of stock. That is what I see as quite absent in the Struts community.


But the real problem here, that just about everybody seems to be skirting around is that, given the utter failure of the Struts community to compete with Webwork technically, there surely is a need for an open-minded exchange of ideas about these project management issues. And the people who lost the technical competition (the Struts people) should, by the basic logic and structure of competitition, adopt a fairly humble attitude about these topics.


Can you point out where Struts has "utterly failed" to compete with Webwork technically?

I don't know either product so well in detail. My interest in Webwork and hence, Struts Action, is that FreeMarker is used very extensively there.

But I don't think there's much onus on me to answer this question anyway. If the main Struts people want Webwork to be Struts Action 2.x, and for Struts 1.x users (at least the ones who want an action framework) to migrate to that, they are saying that WW is superior.

It would be silly of me to question that, especially when the Struts people would, under normal circumstances, be the last ones to admit that WW is better.

I've looked at Struts 1.3, and I've looked at WW, and I don't see them as being light years apart frankly. I certainly think there are pluses and minuses both ways, but the one thing that struck me the most when I was reading about WW was how essentially similar to Struts it was, and I didn't see anything that made me sit up and go "oh wow, that's SO much better than Struts".

Well, the responsible struts people threw in the towel, as far as a technical competition is concerned. They accepted that webwork was better. Now, if you think the boxer's manager threw in the towel prematurely, that could be an issue, but that he lost the fight is clear enough.

Look, try this. Work up a list of all the evolution, improvements and innovations that have happened in Webwork over the last 3 years. And work up a corresponding list of the evolution that happened in Struts over the same time period.

Now, on that basis, let's examine which community had a more effective development process. My bet is that you'll have to conclude that the Webwork community was more innovative and more effective.

Note also that this is quite damning, since the two things were not competing on an even playing field. Struts should have had a huge advantage in terms of attracting technically able collaborators. Yet still, they were not able to compete.


Well, it's like the alcoholic who has to admit that he has a problem, this community would have to admit that it has certain problems for any improvements to occur. But of course, since they won't admit it, no improvements will occur and.... well,... look, it's obviously a lost cause.... (I quickly came to that conclusion after reading some of Craig's (and Ted's) recent comments.)


Hehe, ironically, we've flipped positions :) I actually have a great deal of hope for the Struts community. Firstly, I don't think it's in quite as much disarray as others may. I think there is room for improvement, but I don't think it's doomed or anything like that.

Well, this is empirically resolvable. We simply wait and see. :-)



I actually am not somebody with strong opinions at the moment about web app development. I don't know so much about Spring and other frameworks and so on. However, just from what I observe lurking in this community, I would have one recommendation for anybody who asked my opinion on these matters. And that is: Whatever else you decide on, do not use Struts (I mean, don't use Struts Classic, don't use Struts Action, don't use Struts Shale) because the community is dysfunctional... major league FUBAR...


This I can't agree with.

Well, you have an existing investment.

Here is something I am wondering about. If you had no existing investment in Struts, and you were in the market for a framework, would you try to get involved with this community or would you look elsewhere -- Spring, or whatever other alternatives....?

And I mean, looking at the project with fresh eyes, trying to sort out your initial confusion about Struts/Action/Shale, and all that, and so on. Would you get involved here or opt for something else?

It's not a rhetorical question. I ask because I don't know.

The 1.2.x branch of Struts is in pretty good shape... one of the reasons there hasn't been a lot of evolution is that it *is* stable and does the job for a lot of people.

Well, that people use 1.2.x and it basically works does not really have that much to do with whether the project's development process is healthy at this point in time.

When I referred to this as a FUBAR, I was thinking more of the sociological aspects of all this. Craig was right to say that this is a lot about people as opposed to code, and it is particularly for these reasons that I would not consider getting involved in this project and community.



The 1.3 branch brings a lot of power, but it almost feels superfluous with the pending WW merger (I have my suspicion that it hasn't gotten the attention it should have ever since the merger decision was made, but that's just my suspicion).

Yes, but the WW merger came about specifically because Struts was falling further and further behind. At least this is what I infer. So maybe there is some confusion of cause and effect in all this.


Shale, however you or I may feel about it, continues to evolve and get better, and again, putting our feelings about it aside, there is no doubt more and more people are finding it interesting.

Projects on ASF will always generate a lot more interest than what they deserve on pure technical merit.

Suppose you put Shale on sf.net without any ASF projection. How interesting would people find it?
<snip>

If I have a choice though, I would rather a democracy fail than a dictatorship succeed. There is something at a very low, fundamental level that I just abhor about not giving people a voice, freedom and choice.

Well, Democracy is a basic value in the running of a nation and society overall, I suppose. But whether it's a basic value in terms of the running of an open source project, I don't know. I think that the various approaches to running an open-source project have to be judged on results.

Even in the case of countries, I don't know how far you can take the idea that you prefer a failed democracy to a functioning dictatorship. If it comes between a democracy in which people are starving and there is anarchy vs. a dictatorship where people have food on the table and there is law and order, I think that morally and ethically, one has to opt for the dictatorship -- if those really are the basic parameters.

Political freedom is meaningless if you have no food to eat. And how "free" are you if you cannot walk down the street in safety anyway?

Jonathan Revusky
--
lead developer, FreeMarker project, http://freemarker.org/
FreeMarker group blog, http://freemarker.blogspot.com/





I say that no formalized voting system will substitute a basic need to be able to listen to people in an open-minded way (that means, considering seriously the possibility that you are wrong) and being flexible and so on.


I agree.

This actually reminds me of the various attempts to set up democracy in backward, third world places. These countries do not have the basic institutions or culture of democracy. Having the formal vote does not make them into democracies.


I agree again. But what it DOES give them is a vote. There is no trusting that the leaders will be open-minded. You have clearly stated you don't feel the Struts committers are being open-minded, so in the case of Struts, from your point of view, your own philosophy has failed. If there was at least a formalized vote, the closed-mindedness you perceive would have far less impact, and possibly even none.

Jonathan Revusky


Frank




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to