Re: Re: Web app frameworks - I am totally confused!by lachoy (Parson)
|on Oct 06, 2003 at 13:41 UTC||Need Help??|
I'm the OpenInteract author, and there's no apologies necessary. These are all valid and points I wish you would have brought these thoughts up on the mailing list so they'd be in the meme-stream. But here's a few responses. Note that some refer to OI2 which is currently in beta 3 and quite usable.
copying and renaming PM files: Yep, this stinks. This is a great example of unnecessary overengineering -- it was done so that you could run multiple OI installations in the same Apache/mod_perl process. But who does that? OI2 does away with this entirely.
deployment: Not much to do about this. It would be cool to have installation adapters for RPM, Solaris, Debian, etc., and it probably wouldn't even be that difficult for installation. (At least in OI2...) But then you have things like packages installing SQL schemas, data and security and it might get a little tricker, although I'm not familiar with how much you can do with Debian/Solaris packages.
debugging: You're absolutely right about SPOPS being difficult to debug. OI2 uses Log::Log4perl for logging and SPOPS will soon as well. This makes it easy to set debugging levels at a fairly granular level.
security: This is a design disagreement. My feeling is that doing field-based security will lead you down the road of chaos. (I've vacationed there, awful place.) Not only is it difficult to program, but it's very confusing for users to configure. Instead I've found it's best to split these into separate objects that each have different security settings.
You're right that it's mostly a one-man show. I think OI2 is more loosely coupled to allow people to work on different pieces as needed. Plus a lot of the needlessly complex stuff is gone.
It's interesting that you mention Struts because a number of the changes that went into OI2 were inspired by Struts. Since Perl isn't typed like Java there really isn't the need for the Action Form classes Struts uses except maybe for validation and that can be handled in other means. But the handlers that actually execute your application are now object methods, not class methods, and the HTTP request has been broken down into separate request/response objects. (That's more of a servlet thing, but still...)
Hope that's useful. It would be great if you'd take a look at OI2 -- to help, there's a lot more documentation than OI1 :-) -- and contribute some ideas based on your experiences with other frameworks.