Still no objections so far. I would volunteer to help with IP clearance

Musachy Barroso schrieb:
> Just to recap on this (no, I won't let this go stale ;) ), we have a
> consensus on using JQuery as the underlying framework for the ajax
> tags, and we agree that we could use this project. Is there any
> objection against starting the IP clearance process, any volunteers to
> help with this? (assuming there are no objections)
> 
> musachy
> 
> On Wed, Jul 29, 2009 at 4:52 AM, Rene Gielen<gie...@it-neering.net> wrote:
>> First and foremost, I totally agree that we should avoid to have a
>> driven-by-excitement attitude on this topic, and develop a reasonable
>> consensus and plan. See further comments inline
>>
>> Martin Cooper schrieb:
>>> I'm here, and I've been following along. I just haven't had time to
>>> consolidate my thoughts until now.
>>>
>>> First of all, I hope everyone recognises that it's by no means my call;
>>> it's
>>> the team's call.
>>>
>>> The subject of Ajax tags in Struts 2 has been hotly discussed over a
>>> period
>>> of years. At different points in time, different bases for such tags have
>>> been the hot favourite, from custom code through Dojo to jQuery, with a
>>> few
>>> other stops in between. Some of the work has happened here and some has
>>> happened elsewhere.
>>>
>> As far as I recall, the main discussions were:
>>
>> - as we have a Dojo 0.4 integration, can we migrate to 0.9 (at that time)?
>> Turned out to be that that would be more sort of a rewrite than a migration,
>> and nobody was stepping up to do this - not only for limited resources, but
>> also for technical doubts about the framework regarding it's API stability,
>> performance, programming model and adoption rate.
>>
>> - Could AJAX framework x be integrated? Every once in a while, this question
>> arose, and the most mentioned candidates for x were Prototype and jQuery
>> AFAIR
>>
>> - Closely related to the former question: If we add support for another n
>> AJAX frameworks, would we want to to design an abstract API to have the same
>> tags with an easy to switch implementation done with user's AJAX framwork of
>> choice? Although I once was a firm supporter of this idea, it turned out to
>> be hard to realise because the frameworks extremely differ in their
>> architectures and programming models.
>> IMO, there are basically two feasible ways to go: define a base tag api and
>> components, that every AJAX tags plugin is required to implement (along with
>> consistent core attribute naming and behaviour). On top of that, allow the
>> plugins to have their special feature stuff - similar to JSF in that case.
>> The other way to go could be: If the user decides to go with strut2-[AJAX
>> framework x]-plugin, he will most likely not switch to framework y during
>> the lifetime of his project, so just develop plugin x and y independently to
>> fit best the underlying framework's architecture and capabilities.
>>
>> Again, that's what I recall from the last years - anybody feel free to chime
>> in and add, correct or discuss.
>>
>>> From my perspective, it is critical, in adopting any set of Ajax tags as a
>>> baked-in part of Struts, that we, as a team, are fully convinced (a) that
>>> the underlying toolkit is not just the flavour of the month and will last
>>> for years to come, and (b) that we have a sufficient body of developers
>>> committed to making it work today and keeping it working years from now.
>>> And
>>> I do mean years here. Certainly the world will change, and the world of
>>> highly interactive web apps will change. But think about this: Struts 1
>>> was
>>> first released 9 (nine) years ago, and many thousands of web apps that
>>> were
>>> built on it are still running, and being maintained, today. I'm sure we
>>> would all like to have that level of success, and longevity, with Struts
>>> 2.
>>> It takes commitment, though.
>>>
>> Totally agree. As for the flavour of the month aspect, I would add that
>> jQuery should IMO be considered to have overcome this stage.
>>
>>> I do take issue with a few statements that have been made in this thread
>>> about Ajax toolkits. Rene said that we can consider Dojo "the biggest
>>> loser". Can we really consider a toolkit that has seen corporate adoption
>>> from the likes of IBM, Sun, AOL, Google, Nexaweb, and numerous others,
>>> "the
>>> biggest loser"? Some people here may not like to work with it, but Dojo is
>>> one of the biggest success stories in the Ajax world. That's not to say
>>> that
>>> jQuery has not had its successes - and, as Wes points out, has seen
>>> adoption
>>> by Microsoft - but jQuery is still a long way from "the" Ajax framework
>>> that
>>> Rene asserts.
>>>
>> OK, let me clarify here. I regard Dojo as the biggest loser not because it's
>> generally bad or not adopted. It's  because of the mismatch between claims
>> and reality here. If you look at the Dojo supporting committee, it looks
>> like a who is who dictionary. Just to mention a few: IBM, Sun, BEA, Redhat
>> or Zend. But what was the outcome? One would expect that with such a huge
>> supporting group, the progress should be fast and the documentation should
>> be good. Actually, the development towards something regarded as stable took
>> ages, and the documentation was extremely poor (which may have changes
>> nowadays). The line ending in 0.4 line was around for one or two years
>> AFAIR, when it was decided that the framework has to undergo a major
>> refactoring towards the 0.9 line, which was not compatible with 0.4 any
>> more. Many early adopters were facing the fact that moving to 0.9 would be
>> as painful as reevaluating the other frameworks now around and possibly
>> switch to one of these, and a lot of them did so. Although Dojo was one of
>> the first movers to provide an AJAX framwork, they turned out to be one of
>> the latest to declare a stable release.
>>
>> I totally respect that having an 0.x release usually indicates that the API
>> is likely to change, but I would expect to have a reasonable timeframe then
>> for early adopters to get a maintainable production quality release -
>> especially for a project not only with this many contributors, but also with
>> contributors getting paid for their work as their employer sees the
>> framework as a strategic product. Actually the development of Dojo started
>> in 2004-2005, and the 1.0 release was in late 2007. By this time, jQuery 1.2
>>  and Prototype 1.5.1 were already released. Given the claim and the
>> impressive supporter list of Dojo, this is what I call being a big loser.
>>
>> As for adoption, although far from representative, here are two interesting
>> links comparing a couple of JS frameworks:
>>
>> http://royal.pingdom.com/2008/06/11/javascript-framework-usage-among-top-websites/
>> http://www.kylehayes.info/2009/03/29/survey-results-javascript-frameworks/
>>
>> For me it looks like, in spite of the good intentions of an impressive
>> committee, the users have voted with their feet. Dojo's actual relevance is
>> quite poor, and that's the second reason why I call it a loser (again,
>> compared to it's claims). IMO Dojo is a great example that
>> design-by-committee can have it's downsides...
>>
>>> That said, the above is not an argument against the adoption of jQuery as
>>> the basis for Struts 2 Ajax tags. It's merely my attempt to bring us down
>>> to
>>> earth a little bit in our enthusiasm to jump on jQuery and ditch Dojo.
>>> Each
>>> has its merits, as do other alternatives.
>>>
>> As for ditching Dojo: Actually, we already did when we put it into
>> maintainance mode. In respect to what state Dojo has now, I would not say we
>> really do have a Dojo plugin - we do have an AJAX-features tags plugin based
>> on an early Dojo version. Of course we need to keep it for backwards
>> compatibility.
>>
>>> So, assuming the general concensus is to move forward with integration of
>>> Johannes' tags, what are the next steps?
>>>
>>> 1) Musachy hit the nail on the head when he said "I would like for us to
>>> define some strategy for this". It's crucial that we define, up front,
>>> where
>>> we want to go with this. What should the Ajax tags include? What should
>>> they
>>> specifically _not_ include, which is at least as important? Do we still
>>> believe that what we want is a set of simple tags and nothing more? If
>>> not,
>>> why not? How much coupling - that is, loose or tight - do we want to live
>>> with? It would be great to see some (more) discussion of this kind of
>>> thing
>>> up front, and perhaps the concensus documented on the wiki for all to see
>>> (and abide by).
>>>
>>> 2) Once we've agreed on the major points from #1 above, we can take a
>>> clear-headed look at what Johannes has done and assess how well it meets
>>> those needs. What would need to be added? What should be removed, to keep
>>> it
>>> streamlined to our objectives? We should be sure that we're not jumping on
>>> the "cool" factor, and have something that forms the basis for our needs.
>>>
>> Agree, and great to see that Musachy already set up a Wiki page for that.
>> But we should also incorporate and respect the S2 users' view the best way
>> possible. Now that Johannes' plugin is out, it will get hard to keep things
>> "under control", given the assumption that we will have a lot of S2 users
>> starting to adopt the plugin very soon. Our timeframe to canalize this is
>> IMO quite short. What I suggest is that, given that we would have a
>> consensus to incorporate a first class citizen plugin based on Johannes work
>> backed by our first impressions of the plugins' code and functional quality,
>> we should move it to sandbox even before we start major architectural
>> discussion and detailed planning. That would have the following, IMO
>> important, effects:
>>
>> - provide an early and clean integration point from a build management /
>> Maven perspective for early adopters
>>
>> - we would clearly signal that although the original work is declared 1.0,
>> users should not directly use it but rather use the sandbox project, with
>> clearly stating that they have to see themselves as early adopters of a
>> moving target
>>
>> - incorporate early adopters' feedback soon and canalized via the Struts
>> lists
>>
>> Nevertheless, this would assume that we manage to find a solution for
>> Martin's point 4) below.
>>
>> A side note regarding architecture: We should have a close look to the new
>> JSF 2.0 versioned resource management system which was especially designed
>> to integrate cleanly separated versions of the JS frameworks the JSF
>> implementors want to provide and to overcome problems in managed
>> environments such as Portals. We had big troubles with Dojo in that aspect,
>> and we should try to do better for the plugins to come.
>>
>>> 3) If we're going to bring Johannes' code into Struts itself, we need an
>>> iCLA, and personally I would prefer to see us use the IP Clearance process
>>> to make sure we're all squared away. Johannes' iCLA is on file already.
>>> The
>>> IP Clearance process is intended to be straightforward and quick, so it
>>> should not be an issue.
>>>
>>> 4) Musachy does raise an excellent question regarding commit rights and
>>> the
>>> sandbox. We have not hit this exact case before. Obviously we'll need to
>>> figure this one out.
>>>
>>> One final point: I recognise and understand the enthusiasm that's behind
>>> the
>>> "let's get it in here now!" sentiment, but really, we're not in a huge big
>>> hurry. Let's take the time we need to think through where we want to take
>>> this, before we head of down the road with it. A week or two here or there
>>> won't make any difference in the long run, but poor decisions will.
>>>
>> [snip]
>>
>> A week or two (or even three or four :-) ) is fine, but we should have in
>> mind that things can get out of our hands soon if the progress is lazier
>> than that. That being said, I totally agree with Martin's point here.
>>
>> - Rene
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscr...@struts.apache.org
>> For additional commands, e-mail: dev-h...@struts.apache.org
>>
>>
> 
> 
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@struts.apache.org
For additional commands, e-mail: dev-h...@struts.apache.org

Reply via email to