Which Python web framework is most like Ruby on Rails?

Ben Sizer kylotan at gmail.com
Wed Dec 21 08:45:09 EST 2005


Paul Rubin wrote:
> "Ben Sizer" <kylotan at gmail.com> writes:
> > Unfortunately, that doesn't really satisfy the GPL's concerns. The work
> > arguably "contains or is derived from" Karrigell,
>
> I don't see that.  The web app gets run by Karrigell like a CGI script
> is run by Apache, like a Linux app is run by the Linux kernel.

The web app uses parts of Karrigell though - things like the QUERY
variable or or Session object. That is analogous to linking with
Karrigell as a library.

> The LGPL has fallen into some disfavor at the FSF, and I don't see
> Karrigell as a library.

The LGPL ultimate subverts the intent of the GPL in that it lets people
use open source code without having to give much back. Still, it is
'better' in that regard than BSD or zlib. The only practical difference
in this case would be that the LGPL makes it clear that there's a
separation between your code and Karrigell code.

> The application is not an integrated blob
> combining Karrigell and user code, from what I can tell.  Rather, the
> user code is run under Karrigell's control, like Karrigell itself
> is run under the Python interpreter.

I see your point, but I think 95% of Karrigell apps will end up making
calls back into the framework. The intent of the GPL is arguably that
if you rely directly upon some GPL code for your application, your app
falls under the license.

From: http://www.gnu.org/licenses/gpl-faq.html#MereAggregation :

"What constitutes combining two parts into one program? This is a legal
question, which ultimately judges will decide.[...] If modules are
designed to run linked together in a shared address space, that almost
surely means combining them into one program.

By contrast, pipes, sockets and command-line arguments are
communication mechanisms normally used between two separate programs.
So when they are used for communication, the modules normally are
separate programs. But if the semantics of the communication are
intimate enough, exchanging complex internal data structures, that too
could be a basis to consider the two parts as combined into a larger
program. "

This is largely academic since the author seems willing to reconsider
the license; but it's an interesting point for applications like this
generally, especially in Python where 'linking' is a little less
stringently defined than in C/C++.

-- 
Ben Sizer




More information about the Python-list mailing list