Considerations using Zope
Hi, At our company we are checking out some development platforms (must be crossplatform) we will going to use in the near future. Our list of platforms is (PHP, JSP, ZOPE / Python, J2EE - Java). Our company focuses itself mostly to webdevelopment for educational purposes. I proposed Zope to be included in this list because i believe it is a good, stable and innovative platform to use although still new to many. Because of my proposal and familiarity of Zope, i was selected to give a presentation which should (read MUST ;-) ) influence my colleagues so that zope will be THE development within our organisation for the future. Currently there are ten points of consideration set by my boss. These are not specific to zope but for all potential platforms. It would be very helpfull if you would take some time giving me input on these considerations. I will take them in account when making the presentation. Considerations: ================================== 1. Object Orientation In which ways is the language object oriented en which things are missing from the language. 2. Server and client objects. To what extend is it possible to define and use client side objects aside from server components. e.g. Possibility to include/use special tags which automagically instantiate the correct custom control objects. 3. Framework How diverse is the default library of Objects and methods. (Guess this is more a python thing besides the use of products) 4. Support How / howfar is the development platform used by developers. Is there a good knowledge base / FAQ's available. Are there good / many newsgroups available... ( Hmmmm, depend on response to this message ;-) ) 5. 3th party support Are there extentional development tools available. What kind of engines are available. ( python / zope ) Are extra components available. If so, which. ( yeah yeah, Zope product database is one) 6. Cost What do the essential development tools cost. What are the costs to commercially use the development platform. 7. Userfriendly How good is the development platform. Are all tools needed available. Is the platform intuitive to use. 8. Distribution What is needed to host a website using the platform. (no need to answer.. zope ??) 9. XML Support Which tools are available. 10. Developer value What is the value of a developer having good knowledge of the platform on the jobmarket. [11]. What are other pros/cons using Zope / Python as development platform. ================================== So far the list. Last entry is my own. Thanks in advance, Daniel Hooymans Sofware developer www.edufocus.nl
On Mon, Dec 16, 2002 at 03:38:44PM +0100, Dani?l Hooymans wrote:
1. Object Orientation
In which ways is the language object oriented en which things are missing from the language.
python is fully object-oriented... i'll leave the details to the language lawyers. We don't really have interfaces currently.
2. Server and client objects.
To what extend is it possible to define and use client side objects aside from server components. e.g. Possibility to include/use special tags which automagically instantiate the correct custom control objects.
there's no automagic for this in zope that I know of.
3. Framework
How diverse is the default library of Objects and methods. (Guess this is more a python thing besides the use of products)
well, you can't discount the huge number of Products available... aside from that, the python standard library is excellent, after 3-4 years I'm still finding new stuff there. if that's not enough, there's all the nice powerful 3rd-party libs like mxDateTime, PIL, NumPy, and Reportlab, all the other stuff at the Vaults of Parnassus, and nice resources like the ASPN cookbook.
4. Support
How / howfar is the development platform used by developers. Is there a good knowledge base / FAQ's available. Are there good / many newsgroups available... ( Hmmmm, depend on response to this message ;-) )
this list is excellent, #zope on irc is good, there are also lists for more specific sub-communities (plone, tal, etc.)
5. 3th party support
Are there extentional development tools available.
"extentional"? hmm. well there are tools to help zope work with other tools - e.g. ExternalEditor, and various hacks for dealing with CVS.
What kind of engines are available. ( python / zope )
engines?
Are extra components available. If so, which. ( yeah yeah, Zope product database is one)
some big ones: CMF, Plone, Nuxeo CPS ... too many others to mention.
6. Cost
What do the essential development tools cost. What are the costs to commercially use the development platform.
NOTHING!
7. Userfriendly
How good is the development platform. Are all tools needed available. Is the platform intuitive to use.
the famous zope learning curve is an issue ... it's quite easy to get through the tutorial and start putting things together. It can take months or years to grok the advanced stuff. Then you can do anything. :) Partly it's a documentation problem.
8. Distribution
What is needed to host a website using the platform. (no need to answer.. zope ??)
yes, but zserver is not generally considered robust enough for deploying "bare" on the internet. It is normal to put it behind something - apache, squid...
9. XML Support
Which tools are available.
plenty of stuff in the python standard lib. also zope supports xmlrpc.
10. Developer value
What is the value of a developer having good knowledge of the platform on the jobmarket.
well, there don't seem to be so many zope jobs around... but there are correspondingly fewer zope developers to fill them. It can be hard to find the right opportunity. But e.g. at my current job I was hired solely because of my zope experience.
[11]. What are other pros/cons using Zope / Python as development platform. ==================================
integration with filesystem devel. tools (revision control etc.) is still problematic. scalability of zope is very cool. With ZEO and the various cacheing strategies, you can serve a LOT of requests and keep building up with very little work. -- Paul Winkler http://www.slinkp.com "Welcome to Muppet Labs, where the future is made - today!"
Dear all, I have many files uploaded into Zope, How to export them into C:\ Not file by file, but the group together. Thanks, M. Jarrar --- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.408 / Virus Database: 230 - Release Date: 10/24/2002
Use wget or FTP. When you use them, the clients see the list of files/objects ( dtml, sql, pt, py and other source files only ) as normal text files which you can then download to your local system. you cannot download things like a db connection object or a ram cache manager even though you will be able to see them in the list of files. for FTP use any windows FTP client wget for windows - http://www.interlog.com/~tcharron/wgetwin.html hth AM Mustafa Jarrar wrote:
Dear all,
I have many files uploaded into Zope, How to export them into C:\ Not file by file, but the group together.
Thanks,
M. Jarrar --- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.408 / Virus Database: 230 - Release Date: 10/24/2002
_______________________________________________ Zope maillist - Zope@zope.org http://lists.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope-dev )
-- ================================================================== Aseem Mohanty Neurobehavioral Systems Inc, 828 San Pablo Ave, Albany, CA 94706 (R) 510 7696011 (M) 510 3014871 (O) 510 5279231 ================================================================== "I saw `cout' being shifted "Hello world" times to the left and stopped right there!!" -- Steve Gonedes ==================================================================
I'd echo Paul's comment under question #7 and copy it under question #4. That is to say, the documentation leaves something to be desired, especially for those wishing to run zope with apache and postgresql (the way, I've been told, to implement a robust server). My $0.02, ken Paul Winkler at 08:17 (UTC-0800) on Mon, 16 Dec 2002 said: = On Mon, Dec 16, 2002 at 03:38:44PM +0100, Dani?l Hooymans wrote: = > 1. Object Orientation = > = > In which ways is the language object oriented en which things are missing from the language. = = python is fully object-oriented... i'll leave the details to the = language lawyers. We don't really have interfaces currently. = = > 2. Server and client objects. = > = > To what extend is it possible to define and use client side objects aside from server components. e.g. Possibility to include/use special tags which automagically instantiate the correct custom control objects. = = there's no automagic for this in zope that I know of. = = > 3. Framework = > = > How diverse is the default library of Objects and methods. (Guess this is more a python thing besides the use of products) = = well, you can't discount the huge number of Products available... = aside from that, the python standard library is excellent, after 3-4 = years I'm still finding new stuff there. = = if that's not enough, there's all the nice powerful 3rd-party libs = like mxDateTime, PIL, NumPy, and Reportlab, all the other stuff = at the Vaults of Parnassus, and nice resources = like the ASPN cookbook. = = > 4. Support = > = > How / howfar is the development platform used by developers. = > Is there a good knowledge base / FAQ's available. = > Are there good / many newsgroups available... ( Hmmmm, depend on response to this message ;-) ) = = this list is excellent, #zope on irc is good, there are also lists for = more specific sub-communities (plone, tal, etc.) = = > 5. 3th party support = > = > Are there extentional development tools available. = = "extentional"? hmm. well there are tools to help zope = work with other tools - e.g. ExternalEditor, and = various hacks for dealing with CVS. = = = > What kind of engines are available. ( python / zope ) = = engines? = = > Are extra components available. If so, which. ( yeah yeah, Zope product database is one) = = some big ones: CMF, Plone, Nuxeo CPS ... = too many others to mention. = = > 6. Cost = > = > What do the essential development tools cost. = > What are the costs to commercially use the development platform. = = NOTHING! = = > 7. Userfriendly = > = > How good is the development platform. = > Are all tools needed available. = > Is the platform intuitive to use. = = the famous zope learning curve is an issue ... = it's quite easy to get through the tutorial and = start putting things together. It can take months = or years to grok the advanced stuff. Then you = can do anything. :) Partly it's a documentation problem. = = > 8. Distribution = > = > What is needed to host a website using the platform. (no need to answer.. zope ??) = = yes, but zserver is not generally considered robust enough for = deploying "bare" on the internet. It is normal to put it behind something - = apache, squid... = = > 9. XML Support = > = > Which tools are available. = = plenty of stuff in the python standard lib. = also zope supports xmlrpc. = = > 10. Developer value = > = > What is the value of a developer having good knowledge of the platform on the jobmarket. = = well, there don't seem to be so many zope jobs around... but = there are correspondingly fewer zope developers to fill them. = It can be hard to find the right opportunity. But e.g. = at my current job I was hired solely because of my zope experience. = = > [11]. What are other pros/cons using Zope / Python as development platform. = > ================================== = = integration with filesystem devel. tools (revision control etc.) = is still problematic. = = scalability of zope is very cool. With ZEO and the various = cacheing strategies, you can serve a LOT of requests and keep building = up with very little work. = =
From: "Daniël Hooymans" <d.hooymans@edufocus.nl>
1. Object Orientation In which ways is the language object oriented en which things are missing from the language.
Not only is Python a fully object oriented language, but since Zope uses the object oriented database ZODB you have full object orientation. No need to translate between a relational database structure and the object-oriented language. This is one of the main benefits of Zope, and a big contributing factor to the rapid development possible with Zope.
2. Server and client objects.
To what extend is it possible to define and use client side objects aside from server components. e.g. Possibility to include/use special tags which automagically instantiate the correct custom control objects.
You can use any tags you want. And you can use any client side objects/controls you want. But you can't *write* any client side objects in Zope, becasue Zope is a *server*. So I guess I don't really understand this question.
3. Framework
How diverse is the default library of Objects and methods. (Guess this is more a python thing besides the use of products)
It's *extremely* diverse. There are few things I have needed that doesn't already exist.
4. Support How / howfar is the development platform used by developers.
I don't understand what "far" means in this context.
Is there a good knowledge base / FAQ's available.
There is a good knowledge base availiable: the people using Zope. :-) zope@zope.org is the central of this. The documentation is not that great.
Are there good / many newsgroups available... ( Hmmmm, depend on response to this message ;-) )
zope@zope.org is a mailing.list, not a newsgroup. ;-)
5. 3th party support Are there extentional development tools available.
Yes.
What kind of engines are available. ( python / zope )
Engines? I don't understand this question.
Are extra components available. If so, which.
Tons. 669 is the current count. :-) http://www.zope.org/Products/all_products
( yeah yeah, Zope product database is one)
No, that is not an extra component. It's needed.
6. Cost What do the essential development tools cost.
$0
What are the costs to commercially use the development platform.
$0
7. Userfriendly How good is the development platform.
It's very easy to get started with, but there is a lot of things to know, and the more you want to do, the more you need to know. So it's a never ending quest for more knowledge, and you will never feel that you are fully learned. The Zope 3 project is trying to make that situation a bit better, so that you won't need to know so much of the internals of Zope to do the really advanced stuff.
Are all tools needed available.
Yes.
Is the platform intuitive to use.
Sometimes it's very intuitive, sometimes not.
8. Distribution What is needed to host a website using the platform. (no need to answer.. zope ??)
Right.
9. XML Support Which tools are available.
This is a question posed by somebody who doesn't really know what he wants to know, I think. :-)
10. Developer value What is the value of a developer having good knowledge of the platform on the jobmarket.
That depends a lot on the country you are in. Zope is big in Germany and France for example, but not in Sweden. There also seems to be quite a lot of Zope jobs in the US. I have no feeling for how the situation is in the Netherlands.
[11]. What are other pros/cons using Zope / Python as development platform.
The best part of it is the rapid development. It's quick to get started with doing your own products, and developing new features is quicker than any other development platform I've used. This is very much thanks to the clean and easy-read and extremely dynamic nature of Python.
1. Object Orientation
Zope is Object publishing environment. As far as I know, nothing takes object publishing as far as Zope does. The language to code in is Python, which is *nearly 100%* (or for all practical purposes) OO.
2. Server and client objects. ZPT! The best there is.
3. Framework This is where Zope really shines, IMO. It is a framework where you can change implementation of bits and pieces. Can't be better than this for making software that needs to last long.
4. Support 5. 3th party support Compared to Java, ASP or PHP, this is less.
6. Cost $0
7. Userfriendly How good is the development platform. Are all tools needed available. Is the platform intuitive to use. Here, Zope lacks IMO. Majority of "web developers" I've seen have little experience with software engineering. For such folks, Zope is a paradigm shift when compared to ASP/PHP/CF. If you've people with OO or RDBMS fundamentals. they'll love Zope. Pure HTML/CSS/Javascript crowd will probably hate Zope.
Zope's object database is a really good technology, but as long as I can't gracefully store my code in CVS, I'm hesitant :-) Problem with web is that it is never possible to separate code from content 100%. There are some inititiatives to enable this, but the day when Zope stores its objects in pure FileSystem will be when I see heaven on earth :-)
10. Developer value What is the value of a developer having good knowledge of the platform on the jobmarket. Probably little now.
May be some day economy will be down enough so that companies don't want to invest thousands of dollars making unmaintainable and voluminous Java/ASP/PHP code - then, managers might be looking for skills that can provide solutions; not to just code using some syntax. But that day is not here yet and people still look for *hot* technologies like Java or .Net. What Zope excels is in providing an extensible framework (and more) that does 90% of all you need to do for web application development. If you can read the documents, mailing list and manuals (don't laugh, there is a sizable developer population out there that cribs about lack of documentation unless you print out the appropriate page, underline the things they need to see and put it on their lap), you can easily make/customize the remaining 10% with little time. S Babu http://vsbabu.org/
Hi Sathleesh, ... *snip*...
Zope's object database is a really good technology, but as long as I can't gracefully store my code in CVS, I'm hesitant :-) Problem with web is that it is never possible to separate code from content 100%. There are some inititiatives to enable this, but the day when Zope stores its objects in pure FileSystem will be when I see heaven on earth :-)
while I agree with your opinions in the *snip*ed away part, I see many people complaing about the fact of zope using not plain files for objects. And any time I'm asking why zope should? Is there any RDBMS out there which stores its tuples in separate files? Anybody provided not using stone old DBMS used to work with a text editor on plain files to change data in tables? I think FileStorage and the many other options to store your objects (think about ZEO, BSDDBstorage, the storage adaptors for Oracle and stuff) are quite good when not even ideal. Its just like a filesystem - you might use a disk editor to change or save some data direcly on disk, but hardly anybody is doing this. The ZMI is by far not the ideal place to do havy coding. But luckyly we are not limited to this. The plain zope installation can be used via FTP and WebDAV. Some text editors support ftp, some DAV and any other can use ftpmount and friends. What could be handy, however, would be a cvs pserver implementation for ZServer to ease the use of standard programming workflow without resort to the ZMI all the time. (I have a rough start of this, handling connect and authorization so far. Unfortunately I have so little spare time to continue) Best regards Tino
Zope's object database is a really good technology, but as long as I can't gracefully store my code in CVS, I'm hesitant :-)
Forget ZClasses and do all coding as Python objects on disk. It's much easier, even.
Problem with web is that it is never possible to separate code from content 100%.
Many people say this, I still haven't seen any good reasons to beleive it. :-)
Tino, *snip*
I see many people complaing about the fact of zope using not plain files for objects. And any time I'm asking why zope should? Is there any RDBMS out there which stores its tuples in separate files? Nope! In fact, it an RDBMS use this, I'll not use it :-) It is just that Zope is a bit ahead of its times and people have difficulty accepting it. Daniel's original mail was about how to "sell" Zope, which is why I pointed this out because, believe me, I've had to fight this fight about why I chose Zope, quite a few times.
The following is slightly off-topic: ZODB's exposition via Zope that mimicks a filesystem is Zope's biggest advantage along with acquisition, IMO. However, when "selling" Zope, this is also its biggest disadvantage because people tend to associate hierarchical object database with outdated technology. Majority of us who learned programming after late 80's may not think excitedly about hierarchical or network databases. (Talk about being hypocrites, most of us support XML datasets which are nothing but hierarchical). Because Zope so effortlessly mimicks filesystem, people *perceive* it to support all operations you can do with a file system. I do too - old habits die hard :-) Often I see myself wishing for "Oh god, Zope makes all these things so easy. If only I had some kind of locking/tagging/versioning from which I can easily restore objects..." Another issue is people usually want to put data into DBs from which you can easily extract it, do batch updates etc. Mass updation in Zope is still not as straight forward (meaning, can someone knowing only HTML and Javascript figure it out looking at Google) like in SQL "update xyz set x=y where z=a". Yes it can easily be done using a Python script, but many newcomers to Zope may not know Python. [This has been my fondest wish for 2 years] Perhaps Zope Corporation should hire some designers and make very colorful ads on techie/business magazines about how Zope supports RAD, inexpensive hardware, makes different development groups work in harmony (eg: SQL folks and HTML folks can easily work without stepping on each others toes), cross-platform, open standards like DAV, FTP, XML-RPC...
What could be handy, however, would be a cvs pserver implementation for ZServer to ease the use of standard programming workflow without resort to the ZMI all the time.
Amen. Best regards S Babu http://vsbabu.org/
(a ton of people on this topic, but hey, more is better) 1. Object Orientation
In which ways is the language object oriented en which things are missing from the language.
Totally 100%. It gets real good when you think of web pages and folders as objects.
4. Support
How / howfar is the development platform used by developers. Is there a good knowledge base / FAQ's available. Are there good / many newsgroups available... ( Hmmmm, depend on response to this message ;-) )
There is a ton of information. Almost always an answer to your question, you just have to go to the big three. 1) Google. 2) Zope.org 3) This list.
5. 3th party support Are there extentional development tools available. What kind of engines are available. ( python / zope ) Are extra components available. If so, which. ( yeah yeah, Zope product database is one)
You can use a host of tools available to edit zope code (python). If you are talking products, the Zope product database it is the best. If you need more try the big three (above).
6. Cost
What do the essential development tools cost. What are the costs to commercially use the development platform.
$0 + $0 = $0. Hardware and people are your cost. It runs real well on very low end hardware and can scale really well with ZEO if you need it to. The best example of scale I know of is http://www.cbsnewyork.com (48 linux servers).
7. Userfriendly
How good is the development platform. Are all tools needed available. Is the platform intuitive to use.
I am not sure I agree with everyone here, but Zope is good in the begining and the end. In the begining to start using it, it is very easy. You have methods, dtml, html, versions, ftp. All easy stuff. When you are a pro, Zope is also very easy to bring a concept to reality. I think the toughest part is the middle ground, where you know enough to know about objects, python, products, but no real programming background (sadly, this is where I am). I can still do a ton, but some of the more "prgramming 201" concepts are tough.
8. Distribution What is needed to host a website using the platform. (no need to answer.. zope ??)
Server (boxen), OS (Windows, Unix, MacOSX, Solaris?) and some connection to the interner. I started building and hosting on 300 MHz pentiums with 64 MB or Ram off of a 384 K SDSL line and have moved up to 1 Ghz Athalons with 512MB ram on OC3. Zope is no speed demon but it is doing SO much it is amazing how fast it is. It also responds well to Mhz and Ram as well as caching. Again, Zope can scale as far as you want it to go.
10. Developer value What is the value of a developer having good knowledge of the platform on the jobmarket.
Getting better. Good OO knowledge works anywhere and going from Java -> Python -> Java is not supposed to be hard. Hope this helps. I had to convince my old company (dotbomb) to go Zope over Vignette. It took hours of work, papers and in the end, I just spend a weekend and built a very working prototype of something that has been built in .asp in about 6 weeks. I got to do one site in Zope and another and another. They were always impressed with what it could do but weary of the support and "freeness". Hopefully that has changed in the market now for smaller companies. Amazing what happens when you don't have a million dollars to spend. BZ
participants (10)
-
AM -
BZ -
Daniël Hooymans -
ken -
Lennart Regebro -
Lennart Regebro -
Mustafa Jarrar -
Paul Winkler -
Satheesh Babu -
Tino Wildenhain