I'm shamelessly too intoxicatd to reply, but Ezra encapsulated my thoughts tonight.
When he said, Hivemind is about ego, I was silently applauding. I don't understand whey the Tpy community cannot talk to Rod and Jurgen and have an integration. Let's talk .Net and JEE. For hte past year I have been an onanist who has wicked fantacies of elcipse in lace while I slave away shackled to VS.net. The fundamental convepts behind tapestry are 1) not original. 2) not unique to a given language 3) highly productive HLS has done a jaw dropping awesome job of architecting T. But I never understood why spring could not be substituted in place of Hmind. Honestly I always thought Hmind was a case of ego. with much respect and kudos to HLS, I don't know why any implemtation of T, would need a particular DI or IoC container. T is a presentation layer framework. period. If I want to have a bunch of data services screamj out WDSL T. has no use. Well why would T. and Hmind be so married. Most A. projects with notable exceptions, do one thing, and one thing well. If HLS imagines a pure java impl of T. without Hmind, then that is great. I like orthoganality. I think competing with Pico, Spring and raw codw e is a mistake. Why can't we integrate with Spring....That's what my clients want.....Guaranteed. Seriously, If I mention Hivemind, people are out....' THe proxy we wrote is ok for small interdirectional transfers. Much mor eis needed in reality. On 7/29/06, Spencer Crissman <[EMAIL PROTECTED]> wrote:
Bingo. The issue isn't that having a Tap5 is important, for it is. There will always be a need to add new features and support new technologies as a framework expands. The issue I have is that every Tap release doesn't just add new abilities, it completely scraps the existing code. There are numerous reasons why this is a poor way of working. Specifically: 1) A framework's is by nature harder to learn than other technologies. This is because unlike learning a particular application, learning a single library, or learning just a class, a framework adds a great deal of complexity in order to be a more general purpose solution. This added complexity results in a steep learning curve, which requires a large investment of time on the part of its users in order to learn. The payoff, or return on that investment of time is the ability to leverage that knowledge on a variety of projects. By rewriting the entire framework with each release, that investment of time is destroyed. Developers barely have time to see a couple of projects through before they have to relearn the new way of doing things. This severely limits the returning value of the framework, and is very wasteful when it comes to developer time. 2) Specific to Tapestry, the framework is based around reusable components. The promise of the existance of these components is very powerful, and could be a source of as much value as the framework itself. By continually invalidating the component libraries that exist, we once again limit the ongoing value of the project. A component based framework ought to have a vibrant user community with a large variety of compnents that will work for a long time. I'm not seeing that happen with Tapestry, despite all its promise. 3) Having a framework that works only for a single snapshot in time may work for some companies that write an application and release it. But really, that is probably more suited to a client side application than a web framework. The reality is that most of the web applications developed in Tapestry 4 will need to be supported in place for a long time. And during that time, feature requests will come in that can only be implemented using the technologies made available in Tap5 or Tap6 or TapX. Developers need to know that when it comes time to add new features, the cost is proportionate to what they are adding. To add a small feature that uses some tiny subset of Tap5 features, I will have to rewrite the entire web application? Again, such a waste of time. 4) One powerful advantage that open source projects have is that there is so much expertise, and so many skilled individuals out there, that working together they should be able to view the project from many different sources, and see many different ways that the project can grow and take shape. This should add some level of flexibility to the projects. There should be some level of forethought from a variety of angles built into the code. The fact that every new release of Tapestry requires a rewrite makes me question just what is going on. Why can't a system be made to work without being so rigid and inflexible that it cannot be adapted in the future? We have so many patterns and so many well understood software design principles exactly to prevent having to do complete rewrites. That a project isn't able or isn't willing to use them for that purpose is worrying, to say the least. This is understandable for a new project, or a young project, but we're talking about version 5 now. 5! 5) Open source projects rely on contributions via mailing lists and/or wikis and tutorial websites to teach developers the ropes. Completely changing the way everything works in every release makes it hard to learn, hard to search for, and hard to establish best practices. You aren't just throwing out code when you scrap a framework, you are throwing out all the knowledge that has accumulated around it. As was mentioned elsewhere in this thread, this isn't a race. Do one thing, and do it well. If hivemind doesn't have the new features, get them done in that project, maintaining backwards compatibility, and then bring them to the Tapestry project for the next release. With so much waste in the world, why are we reinventing the wheel that was specifically reinvented for this same project so recently? In the end, for me, it boils down to this: We are a small company, and our small group of developers will be growing the applications we build over time. We have to look at both the current capabilities, and the future costs of the frameworks we select. While Tapestry's current capabilities are great, the future costs that it will incur if it continues along the path of constant rewrites are too great for us to invest in it. There are many users in the same boat. Why do none of the above points make any difference in the future path of Tapestry? I find it ironic that one of the stated goals on the Tapestry 5 IoC Introduction is "User Friendliness" when invalidating all their current knowledge and future upgrade paths for existing projects is about the least friendly thing anyone could manage to do to a developer. I hope the devs are listening, because this project has too much good potential to see it get a tarnished reputation over compatibility. On 7/28/06, Jason Dyer <[EMAIL PROTECTED]> wrote: > > Because, a company that has invested a year or more, developing an app is > probably going to want to use it for a little while. Over the lifetime of > an > enterprise app, it will undoubtedly need modification (both bug fixes and > added features.) > > When Tapestry 5 arrives, we can safely assume that Tapestry 4 development > will > stop fairly shortly thereafter (new features immediately, maybe bug fixing > will go on for a year or two, but that's nothing compared to the lifetime > of > a large app.) Then there's the fact that, right now it's difficult enough > to > find people with skill in T4, but in a couple of years it'll be > impossible, > because most people will have moved on to T5... > > If the migration to T5 requires what basically amounts to a rewrite and T4 > is > no longer maintainable, then the 'powers that be' at said company are > going > to be a little irate that they've invested so much time/money into > something > that ultimately didn't last very long. In fact, they'll probably be > looking > for heads to roll... > >