Viewing By Entry / Main
November 7, 2004
Now you might not know much about Inversion of Control and you might not care about the pros and cons of HiveMind, PicoContainer and Spring, but Mike Spille's Pyrasun blog can be very thought-provoking because he speaks - often bluntly - from personal experience with all this stuff.

What I want to draw attention to here is a key point in the conclusion of his Inversion of Control Containers review:

"In particular, I salute Howard for resisting attempts to twist HiveMind into something it's not - a rare quality, particularly in open source. HiveMind does (mostly :-) ) one thing and does it well."

Mike comments that PicoContainer looks like it followed the XP YAGNI (You Ain't Gonna Need It) principle and each new release seems to have haphazardly added those features which - guess what? - you did need them after all. He also comments that "Spring's just a bit took kitchen-sinky for me."

My point? Frameworks work best when they are cohesive, focused. That usually means tightly-controlled rather than being open source free-for-alls and it also usually means that the creator(s) started with a coherent vision of the whole.

So, when you're asking for Fusebox or Mach II to be opened up so y'all can contribute code, think about Mike's comments on why some frameworks work better than others.

Comments

Most of the comparisons or discussions on techonology are narrowly focus which in some situation may do injustice to some. For instance, the author discusses IOC implementations. Spring is more than IOC, it's being developed as a Java/J2EE application framework, like what CFMX does in many ways. So, by saying that Spring does too much in being an IOC container, the author only referring to features other than IOC, which are implemented in Spring, AOP for instance.

The same invalid argument I found in other blog entries, when some blogger tried to compare Mach-II with Spring, where the comparison should have been made between Mach-II and Spring MVC.

Next time when someone like to made arguments, make sure they pick the right targets and the right focus.


If you read Mike's article, he's very clear that Spring is more than IoC - and he makes the point that he's focusing only on Spring's IoC support. His point is that Spring - pushed as an IoC-based framework - is somewhat unwieldy if all you really want is IoC.

That's exactly my point in making this post. A framework needs to be very focused and very clear about its target usage.


Mr. Corfield, like I agree with you in many other development issues, I totally agree with you that, "A framework needs to be very focused and very clear about its target usage." However, Spring framework is focus on providing light-weight Java application container while IOC or Dependency Injection is only part of it's implementation, i.e., not being "pushed as an IoC-based framework". And the motivation is shown on the mission statement http://www.springframework.org/statement.html

The confusion arises merely because developers tend to compare Spring with other IOC containers and hence make Spring seems nothing more than another IOC container. It's an application framework that Spring is shooting at not merely an IOC container, so what's not so "incorrect" about it.

CFMX now provides communication channel outside of traditional HTTP by way of event gateway, so is CFMX going "out of bound" too?


I think it's a mistake (and all too common whenever OSS and Fusebox/MachII comes up) to assume that there's two development options: tight control and free-for-all. There are *many* successful open source projects that provide tight control of the code and vision yet much more open development processes. Feature roadmaps, read access to the development branch, bug-tracking tools, and some basic documentation are not too much to ask as fundamental components of an open framework.

Sites like tigris and sourceforge provide a ready-built environment to support open development that can be as tight or loose as the project mainteners desire. And IMHO, active projects at those sites gain an immediate measure of credibility that is *very* useful in introducing others to the technology -- just having a download site that could routinely be counted on for Fusebox/MachII would be a great improvement.

The sourceforge site for PHP FB4 didn't result in an OSS free-for-all (in fact, I understand it basically just provided a CVS tree since no one was really helping out/contributing to the original PHP team). Fortunately, things are *slowly* changing (eg apparently Team Fusebox has CVS -- yay!) but boy wouldn't it be easier just to let someone else take care of the fundamentals (bug tracker, forums, distribution/mirroring, etc) and make the project look more professional?


Post Your Comments
Name:
Email Address:
Comments
*** Please note that all comments require moderation so it may be some time before your comment posts to this blog! ***
Remember My Information:
 



Hosting provided by