Peter Bell on LightWire
I attended Peter Bell's online presentation on LightWire Wednesday which was put on by cfframeworks.com.
As usual Peter does a wonderful job explaining programming concepts. He has a calm and natural way of explaining things verbally that works very well for this kind of presentation (or for a podcast interview).
I was certainly impressed with LightWire. As he says, it may not be for everyone, but it makes a good alternative to ColdSpring. LightWire seems to have most of the features of ColdSpring, but not all. For example, ColdSpring supports AOP which LightWire doesn't (yet, Peter indicated plans to add that later).
LightWire, however, presents some advantages of its own. It has fewer files and doesn't need to be in a specific location or use mappings as ColdSpring does. Additionally, you can configure LightWire via the same XML syntax as ColdSpring or via a programmatic API.
Personally, I find the choice very nice. I can certainly see scenarios where each are advantageous.
Right now I have my own DI/IOC Engine. Mine was created before ColdSpring or LightWire and isn't as robust as either of them. I am likely to migrate to one of them (especially if a needed feature or two is added) in the near future.
When that time comes, LightWire certainly seems like an attractive choice.
As an aside, I have noticed an attitude by some developers to disparage LightWire for daring to challenge the "One True IOC Framework". This attitude is disappointing as more options seems only to the benefit of all of us.
Certainly, I think we are better off now that we have more than one MVC framework. It would have been a pity, for example, if Joe Rinehart hadn't created Model Glue merely because of the existence of Mach-II.
Anyway, it was a really good presentation and well worth the listen even if you have no plans of trying out LightWire. Peter always has good explanations of his thinking. The nature of the problems that he is trying to solve (and the degree to which he researches them) make his a valuable viewpoint to hear.
Excellent review of the presentation. I found your remark about"... I have noticed an attitude by some developers to disparage LightWire for daring to challenge the "One True IOC Framework"."
I find this equally as frustrating as you do. As a community, we should foster innovation and creativity. There is plenty of room for different ideas and techniques and through the openness and sharing of the community we will all grow.
Dan Wilson
Absolutely. I think that is a great thing about your work on cfframeworks.com - it presents several available options to developers.
Dan,
I agree completely. I think the ColdFusion community is good at this overall, but I do find it disappointing when new approaches are disparaged merely for being an alternative to an accepted path.
I'm not really sure thats a very compelling 'advantage' for a framework. Afterall, with CF8, you can specify application mapping and component paths within Application.cfc, so even that minor detail seems irrelavant.
The CF community isnt trying to deter innovation. I think the problem most people have is that Peter could have just contributed to ColdSpring. Dave and Chris have always welcomed help, but Peter decided he wanted to create his own framework rather then contirbute. There seem to be too many people in the CF community who are for open source projects, but only when it's _their_ open source project.
It's unfortunate, but I think LightWire is begining to share a reputation with BlueDragon in our community. As a shotty knock off that the vast majority fails to take seriously. The quote about Joe and Model-Glue is a bit off based. MG and Mach-ii are fundamentally different in thier approach (as is Fusebox). LightWire however, mimics the approach and philosophy of ColdSpring. A good example of this is Transfer vs Reactor. Both trying to solve the same problem, but in different ways. There wan't any negativitey surrounding Transfer and MG because they weren't copying what was already out there.
Thanks for giving an example of the kind of negative attitude that I was talking about.
I think it is pretty mean-spirited to call someone's effort "shotty" (which I assume is a derivation of "shoddy") - especially when attacking a free and open-source effort without any evidence as to its poor quality.
I certainly grant that there is a point at which it is more helpful to contribute to an existing project than to create a new one.
As to a "fundamentally different approach", I don't think that is all that clear. One could certainly argue that since Transfer, Reactor, and objectBreeze are all ORM frameworks that they are all filling solutions in the same space. Certainly, each takes a different approach in some areas, but what degree of difference constitutes a "fundamentally different approach"?
I don't think that is an easy a question to answer. I would think that allowing the use of an API instead of XML would, at least, be a significant difference.
Certainly, the discussion over when the differences are sufficient to warrant a new approach is a complicated one and opinions differ.
http://www.firemoss.com/blog/index.cfm?mode=entry&...
http://corfield.org/blog/index.cfm/do/blog.entry/e...
That being said, I think it is disappointing that those who disagree with Peter's decision to build an alternative take such a negative stance to the offering. I think the result is that anyone who builds an offering that is similar in some ways to something that already exists will just decide to keep it to themselves rather than risk being bad-mouthed in the community.
Right now, none of my live projects are on CF8. It will probably be several months after CF8 is available until they will all be migrated to that version.
Additionally, when I am working on open-source projects I like to have as few dependencies as possible and I prefer to support the previous two version of ColdFusion. So it will be some time until I use CF8 features in open-source work.
Thanks for the support - much appreciated.
@Adrock, If you can tell me how I could have contributed to ColdSpring to make the entire framework two beans and 600 lines of code optimized for DI into transients and supporting both programmatic configs and XML and supporting mixin injection as well as setter and constructor injection then I'm all ears. And as an aside, one of my business drivers is that I need an n-language solution. I wouldn't have used ColdSpring anyway as it wasn't a good fit to my approach, but if I'd needed a CF only solution I'd have looked very closely at using Transfer.
Nonetheless, you say, "There seem to be too many people in the CF community who are for open source projects, but only when it's _their_ open source project," but fail to see the irony as you rip Peter for not contributing to ColdSpring?
I have taken a close look at both (having even contributed some code changes to LW) and I can tell you the approaches seemed distinct to me. I continue to use and advocate ColdSpring for general purposes, but I thought LightWire fit a need that Peter saw for his projects. For crying out loud, this stuff exists plenty in open-source but this argument has clearly gotten to a point where it is no longer about CS vs LW and the respective merits, it is a personality thing. Admit it and be done with it...you don't have to like Peter, but trying to pretend this is technical argument regarding something you clearly haven't looked at closely (that being LightWire) is simply disingenuous.
How about now attacking Google for creating Guice when Spring exists? Even they readily admit the problems it solves are the same, but with different underlying approaches and reasons for being. http://google-code-updates.blogspot.com/2007/05/in...
Your argument just doesn't hold up under any real scrutiny. I will continue to use and advocate ColdSpring, but seriously the dismissive and disrespectful attitude on these posts is getting out of hand. If Peter pissed you or Dave or Chris off somehow, I get that - there are people in the CF community I don't particularly like and some who I am quite certain do not like me, so be it - but the rest of us don't need to defer to your grudge when choosing what technology we use.
Nonetheless, I think a few people who speak loudly in the (for lack of a better term) blogosphere can indeed spread misrepresentations fairly easily - I haven't seen anything specifically claiming or showing that LightWire is shoddy. I also think if someone is interested in any open source project for whatever reason, they should not have to worry about being flamed for posting about the topic or worried about dealing with hecklers in a presentation. I think (in fact I know) this dissuades anyone from contributing to either project for fear of taking sides in some feud. In fact, even worse, I think it makes people hesitant to release their own project as open-source.
I have always tried to take an even-handed approach to the open-source movement in ColdFusion - I am taking sides here - I just think that this argument benefits no one.