Bill, Thanks for feedback. Responses are below.
On 09/02/2012 01:46 PM, Bill Stephenson wrote: > Hi Mark, > > Nice to hear you're going to move forward with the CAP project. > > After reading your comments about CGI.pm, and comments from others > here, I'm left wondering about a few things. If you're ditching > CGI.pm altogether I know that I'll have to as well. > > That's not going to be easy for me. I love the simplicity of these > features: > > $cgi = new CGI; > print $cgi->param('contact_name'); > $cgi->save($FILE); > $cgi = new CGI($FILE); > > What will happen to them? > > The simple name=value data format used by the save routine is the same > as the client side data storage in HTML5 (sessionStorage), and I like > that it's easy to understand and read this format, and that I can use > it on both ends (client/server) of my apps. There not yet specific plans for how CGI.pm will be replaced. How do you use the save/restore feature? I can say that the PSGI environment does seem a good deal cleaner for dealing with "input". In CGI, the input by default comes from STDIN (but large content like post requests), and several environment variables. This makes the process a bit mysterious, as well as being action-at-distance a source for confusion. For example, if something has read and consumed STDIN, it may not there again for something else to read. With PSGI, the input is explicitly provided through a Perl hashref, and the body content comes through a standard file handle. While I haven't seen a implementation save/restore for PSGI request objects, it strikes me that it would be pleasant to build. > What will happen to CGI::Session? > > These are all simple, and easy, and familiar. Will the new project > have these, or something similar? Like CGI.pm, it will continue to exist, but over time I expect I will quit using it myself and move on to something else. Plack::Middleware::Session is an obvious choice to consider for this. I expect I will personally want to use the "Pure SQL" approach to session storage, so I will need to first write my own storage driver for it. I will appreciate moving away from something based on CGI.pm, towards using another tool that is shared with other frameworks. http://search.cpan.org/~miyagawa/Plack-Middleware-Session-0.15/lib/Plack/Middleware/Session.pm https://metacpan.org/module/CGI::Session::Driver::pure_sql Those who wish to remain with CGI::App / CGI.pm / CGI::Session are welcome to do so, but will become responsible for more or all of the maintenance of them. > As far as I know, Catalyst, Dancer, and Mojolicious do not have the > "save" and "new from file" routines, they use SQL and a third party > database engine only. I know this is probably not something that most > developers would miss, but I think it's pretty handy. I also think > that it's a good place for beginners to start learning to use a > framework. One can go a long way creating apps before they need an SQL > database, and becoming proficient with SQL is expensive. For the apps > I build it's like swatting a fly with a bulldozer. I'm personally a big fan of SQL and think the related investment is well worth it. I find the basics rather comprehenable: "INSERT INTO table VALUES", \%values; "UPDATE table SET",\%values; "DELETE FROM table WHERE id = ",\$id; "SELECT * FROM table WHERE id = ",\$id; ( The above syntax works with DBIx::Simple + SQL::Interp, my preferred access method. ) However, Plack::Middleware::Session does support a file-storage backend: https://metacpan.org/module/Plack::Session::Store::File > Anyway, I also want to thank you for all you've done with CGI.pm and > other modules I use everyday. I, like so many others, have been > standing on your shoulders for years, and I want you to know that I > really do appreciate what you've done for me. If you ever get down to > the Ozarks all the beer and Skittles are on me! > > Kindest Regards, > > Bill Stephenson Thanks! Mark ##### CGI::Application community mailing list ################ ## ## ## To unsubscribe, or change your message delivery options, ## ## visit: http://www.erlbaum.net/mailman/listinfo/cgiapp ## ## ## ## Web archive: http://www.erlbaum.net/pipermail/cgiapp/ ## ## Wiki: http://cgiapp.erlbaum.net/ ## ## ## ################################################################