Since my response got moderated and not posted on the FW1 mailing list over at http://groups.google.com/group/framework-one/browse_thread/thread/ea0664334a06e565
, I am posting my response here in my blog to clean the air about the comments on this post.
I, in over 5 years of doing ColdBox and open source projects have never responded to harsh criticism or name calling about ColdBox or my open source projects as I always let the product do the talking. However, I think this time, I need to clear the air about some of the comments in order to lay out facts. Comments will NOT be moderated in this entry, so speak your mind.
So here is my response:
Hi everybody I dont usually answer to things like this but i am making an exception today:
Here are some facts for you:
ColdBox was developed on the fact of performance when I worked for a Carribbean resorts chain. It sustained over 1.5 million requests per server per day. So saying that ColdBox's performance is lacking or not achieveing the 80%, then I beg to differ. It has been a solid core powering mission critical applications for over 5 years now. 5 years of investment in performance, tuning and what works when you need stability, extensibility and performance; at one point we worked closely with Adobe to fine tune not only ColdBox but ColdFusion MX. This is not a brand new concept or an itch I scratched. It was built for performance and to fill the gap in a brand new way, conventions. Unfortuantely, in your job you mention Sean, you where using a very early build of 3.0 where things where in flux and in development, with that comes issues like any other project, buggy builds and concepts that are still forming. So misleading your group by saying its buggy and not extensible, is saying that something that is not fully cooked tasted like crap.
* Multi-domain caching (ColdBox isn't designed for multi-domain sites according to Luis)
It is since M4 as it was a ticket since the beginning of 3.0 and you knew that as I specificaly mentioned it, so again, why misrepresent, Also, tell me what caching libraries exist in ColdFusion that can accomplish as much as CacheBox does within ColdBox? Event caching, partial caching, purging mechanisms, etc?
* Multi-domain SES URLs (see above)
Also since M4 as it was a ticket since the beginning of 3.0, I even gave you a solution for it. What other library offers the ability to do URL mappings in ColdFusion like ColdBox does, with REST enabled services, extension detection and more? Again, why misrepresent it.
* Dependency Injection is lazy and doesn't mix well with ColdSpring
(Luis said either use ColdSpring for everything or use ColdBox injection for everything - don't mix them) ***
I said don't mix them because of consistency like in any other project, this was more a lack of architecture in the project that a problem with the libraries. Large enterprise applications use ColdBox DI (wirebox) and have no issues as much as you guys did due to lack of knowledge in it. At ESRI, which is no small shop, we discarded ColdSpring due to its contension issues (Which Mark Mandel, awesome mate, has fixed on CS2), and have been using WireBox for over 2 years now with incredible success.
* We ran into countless bugs in various areas that clearly other people don't use (including LogBox, the MXUnit test harness, i18n...)
That's what happens when you are in early alphas of new 3.0 and those are features that are widely used since those inception days. So saying that early versions of LogBox of enhaned i18n are buggy seems to me to misrepresent things. Also, what other libraries offer as much testing facilities as ColdBox for itnegration testing, model testing, mocking, etc? Again, its ok to comment on finished products, but don't misrepresent unfinished products.
* Performance analysis shows early all the application's time is spent in Reactor and ColdBox.
I refer to point number 1 and the concept that performance is where ColdBox shines, plus the majority of the time is not the framework that adds performance issues, but developer code. And all the time spent in coldbox from that analysis was getting and putting values into the request. Plus Reactor is a hog. I can refer to you over 20 different clients with over 100 times the traffic your project had, with extreme success and even third party evaluations of the core. IBM web consultants even did a report on ColdBox and was amazed at its stability and extensibility and this was in version pre 1.0. If I could make the report public, I would.
>LogBox is a great example of this. It's very sophisticated but there are a lot of common use cases it doesn't support well
You where testing a very early version of LogBox and you also helped in the realization of much of its features thanks to your comments. There are no libraries in the cf space that can provide as much as LogBox and if improvements can be made, they can be made, but discarding it like you say, really seems to me that you dislike anything ColdBox as it does not fit your palatte, more than what the software provides or can provide in the future.
>That just added to me feelings about frameworks having gotten too big, bloated and complex
I am sorry to say this Sean, but then Django, Rails, Grails, etc are all bloated and complex pieces of software that nobody should use.
>ColdBox is an amazing achievement and for a large number of web apps it's "good enough" for the 80%. Once you start to need to customize the features, you start down a path where it's often more work to do the customization than to write your own from scratch (especially if you find yourself fighting against the framework due to design issues or bugs).
I think that if this where true, then I would not be in business Sean. Flexibility in the core is what makes it shine and flexibility is where most consulting is done at Ortus Solutions. Benefits of extensibility and customizations is what drives business, so I guess if this were not true, then I would not be doing well.
Sometimes I feel like you really dislike ColdBox, and its ok, I am not in a popularity contest but in the business of driving innovation and creativity for ColdFusion. I never speak badly or comment like you have about any other frameworks, projects or memebers . I respect their teams and all the personal time involved in them. To me all frameworks are achievements in the CF community that deserve respect and encouragement, like machII, fusebox, wheels, model glue, coldspring, etc. I think that innovation is driven by healthy respect between peers and solid but tasteful criticism. So I finally break my silence of responding on threads because I think its time to concentrate on being productive rather than speaking illfully about other projects. I respect you as a developer and a friend, but I think that your misrepresentations are not cool. I can totally understand not being able to work in the framework of your choice, I would feel the same if I did a project in FW1, I would not like it even thought its FW1 concepts come from ColdBox!, because I am the author of ColdBox. That doesn't mean that FW1 is not good or lacks, it is because of your personal attachment to it. I think your framework is great and I commend you for your time invested in it, your dedication to it and your wanting of popularize it.
Thank you for your time
Comments are now closed