I think one of the upcoming meetings about all the all the web frameworks out there could make an interesting evening of discussion.



-Kevin



On Apr 18, 2011, at 1:03 PM, Mike Orr wrote:

On Fri, Apr 15, 2011 at 11:56 AM, Matt Towers <[email protected]> wrote:
Hi Everyone,
Just joined the list today and looking forward to learning more.
My company is in the process of ditching PHP as our web framework and
strongly leaning towards Python, though Ruby is in the running as well. I only have limited experience with both but will be ultimately responsible for the application. Can anyone here comment on the relative strengths of Python over Ruby (or vice-versa)? Some of the factors we're considering
are:
How do the learning curves compare for someone with a strong background in traditional object oriented design and languages (C++, Java, C#, etc.)? Is there a decently sized pool skilled Python web developers in the Seattle
area?
Given the maturity of Python, I assume there are large number of developer tools and libraries out there, but in terms of web development are there any
obviously missing components found in other frameworks?

Hi Matt. I've been a Python web developer for eleven years so I've
seen libraries and programming trends come and go. The language is
"complete" in terms of what web developers have needed. And since a
lot of companies are using Python web software including Reddit,
Google, movie animators, scientific researchers, ITA (airline
reservation database) and the like, they've filled in any missing
pieces. The current generation of frameworks since 2005 (Django,
Pyramid/Pylons, TurboGears, etc) were written to compete with Ruby on
Rails, so they provide the same concept even though they may differ in
specifics. Python's biggest growing pain is probably its
package-downloading-and-installation utilities which are still
fragmented (pip vs easy_install etc); this sometimes necessitates some
extra work when installing packages. But that's a minor annoyance
that's only indirectly related to web development, and the developers
are working to clean it up.

I haven't used Rails or Ruby myself so I can't compare their features
to Python. I started to look at Ruby but found its syntax too
Perl-like for my taste. (I am an ex Perl and PHP user.) But there are
people on the SeaPIG list who use both Python and Ruby so there's
overlap between the user groups.

The first think you'll notice about Python is the large number of web
frameworks. The difficulty is in choosing. The good thing is that
they're more interoperable than they were five or even three years ago
so they're converging. They'll probably never converge into one
because there are a few different patterns for designing web sites,
and different people like different patterns. I'm involved with a
project called Pylons that over the past year has taken several
frameworks under its umbrella and merged their developer communities,
so that they can share ideas and implementations. Their current
project is Pyramid, which reached 1.0 a month or two ago. It was
designed to support multiple design patterns, and these are gradually
being implemented by higher-level software, so that the app developer
can choose which pattern he prefers and change his mind later, without
having to abandon the framework and go to a completely different one.

My main suggestion is that when exploring Python, take a look at
several of these frameworks and consider which one best meets your
needs and inclinations, as well as your possible long-term needs.
Django has been mentioned several times and it's one of the largest
and has good documentation, but it can also give the impression that
Django is Python web development and there's nothing beyond it, and
that's not true. it all comes down to what kind of person you and your
company's developers are, what kind of site you're building and your
particular needs, etc. Django has good documentation and a large user
base; on the other hand it's more "monolithic" and less interoperable
than most Python alternatives. It's great if you find what you need in
Django. It's less great if you find that what you want is outside
Django. For instance, Django has an object-relational mapper (to
connect your Python objects to database tables and columns) which is
widely seen as easy to use, but if you go beyond it (e.g., to
SQLAlchemy) you'll find that many of the framework's features don't go
with you (e.g., the db admin screens). This is a limitation which may
not be apparent at the beginning. Again, it all comes down to what
kind of libraries you're looking for and which features are most
important to you.

If you look around and later want to have a discussion about your
needs and the advantages/disadvantages of various Python packages, we
can do that either at a SeaPIG meeting or convene a small group
outside the meeting to discuss the possibilities.

--
Mike Orr <[email protected]>


Reply via email to