473,796 Members | 2,679 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Web tool kit : pro - cons ?

I'm looking for a Web Tool kit to build web pages with the following
criteria (in priority order) :
- easy to use, develop (reuseability of code, ...)
- flexible (ideally should run with Python CGIHTTPServer and/or with Apache
(with or wihout mod_python)
- possibility to have load balancing and/or caching (for very high loaded
web pages)

I've founded lot of tools ...

I've read the doc of most of them, I've tested some of them.
But, is there anyone "experience d user" who can give the pro-cons for each
of those solutions ? (or propose an another)

Is there a site who list the main charateristics of each of those Web tool
kit ?

Thanks
Zope (www.zope.org),
SkunkWeb (http://skunkweb.sourceforge.net/),
Quixote (http://www.mems-exchange.org/software/quixote/),
Twisted (http://www.twistedmatrix.com/)
Albatross (http://www.object-craft.com.au/projects/albatross/)
Cherrypy (...)
pwo (...)
....

Jul 18 '05
12 3037
"Remi Delon" <re**@cherrypy. org> wrote in message news:<3f24f3f7@ shknews01>...
The problem is that most people are "experience d users" with only a few of
the frameworks.
In order to find out all the little caveats of a perticular framework, one
has to use it for quite a big project (I'd say at least 6 months).
I don't think any of us have developed such big projects with more than,
say, 2 or 3 python frameworks. (in my case, I've only used Zope and CherryPy
for "real" applications. I've only "played" with the other frameworks).
This is why it is hard to have one person make a comparison of all the
frameworks ...


That's very true. I've been using Zope, Principia, and Bobo almost
back to their inception, and can't even grok other systems now. No
offense to CherryPy or any of the other ones. But once you get
proficient in a tool, it's hard to spend time with another when time
is.. Well. What is time and who has it anyways? :)

I've played with a couple of other Python web frameworks, I've even
written my own (way back in the day when WebObjects was the only major
app server on the market and *everything* else was home grown, and
Java was still a cute way to add animation to web pages ;). But aside
from the big jump to learning Zope 3 - I know I don't see any time in
my future for doing a serious (ie - more than 'hello world' or
'guestbook') evaluation of anything else. :\.

In response to the original question - things that I would use when
evaluating kits today is community size, maturity, etc. There are a
lot of "cool little idea" web kits that never reach completion, or
anything close to it (again - having written one, I know). Some
projects have been around for a while and have yet to reach a '1.0'
milestone. Some of those may just be reaching for perfection. Others
are left to languish while the core developers have to work for a
living, or find other solutions. Others may be in a state of 'yeah,
the current version is good enough', but a real 1.0 release never
quite seems to get made. For the past few years, I've made the SCM
decision for myself to never run on beta software, and seldom use
pre-1.0 software, no matter how good it may be, because we've got
dependability requirements from customers that we have to ensure are
met. And software that looks immature generally gets ranked low on
the list of evaluations. (of course, having a low quality 1.0 release
is not a good idea either ;)

Quixote and CherryPy both deserve attention for their templating
systems. I like what I've seen of each more than the many variants of
"Python Server Pages" out there that try to embed Python in HTML
(Python's block structure just makes this already messy style
messier).

Database Abstraction is another key issue. Zope gets points here not
only for the built in ZODB database, but for SQL Methods / Database
Adapters. There is nothing in Zope that is tied to Postgres, MySQL,
Oracle, Sybase, SQLite, etc. Yet it's always been able to use any of
them since before it was Zope. There's just a nice simple abstraction
layer that one seldom has to think about. Other tools try the O-R
mapping route for abstraction with varying degrees of success.
SkunkWeb has PyDO, WebWare has one (I can't remember its name right
now). Zope's model is nice because it's not intrinsic to Zope that
you use SQL - it's just a nice model to plug into if you need it, when
you need it. I don't know how other toolkits stack up here. Some may
just say "go find a Python adapter that works for you and do what you
want with it", which seems to be as good of a way to go as any.

Enterprise scalability could be another factor. SkunkWeb has
aggressive caching and tight integration with Apache as one of its
features for delivering dynamic chunks of content under high load.
Zope has its built in transaction system, which makes database work
nice. Database adapters and other objects can integrate themselves
into this system to ensure that either everything succeeds and gets
written, or everything fails and rolls back, and you're not stuck with
some data in one database but none in another (it's only as infallible
as the systems that support it. Thank gods for InnoDB in MySQL!).
Transactions are automatic (but can be handled manually, if desired) -
a web request begins a transaction, and a successful writing of the
response commits it. Any exceptions raised abort it. This becomes
one of those little subtle platform niceties that you forget about but
are eternally grateful for. Usually ;). Other toolkits may vary - it
depends on what itch they were initially trying to scratch when they
started. The transaction stuff in Zope goes back to Bobo and the
early BoboPOS (which became the ZODB) because of the work I assume
Digital Creations was doing with databases. Having gone through the
pain of half written text files generated by mediocre self-written CGI
scripts, this became an early favorite feature :).

In any case, this is just my evaluation list as it would stand today,
given my experiences over the last couple of years. I don't know how
rosy Zope would come up today if I were evaluating different
frameworks under this criteria - I always think it would be nice to
have time to really step back and evaluate some different options, if
only to get a fresh perspective (kindof like taking some time to
evaluate Ruby might give one a fresh perspective on programming
Python). But - there's just no time in the schedule to justify such
an undertaking, for better or for worse...
Jul 18 '05 #11
On Wed, 2003-07-30 at 01:28, Jeffrey P Shell wrote:
Database Abstraction is another key issue. Zope gets points here not
only for the built in ZODB database, but for SQL Methods / Database
Adapters. There is nothing in Zope that is tied to Postgres, MySQL,
Oracle, Sybase, SQLite, etc. Yet it's always been able to use any of
them since before it was Zope. There's just a nice simple abstraction
layer that one seldom has to think about.
Praising SQL Methods? Maybe I've been missing something, but SQL
Methods seem really primitive to me, certainly worse than the DB API
(though I suppose they preceded the DB API). The transaction stuff is
convenient -- if sometimes mysterious (like so many Zope things). But
it's not solving a terribly difficult problem.
Other tools try the O-R
mapping route for abstraction with varying degrees of success.
SkunkWeb has PyDO, Webware has one (I can't remember its name right
now). Zope's model is nice because it's not intrinsic to Zope that
you use SQL - it's just a nice model to plug into if you need it, when
you need it. I don't know how other toolkits stack up here. Some may
just say "go find a Python adapter that works for you and do what you
want with it", which seems to be as good of a way to go as any.


PyDO and MiddleKit (Webware's) are both independent of their frameworks
(it's kind of unfortunate that they appear to be tied, though), as are
the other ORMs (like my SQLObject). All three provide something
approximating business objects built around database rows.

My impression of Zope's SQL Methods is that they encourage distinctly
un-OO style of programming, and instead everything is done through a
heap of ad hoc queries and eclectic query results. At least, that's the
code I've encountered, and it's taken discipline to avoid doing the same
thing -- maybe there are better ways to use SQL Methods than what I've
been exposed to. (If so, it would be better if Good Zope Style was
documented, not just learned through wisdom born of failure -- but I
haven't found that sort of documentation for Zope yet).

Ian

Jul 18 '05 #12
In article <24************ **************@ posting.google. com>, Jeffrey P Shell wrote:
I work with some very talented designers. It used to be that they
would give us (the developers) their designs and we'd rip them to
shreds and they could never touch them again. Because now they were
in little bits and pieces and stuffed full of tags-within-tags, with
silly things like 'standard_html_ header' and 'standard_html_ footer'
(never really fitting a technical definition of header once complex
designs enter the equation) making it very painful to apply what they
would thing were rudimentary design changes.


jonpy works around this problem while also avoiding the limitations of
XML. The templates contain no code at all except <!--wt:name-->
"magic comments" and $$name$$ replacements. Both of these survive the
files being mangled by HTML editors and keeping as much as possible
out of the HTML file means that if you get given brand new
from-scratch design it is still a quick job to 're-templatify' the new
HTML.
Jul 18 '05 #13

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

1
1798
by: F. GEIGER | last post by:
Hi all, I'm dev'ing a control app, that has as a part of it a window showing CAD-drawings. So I'd like to display drawings coming from DXF files. In the first place I'd start displaying rectangles and circles, i.e. simple shapes. Nevertheless, the goal is to scan DXF files for the shapes to be displayed. PythonCAD comes to my mind. But, alas, yet I did not succeed in installing
8
2593
by: ted | last post by:
How does the speed of the Scons build tool compare with Ant? Right now with out Ant builds take around an hour. Hoping to speed that up. TIA, Ted
13
7650
by: Atlas | last post by:
I've developed years ago a small business application (about ten tables, basic relationships, 10 forms, 3 reports a few queries) with Borland Paradox 7, most of it developed with wizards and little ObjectPAL coding. Old'n'crappy. Seriuosly thinking rewriting it from scratch using MS SQL server 2000 as the DB platform. Low on time.
5
7642
by: Fred | last post by:
Not much expertise on XSLT and trying to understand it's uses when creating apps in VS.NET? If I wanted flexibility on the UI (View aspect of M.V.C.): - How does it compare with creating business components that can be consumed by WebForms, WinForms, mobile devices, etc? Is it even fair to compare the such technologies? - How about for cases when you need to display dynamic elements on the form/grid (as compared to knowing data elements...
1
1497
by: andrew | last post by:
Hi, I'm a C++ newbie, so apologies for this rather basic question. I've searched for help and, while I understand the problem (that the outer class is not yet defined), I don't understand what the "correct" solution would be. I am trying to model lists much like in Lisp, using a "Cons" object to hold two pointers - one to an Element, and the other to a further Cons. Cons is a subclass of Element, so lists can be nested.
7
1309
by: adsheehan | last post by:
Hi, I am embedding Python with a C++ app and need to provide the Python world with access to objects & data with the C++ world. I am aware or SWIG, BOOST, SIP. Are there more? I welcome comments of the pros/cons of each and recommendations on when it appropriate to select one over the others.
6
2354
by: P Jones | last post by:
Hi, I support an enterprise web application (IE client) built in VB6, with about 200 classes, serving about 7000 users, running on 3 clustered servers. I need to incorporate web reporting for the first time, so I am interested in learning what web reporting options are out there, and the pros and cons of each. In general I need to generate reports with XML documents as inputs, and make them available to all web users. I am partial...
21
11217
by: EmJayEm | last post by:
Can someone tell me the Disadvantages/Cons of web services? Thanks, EmJ.
0
1897
by: jorge_martelanz | last post by:
I would like to receive experiences/ideas/recomendations/etc. from the community about commercial tools available to tune bufferpools in DB2 for z/OS I am aware of: - BPA4DB2 by ESAI - Buffer Pool Analyzer for z/OS by IBM - Buffer Pool Tool by Responsive systems - Pool advisor for DB2 by BMC Any experience on these tools? Pros/cons? Any other you know/use? Thanks in advance
0
9685
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
9535
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
10242
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
0
10021
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
9061
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
1
7558
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
6800
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
5453
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
3
2931
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.