Slashdot Mirror


Zope X3 3.0.0 Released

tj8 writes "The Zope 3 development team has announced Zope X3 3.0.0 final. After almost three years of development it has finally arrived!"

29 of 229 comments (clear)

  1. There we go again... by selderrr · · Score: 3, Informative

    Hmm.. what could Zope be ? Lemme guess ?

    Another X-Prize contender ?
    DukeNukem 3 beta release ?
    A new competitor to the Roomba, but this time with shotguns ?

    oh well, maybe Zope is an open source application server for building content management systems, intranets, portals, and custom applications. The Zope community consists of hundreds of companies and thousands of developers all over the world, working on building the platform and Zope applications. Zope is written in Python, a highly-productive, object-oriented scripting language. ?

    1. Re:There we go again... by mabinogi · · Score: 5, Informative

      The point of a content management system is that it allows non technical users to maintain the site after initial setup.

      They also usually have versioning, workflow (ie, changes needing to be approved before they're published), notifications, and other stuff.

      If you've got three pages you probably don't need a CMS.

      They definitely do add a fair amount of overhead, but if your site has a significant amount of content, and / or you have a lot of people looking after the content, a CMS is the way to go. If you don't use a ready made one, you're eventually going to implement your own one way or another anyway - so sometimes it's easier to start with one from the outset.

      Zope however, is not a CMS, it's a Python based application server - it's just that most of the time that people use Zope, it's to run a CMS on top (or in the case of Plone, walk or crawl a CMS on top)

      --
      Advanced users are users too!
    2. Re:There we go again... by madprof · · Score: 5, Informative

      Are you joking or something?
      Frameworks provide a way to save time in development and maintenance of medium-to-large projects by providing facilitis that programmers will find useful.
      Zope's acquisition feature is very handy for me to write templated websites whle keeping my application logic separate from my HTML.
      When I have non-programmers editing the HTML (which I do) this is really handy.
      Zope gives me a web interface to use to get to all this code. This means my non-programmer has an easier time of it.

  2. PHP Alternative by Anonymous Coward · · Score: 3, Informative

    Zope is a Python framework.

    If you're looking for a PHP alternative, Drupal is as close as it gets. (www.drupal.org)

    1. Re:PHP Alternative by zorander · · Score: 3, Informative

      Drupal and Zope are not comparable at all--

      Drupal is a CMS, Zope is an Application Server. Drupal depends on an external web server, Zope is one. Zope is much lower-level than Drupal. You could compare Drupal with Plone fairly, though.

      There is no real PHP counterpart to Zope because PHP was designed for the web and for tight apache integration (this second part is more recently changing). Python has no builtin "web application" features, so Zope provides them (along with Quixote, Webware, Nevow, etc.) PHP does a lot more for you in the language proper, but is much less object-oriented (yes, I know PHP has object-orientation, but it's nothing like Zope/Webware style object publishing).

      But at the root, Drupal IS a CMS and zope is something you might use to build one. They're not similar in any way I can think of beyond that. I've worked with both, but correct me if I'm wrong?

  3. Sigh by Anonymous Coward · · Score: 0, Informative

    Yet another story without any info.
    Let's try this again:
    * What is Zope
    * What does it do?

    Perhaps you could've just copied a blurb from the actual mailinglist?

    Zope is an open source web application server primarily written in the Python programming language. It features a transactional object database which can store not only content and custom data, but also dynamic HTML templates, scripts, a search engine, and relational database (RDBMS) connections and code.

    -rylin

  4. And for the uninformed... by the+pickle · · Score: 5, Informative
    From the e-mail:

    Zope is an open source web application server primarily written in the Python
    programming language. It features a transactional object database which can
    store not only content and custom data, but also dynamic HTML templates,
    scripts, a search engine, and relational database (RDBMS) connections and
    code. It features a strong through-the-web development model, allowing you to
    update your web site from anywhere in the world. To allow for this, Zope also
    features a tightly integrated security model. Built around the concept of
    "safe delegation of control", Zope's security architecture also allows you to
    turn control over parts of a web site to other organizations or individuals.


    You'd think story mods would put stuff like this in the stories. With over 800,000 registered users, the odds are pretty damn good not all of us know what the heck [latest software project] is.

    I'm not even going to attempt to translate that bit into real English (you know, instead of buzzword-speak), but at least *try* to describe what the software does, guys...

    p
  5. Re:I don't know what it is... by MForster · · Score: 2, Informative

    Actually, it is :-)

  6. ruby alternative by OmniVector · · Score: 4, Informative

    well, since someone posted a php alternative i figured i'd post the ruby alternative too :P

    ruby on rails. very nice web framework

    --
    - tristan
  7. Re:I don't know what it is... by Anonymous Coward · · Score: 2, Informative
    Well, sort of, each module just returns a string that might or might not be valid xml. It's not like the architecture enforces it like Cocoon/Lenya.

    Still, a hell of a lot better than PHP Nuke :)

  8. Re:OK we need some input from the Zope heads by Qbertino · · Score: 5, Informative

    Is it really an Application Server and if so what services does it provide? I ask because the programmers tutorial makes it look like a run of the mill framework for generating webpages.

    Most that I can think of. It even comes with it's own webserver, so you can spare yourself the Apache installation. Good for testing out of the box.

    Is it compiled into native code? I know this is more a Python thing but even mentioning an application server built in a scripting language will have me ridiculed out the door.

    1st of all: Python isn't any more a "scripting language" (whatever that is) than Java (which you mention for comparsion in another place)). But to answer your question: Performance critical parts are written in C (and iirc a little in C++), the rest is Python.

    Any performance indications or comparissons? Anyone port Petshop and compare it against JBoss or Geronimo perchance?
    Compared to other solutions that have the DB totally seperated it is generally considered slower when used with no second thought on optimization. Which imho is the whole point of Zope, as it makes building data driven networked applications nearly as simple as clicking together a website in dreamweaver. My philosophy is to make the hardware fast and reliable and to keep speed optimizations as far away from the code as possible. This btw is usually more sufficent and measurabley cheaper for the customers aswell.

    Apart from that Zope offers nearly infinite methods for optimization, inlcluding load balancing functions for a Zope farm, intergration of classical external DBs and usage of Zope in conjunction with other products such as the Apache Webserver.

    --
    We suffer more in our imagination than in reality. - Seneca
  9. Re:OK we need some input from the Zope heads by Sweetshark · · Score: 2, Informative

    Is it really an Application Server and if so what services does it provide?
    It is. Its services are called "products" one of them is plone - a framework built upon zope - providing everything you need for a Community website (Calendars, news, Member homepages, Picture Gallerys, Forums etc.)
    I know this is more a Python thing but even mentioning an application server built in a scripting language will have me ridiculed out the door.
    Stop laughing. This is running zope. Google Cache

  10. NOT Zope 3 by L3WKW4RM · · Score: 2, Informative

    Uh, I can't cut and paste since Slashdot is hammering the Zope website, and I've been out of the Zope loop for a bit, but...

    IIRC, Zope X3 is the development backend, intended for Zope Product developers to port their Zope 2 products with. The real-deal Zope 3 (not X3) with an actual front-end for users won't be ready for a long time still. IIRC. Can someone verify or correct me?

  11. Documentation? by UsonianAutomatic · · Score: 2, Informative

    Zope can do impressive things, as Plone and the Boston.com website (runs on Zope) will attest... but it is maddeningly difficult to find decent documentation; at every turn one finds stub "This section still needs to be written" pages, or "This is really sort of out of date; the preferred way to do this is with ZPT, not DTML." (Upon following the ZPT link, you get "This section still needs to be written. In the meantime, try the DTML tutorial.")

    Or at least, that was the state of Zope's documentation when I was researching it about 8 months ago. It's really frustrating, because it's clearly a powerful, flexible system, but it seems like most of the docs out there only get as far as talking about how powerful and flexible it is.

  12. Confirmed. by Qbertino · · Score: 4, Informative

    Zope X3 is NOT , I repeat, is NOT Zope 3. It's an essential tool on the way to Zope 3, but not Zope 3 itself. So if you're not joining the Zope devteam, quit weighing in on their servers. :-)

    --
    We suffer more in our imagination than in reality. - Seneca
  13. Re:OK we need some input from the Zope heads by Feneric · · Score: 5, Informative

    Zope is an incredibly flexible web application development environment. It can be used for pretty much anything ranging from a full blown CMS with shopping cart facilities to a cutting edge XHTML/CSS showcase site. It works well with all Internet standards (including XML, XHTML, iCalendar, etc.) and most non-standards / semi-standards (PDF, Flash, RSS, etc.). I've even used it to on-the-fly convert definitions from within a CMS to be served by a dict server.

    The popular Plone is built on top of Zope / CMF. Ditto for Silva and Nuxeo CPS.

    Because Zope is so flexible, the sites it's used for generally look quite different from one another.

  14. Re:dont have any expectations... by ttfkam · · Score: 2, Informative

    1. Language does not determine speed. Algorithms do.
    2. Zope can use a relational backend as well. It's just not as fast most of the time.
    3. Caching is the key no matter what you use.

    --

    - I don't need to go outside, my CRT tan'll do me just fine.
  15. Re:Zope's Changing Philosophy by Feneric · · Score: 3, Informative

    It should also be observed that Zope X3 3.0.0 != Zope 3. Zope 3 will have full Zope 2 compatibility, but Zope X3 3 does not.

  16. Try Ruby (on Rails) by Anonymous Coward · · Score: 5, Informative
    Okay, I tried Zope once a LONG time ago. Back when I was hungry for a good dynamic object-oriented language and Python was the best I could find. Naturally I sought an application framework as well.

    Zope was pretty .. bloated, complex, confusing, opaque. And Python isn't suited to HTML templates at all (being whitespace-sensitive and all). So you need to learn Yet Another Way of generating HTML from code.

    If complexity and bloat and big programmer egos turn you off, try Ruby on Rails.

    Don't worry if you think you don't want to learn a new language, don't worry if you think Ruby on Rails is just another half-assed open-source framework that you'll explore, run into a wall, and discard.

    RoR is a low-level MVC framework, yes. BUT it is *so* efficient that you will be writing high-level components in *hours* instead of days or weeks. You'll create an internal discussion site for your company in a weekend, you'll build a CMS in a matter of weeks, you'll throw together a fully functional bug tracker in 500 lines of code... etc.. remember why you use dynamic languages like Python or Ruby in the first place? That's right, to solve problems FAST! You'll have the same feeling when using Rails "wow.. if the designers send me those mock-ups, I'll have the site finished *before lunch*.

    Here's a quick example of how to add a Customer object to your app once you create the database tables:
    class Customer < ActiveRecord::Base
    end
    Yup, that's all. It just automatically adds the right fields, sets the right defaults, and can create associations between objects as well (one line of code each).

    Now let's try adding a full set of list/edit/view/etc pages so you can get started with your app right away:
    class CustomerController < ActionController::Base
    scaffold :customer
    end
    Now head over to "http://yourapp.com/customer/new" and add your first customer!

    That's all.. how long does that take in Struts?

    Now.. just head over to rubyonrails.org and watch the demo video. That's all. Just 10 minutes of your life and after you watch the video you can go back to your Zopes and your Struts and your what-have-yous.

    Just watch the video.
  17. Re:Zope is fine, but... by shapr · · Score: 3, Informative

    Zope Page Templates (ZPTs) are much easier to deal with than JSPs (for example).

    ZPTs put all their programmatic stuff inside tag attributes. That means that any HTML or XML understanding tool will be fine with ZPT, and you'll still get scripting power.

    Here's a short example where a new <tr> is created for each user in the list user_list:
    <table>
    <tr tal:repeat="user user_list">
    <td tal:content="user/name">Name</td>
    <td tal:content="user/phone">Phone</td>
    </tr>
    </table>

    Thi is really nice because our economist project leader can happily write this sort of stuff without a week-long course. And I can write Python scripts that he can easily call from inside ZPTs.

    --

    Shae Erisson - ScannedInAvian.com
  18. Re:Has anyone here compared seaside and zope by MarkWatson · · Score: 2, Informative

    I have played with Seaside, which is a continuation based Smalltalk framework. There is also a Scheme based system that sort-of uses continuations. Anyway, try Avi's Seaside tutorial with a new version of Squeak (www.squeak.org). Very nice tchnology.

    Zope (and Plone which sits on top of Zope) is great - but it is targeted at non-technical users (once it is set up).

    Seaside is a new paradigm.

    -Mark

  19. Python IS suited to HTML templates by CemeteryWall · · Score: 3, Informative
    Python isn't suited to HTML templates at all (being whitespace-sensitive and all)

    Python has triple quoted strings (eg. ''' a string ''') which preserve whitespace.

    These can contain format strings like C
    myString = ''' Date of birth: %(day)2d%(month)s%(year)4d''')

    Fill a Python dictionary with the necessary values:
    myDateOfBirth = {day:10, month:'June', year:1944}
    Then
    myString % myDateOfBirth
    gives
    10June1944.
    The HTML string could, of course be longer (and still preserve whitespace:
    htmlString='''
    <html>
    <body>
    This is my date of birth: %(day)2d% (month)s% (year)4d.
    It was a %(dayOfWeek)s.
    </body>
    </html>
    '''
    and the dictionary might be
    myDateOfBirth = {day:10, month:'June', year:1944, dayOfWeek:'Wednesday'}
    This Python statement
    print myString % myDateOfBirth
    will output the following HTML:
    <html>
    <body>
    This is my date of birth: 10 June 1944.
    It was a Wednesday.
    </body>
    </html>
    But this seems too elementary. Have I misunderstood?
  20. Re:dont have any expectations... by diablobsb · · Score: 5, Informative

    ZoDB itself is not scalable... and zope is DOG slow if you run it alone...
    *BUT*
    the cool thing is that you can add a product called "zope accelerator" or something similar to that
    to your zope page and set up a squid in front of zope...
    On the squid config, you establish a trust relation pretending that zope (actually this zope accelerator") IS another proxy (sibling).

    what happens now is that:
    zope sets a expiry date for your non-changing documents to way ahead in the future (you set this value).
    and squid caches it... and NEVER asks zope for it until this content expires...
    if you change this content, zope will then TELL squid to invalidate it's cache...
    so the next user that goes in gets the updated page...

    Have you seen how fast squid can get? for serving stuff already in it's cache?

    and ZODB itself can't be clustered (actually it can, with ZRS [zope replication services] which is not free from zope.org]) zope can....
    and if you benchmark your web pages, you will notice that ZODB takes VERY little % of the processing time... with python + zope itself getting the objects and preparing them for presentation taking up the rest.

    So: you can build very scalable zope servers... you just need to know how to do it
    think in the lines of : 1 or 2 squids (they can be on the zope servers themselves, as squid takes little CPU), 2 zope servers doing load balance (zope does that natively) and a ZODB server (can be on one of the servers if you are budget constrained).

    or you can shell out some cash and get ZRS to replicate everything, including the zodb.

    --
    I for one, welcome our new hot grits... PROFIT!
  21. Experience with Zope/Plone by dangrover · · Score: 4, Informative

    Working at the RS/GIS Center at CRREL (a US army engineer research and development lab), I was asked to make a brand new website for the building, since the current one stinks. My boss was set on me using Plone/Zope, which I had mixed feelings about.

    Plone is a very nice CMS. It has a special wysywig editor for Internet Explorer and is very user friendly. The default skin (and this, I guess, was the reason for choosing it) looks pretty nice and is pretty elegantly coded. The template system that it uses is really cool and XML-based. It can run on any major OS, but there are some issues in moving a site across systems/OSes.

    However, the problem is that you can't just run it straight on Apache, like you could with a PHP/MySQL application. It runs its very own web server. So you have to make an entry in your httpd.conf to make a virtual host that goes to the port that the Zope server is running on (which the system admin doesn't want to do). It's actually gonna be hosted on its own server, just to make sure it doesn't upset any of the dependencies that their mission-critical stuff has. So if I wanted to use it for my own purposes on a shared server, I can't.

    One problem for me was that making custom content types required knowledge of Python, which I was able to fake my way through somewhat. This is made much easier with something called Archetypes, a bunch of classes and functions that does stuff for you.

    I guess the biggest thing that made me uncomfortable with it was that it uses a custom database format and a custom format for storing all the site's files inside of one actual file. And you can't just move that one file, there's other dependency issues and problems with paths if you move it to a different location or OS.

    I was, however, to develop the site much quicker with Plone/Zope than I would with developing my own CMS for that purpose or using an existing PHP one. And the end result is pretty nice. It's going to be very impressive. Once a co-worker finishes adding all the content to it, the new site will be up and tunneled from the location I linked to in this article.

  22. Develop on Filesystem. Not ZODB. by SlightOverdose · · Score: 4, Informative

    This is one of the biggest missunderstandings about zope.

    If you're working with code, you should be storing it on the filesystem. One of the biggest mistakes Zope developers make is to develop inside the ZODB using the textarea, which obviously puts them off zope.

    Through-the-web editing is there if you need it. It's handy, but for any serious development you should be developing filesystem products.

  23. Re:On Zope by Anonymous Coward · · Score: 1, Informative

    I agree completely, the application server rocks. I developed an event planning site http://www.planner.net/ with zope and Plone and had a lot of fun doing the coding, but the documentation can be a bit sparse. Still, it's not too difficult to figure out how to do something if you look through existing open source zope code, and there is a lot of that out there. Still, the poor documentation will significantly delay adoption of the new version (let alone the current version).

  24. Zope is to J2EE as wiki is to the web by Earlybird · · Score: 2, Informative
    • Is it really an Application Server and if so what services does it provide?
    "Application server" is an overloaded buzzword. What do you mean by it?

    Zope is a transactional object database with a security layer and an HTTP interface built on top.

    The object databases give you a structure for containing content; the security layer controls access; and the HTTP interface lets you publish that content in whatever way you like.

    The usual way to use Zope is to store content (eg., documents, images, external data sources), which is manipulated by logic (eg., Python scripts, SQL scripts) and rendered to (X)HTML (eg., with templates).

    To illustrate the power that Zope gives you, the entire management interface is built with Zope. To create a site, you build it inside your browser.

    If you think this is weird, think about wikis.

    Of course, Zope is powerful enough to offer alternative access mechanisms. You can build your site in your own file system, then upload it using WebDAV, for example.

    • I ask because the programmers tutorial makes it look like a run of the mill framework for generating webpages.
    It isn't. And there's nothing "run of the mill" about Zope.
    • Is it compiled into native code?
    Parts of Zope, and parts of Python, are written in C. Most of the code is in Python. Python is compiled into interpreted bytecode, but if you install Psyco, a profiler-based JIT compiler similar to Sun's HotSpot, it will be compiled into native code on the fly.
    • I know this is more a Python thing but even mentioning an application server built in a scripting language will have me ridiculed out the door.
    Python is not a scripting language, though. I think the day when people laughed at you for mentioning/using Python is long gone by.
    • Any performance indications or comparissons? Anyone port Petshop and compare it against JBoss or Geronimo perchance?
    I don't have any comparisons to offer, but Zope is fast and scalable. Zope's performance is nevertheless its weakest aspect. However, compared to many application servers, it flies.
    • What advantages does Zope offer me over a J2EE server?
    There are numerous advantages, but I'll just mention one: Time to market. I can prototype and deploy an application faster than it takes you to boot your IDE and create your EJB classes, and it will be modular, object-oriented, secure and instantly usable.

    I can go on vacation without my PC, and get a call from a customer who has a problem with a page. All I need to work is a PC with a web browser -- an Internet café will do.

    Zope is to J2EE as wiki is to the web.

  25. Re:Has anyone here compared seaside and zope by RevAaron · · Score: 2, Informative

    I've used both Zope and Seaside- though I've not used Zope since around 2002, started to use it in 1999. I'm not sure what is different about it now. I've used seaside more recently.

    Seaside, in some ways is similar to Zope. Both are web application frameworks written in a dynamic OOP language. Zope does a little more, IMHO, though Seaside is catching up. I mean that in a good way- Zope has a lot of bloat and a fair bit of kudgey hackery, and where Seaside is adding similar functionality it is usually in a better way. This probably has a lot to do with what the kind of power that the Smalltalk language provides out of the box, but there is also a fair bit of looking back at what Zope and other packages did well and where they could be improved. Hindsight is 20/20.

    I've seen folks remark that Zope is sort of a really-bloated version of Smalltalk written in Python, which is true in some ways. Zope takes Python and adds a lot of cool features to it, features that are very handy to have for writing web apps but have uses outside of writing a web app. Smalltalk includes a good many of these features that Zope adds to Python, though many of them are quite a bit more mature, having been tested and refined over the 25 year history of Smalltalk, whereas Python+Zope is a lot newer.

    Seaside is a lot simpler than Zope. It's a lot smaller, both in LOC and memory foot print. Zope does a lot more, which is both good and bad, depending on your background, your team and your project. A lot of companies don't want a huge package like Zope, but they don't want to have to start from scratch to reinvent the wheel yet another time. Seaside is great for situations like that. It has just about the right ratio of freedom vs features.

    I've used both Zope and Squeak, both for smaller personal and business projects, though sites that got no more than a couple hundred hits in a day. As someone who knows both Python and Smalltalk, I'd say that for me, Seaside was a little more productive. Once you know Smalltalk, it doesn't take long to start making stuff with Seaside. Smalltalk is as simple a language as one can get, with the exception of Lisp- and no, smalltalk isn't parens-land like lisp is! Even given a good working knowledge of the Python language, Zope has more of a learning curve than Seaside IMHO. It does a lot of things differently than most people with some dynamic web experience using PHP or Perl+CGI are used to. Not a bad thing at all, but it's something people have to get over before they are productive with it.

    Seaside, coupled with either an RDBMS like MySQL or PostgreSQL or an OODB like Magma, MinneStore, or GOODS, is a very powerful tool indeed. I personally prefer Magma myself, using an OODB over an RDBMS. It is a much more natural way of data storage and retrieval, IMHO.

    just my 2p. :)

    --

    Working toward a usable PDA environment in the spirit of Newton OS: Dynapad