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!"

17 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. 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
  4. 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
  5. 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
  6. 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
  7. 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.

  8. 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.

  9. 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.
  10. 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
  11. 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?
  12. 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!
  13. 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.

  14. 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.