in reply to Why Scaffolding? Validation and learning.
I disagree. I think it encourages lazy evaluation -- in the coding sense -- because it defers in-depth analysis. Does it really help my evaluation to see a bunch of stub classes that subclass a parent? I suspect that framework disillusionment happens much later when discovering the holes in the framework that the scaffolding doesn't cover.
I also don't think it helps the learning process as much -- or at least, the help is limited to the initial parts of the learning curve for the framework. And if less code is generated, then the less learning that will occur. (Back to the stub classes point again.)
I think this is particularly true for "magic" scaffolding (sorry, Jifty) that is generated in memory on the fly instead of on disk. Tracing the action becomes a real challenge. ("Where did that method call get handled," followed by grepping through source.) Though from what I heard about halos in Jifty, this may be improving. I think it's a better design -- needing lots of stub classes seems like "ugly" design -- but the tradeoff is a steeper learning curve.
My view is that scaffolding helps most in these areas:
Easy tutorials -- makes it easy to demonstrate powerful features without bogging down in details. (I.e. advertising and attracting new users)
Standardization -- encourages one way to do it; makes it easy for other people to work on someone else's application; makes it easier to teach
Rapid development by expert users -- once people know the framework and are typing the same thing over and over, they just want to automate the basics.
As a side note, the talk about scaffolding applies just as easily to h2xs, ExtUtils::ModuleMaker, Module::Starter, etc. I think they're great time savers and they lower the cost of starting a new module. But most of the validation for me came when I tried to do something that they didn't do well. (Which is why I wrote ExtUtils::ModuleMaker::TT to address one part of it.) And most of my learning about tricky ways to package CPAN distributions came when I needed to do something those scaffoldings couldn't handle by default.
Consider what other code generators you use. What do they help you do? What do they help new people do?
-xdg
Code written by xdg and posted on PerlMonks is public domain. It is provided as is with no warranties, express or implied, of any kind. Posted code may not have been tested. Use of posted code is at your own risk.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Why Scaffolding? Validation and learning.
by philcrow (Priest) on Aug 21, 2006 at 13:55 UTC | |
by chromatic (Archbishop) on Aug 21, 2006 at 18:34 UTC | |
by philcrow (Priest) on Aug 22, 2006 at 14:20 UTC |