In particular, I was taken by this comment from the Flash Coder:
A development framework is useful when your workforce is disperately or poorly skilled. Perhaps 'poorly' is the wrong word - maybe 'intermediate and below' is a better description.
To be fair (to both Simon and to the Flash Coder), the blog entry is mostly focused on code size and performance in regards to frameworks and is specific to Flash (therefore the context is more about cell phones and set top boxes).
However, the underlying sentiments expressed by the Flash Coder threw up much the same "red flag" that some of Simon's comments have: namely that frameworks are not appropriate for "good" developers and that if you're really good and really know OO and patterns, you just don't need frameworks.
Here's another quote from that entry that is almost exactly what Simon has said when justifying his Sensible Assembly Methodology over using a standardized framework:
The best solution of course, is to have skilled developers creating good pattern based OO code in a more project bespoke manner and adhering to accepted best practices.
I don't really want to start up the whole framework vs no-framework debate again but I thought it was interesting to see this message - and the subsequent pushback in the comments - coming up in Flash. I would bet we could go look in the PHP or Java community and see the same thing.
I see this debate all over the place - PHP, .Net, Java and Ruby communities in particular. I don't think it is surprising that as Flash matures as a programming environment (especially with the release of Flex 2.0), the same discussions will arise.
I think the real problem with frameworks is that they require a certain amount of learning and demand a certain amout of trust in other peoples code. For me, the answer is to learn about the frameworks without necessarily committing to using them, so you get the best of both worlds.
To consider frameworks the perfect solution is all cases is as arrogant as to believe you can learn nothing from deconstructing the some of the best proven solutions to common problems.
By the time you've learned the frameworks, the learning cost is a sunk cost and you have a better sense of the trsutworthiness of the platform, and it is pretty easy to either build your own bespoke frameowkr taking advantage of what you learned or to confidently use a framework that fits well with you rproblem domain.
Hijacking the comments here for an unrelated purpose, but thought you'd get a kick out of this link after our discussions about Haskell. Feel free to just delete the comment . . .
http://lukeplant.me.uk/blog.php?id=1107301645
Just curious if you have any thoughts on the code architecture output by Flex Builder 2's "ColdFusion/Flex Application Wizard"? Would you know if it is closely aligned with any existing ColdFusion oriented frameworks?
In particular the RDS Wizard that generates CFCs based on table schemas?
Following summarizes the types of CFCs generated by the RDS Wizard (abridged from the Wizard's docs):
-- ActiveRecord style CFC, which includes all of the properties, get and set methods, and SQL methods in one CFC. -- Bean/DAO style CFCs, which creates two related CFCs: 1) A Bean CFC, also called a Value Object, which contains the property definitions and get and set methods; 2) The DAO CFC, which contains the following methods: read, create, update, delete. -- Data Service assembler CFC, which includes a Bean (also referred to as a Value Object), a DAO CFC, and an assembler CFC. The assembler CFC is required to take advantage of the Flex Data Services feature
Also, there are some Captivate demos made by Dean Harmon up on Damon Cooper's blog here: www.dcooper.org/blog/client/index.cfm?mode=day&day=22&month=6&year=2006
g
You summarized exactly the design patterns that are in the wizards so I'm not sure what your question actually is?
I don't intend to explain why I think that frameworks are the right path... for everything.
"A development framework is useful when your workforce is disperately or poorly skilled."
If this is what you think, maybe you should forget about frameworks alltogether.
A framework thould not be a looked at has a just another tool... it is much more.
Unfortunately I can't see any sane argument against using tools like ColdSpring or Reactor/Transfer, which really give you a lot of bang for your buck. In that situation they provide good functionality and help organize your application. If they offer a non-invasive programming model that allows you to port parts of your application down the road, that's even better.
Thanks. My apology for initially being unclear.
I guess I am trying to figure out where the code generated by Mike's wizard fits into the existing universe of application frameworks being employed by fellow COldFusion
developers.
I know that you have presented to ColdFusion developer conferences and user groups on "Comparing Application Frameworks". You now mention that you have discussed with Mike
Nimer the models that the wizard implements. I would be most appreciative if you can help me put this in context :-)
To restate my question: -- Does the code generated by Mike's wizard conform with any of the existing application frameworks used with ColdFusion? -- If not, is the code generated similar in any way to the coding practices implemented in any existing application frameworks used with ColdFusion? -- And if no on both of the above, would you consider the code generated by the wizard as potentially providing the basis for a new application framework that ColdFusion
developers might want to consider?
Best regards,
g
With regards to good developers - I do completely feel that good tools will never replace good developers - whether we're talking about IDEs, Frameworks, or anything else.
Regarding Flash - I'm not a huge Flash guy, but I do a lot of Flex development (in Flash I pretty much only do AS development). I like developing apps using an 'object think' approach in Flex and I don't use a framework in that environment either, typically... but, given the nature of Flex development, I'd be more inclined to use a framework for a Flex app than with a CF app for sure.
Again, I'm not really sure what your question is...
I, personally, use ORMs (Reactor and Transfer, specifically) so the wizard-generated code isn't useful to me. However, if I wasn't using an ORM, I could use the wizard-generated code with any of the (other) frameworks I use - and I could use either style.
I think you're confusing frameworks and patterns...?



