Become a fan of Slashdot on Facebook

 



Forgot your password?
typodupeerror
×
The Internet Programming Announcements IT Technology

Zope X3 3.0.0 Released 229

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!"
This discussion has been archived. No new comments can be posted.

Zope X3 3.0.0 Released

Comments Filter:
  • There we go again... (Score:3, Informative)

    by selderrr ( 523988 ) on Sunday November 07, 2004 @04:42PM (#10748836) Journal
    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. ?
    • now that I read my own post, I'm really scratching my head... What is a content management system actually for ? I mean, all content needs to be "managed" i none way or the other. Slashdot itself is managed content (supposedly content, and supposedly managed at least)... Even the simplest HTML page is managed content since tags were inserted.

      Honestly, can someone explain when one needs a framework like zope ? I have done some DB-based websites, but always felt like learning a complete framework was

      a) r
      • by mabinogi ( 74033 ) on Sunday November 07, 2004 @04:59PM (#10748976) Homepage
        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)
        • by xixax ( 44677 ) on Sunday November 07, 2004 @06:57PM (#10749880)
          The point of a content management system is that it allows non technical users to maintain the site after initial setup.

          A friend is doing lots of stuff with Zope and Plone. Besides the CMS, it is damn cool to watch reams of Python being generated directly from the UML model of the site (he's working towards round-trip). It looks like a great way to build complex sites and impose sanity controls on other people playing in your pond.


          Xix.

        • 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)
          And now you know why we don't develop for Zope or Plone anymore in house. Performance just got to be too big an issue, dispite (or perhaps because of) the nifty features Zope offers. Now that 3.0 is out, we'll take another look, but we'll probably stick with PHP/Apache.
      • by madprof ( 4723 ) on Sunday November 07, 2004 @05:05PM (#10749008)
        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.
        • Frameworks provide a way to save time in development and maintenance of medium-to-large projects...

          IMO, s/medium-to-large/large.

          Frameworks are a dime a dozen and they come and go by the dozens every day, so only very large projects that can commit to a framework, maintain it, and train their employees in it should actually use it. Otherwise, the employees will just sit like a deer-in-the-headlights and use the framework in such a half-ass manner that it would have been better to just use mod_perl.
          • by madprof ( 4723 )
            Depends entirely on circumstance but I'd always prefer to use something like HTML::Mason with mod_perl (damn me and my frameworks) as it does certain things really nicely, like caching and allowing easy templating.
            The "training of employees" things only applies to companies where they have not hired peopel with specific skills.
            Even then Zope is not that hard to learn, although the documentation is the worst I have ever encountered for such a serious project.
    • Hmm.. what could Zope be ? Lemme guess ?
      DukeNukem 3 beta release ?


      Can't be, they only took 3 years to release it.
    • Some things have to be assumed for the /. audience, though. I think a real geek should know what Zope is... Zope is to dynamic web sites what Apache is to static ones...

    • " Hmm.. what could Zope be ? Lemme guess ?"

      I know you are kidding but it's kind of a profound question. "What could zope be?".

      It could be web server, it could be a ftp server, it could be a CMS system, it could be an object oriented database. It is and could be all of those things.

      What it hasn't been so far is some sort of a J2EE like framework for python. That's what it should be IMHO. If zope took that role on it could be an answer to everybody who does not like java or at least prefers python to java.
  • PHP Alternative (Score:3, Informative)

    by Anonymous Coward on Sunday November 07, 2004 @04:42PM (#10748840)
    Zope is a Python framework.

    If you're looking for a PHP alternative, Drupal is as close as it gets. (www.drupal.org)
  • by Rosco P. Coltrane ( 209368 ) on Sunday November 07, 2004 @04:45PM (#10748861)
    In other news: ispel-fo 0.2.18 was released today. ispell-fo is a faroese dictionary for ispell based on Føroyski orðalistin til rættlestur (The Faroese Spellchecking Dictionary). Massive rejoicing of computer hackers on Capitol Hill was not reported.
  • by the pickle ( 261584 ) on Sunday November 07, 2004 @04:45PM (#10748869) Homepage
    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
    • don't harsh on michael's mellow
      isn't it enough that he has to work on a sunday
      poor guy

      just chill michael.
      have some more 420!
    • by Anonymous Coward
      Yeah, that drives me nuts. I still don't know (or care) what Ximian is.

      The news media is particularly careful to always title things, "Palestinian leader Yasser Arafat", as if there were anyone left who didn't know who he was. The guy can generate 35 press releases in one day, and he'll be mentioned that way in every one, just in case Otzi thaws out, turns on the radio, and needs to know who they're talking about.

      When a story like this comes up, I have to hit the page just to figure out whether I care abo
    • I strongly disagree. I understand that the audience for /. Has changed. But this is supposed to be news for nerds. If I would have to read through redundant information like this every time a story came up I'd think I'd abandon /. for technological news altogether.

      A three second search for zope on Google will give you all the answers you need or a helpful poster will karmawhore for you if you are to lazy or inept to do it yourself. But don't have the editors waste the time of all the real nerds who act
  • by Boss, Pointy Haired ( 537010 ) on Sunday November 07, 2004 @04:49PM (#10748903)
    ... but is it XML compatible?
  • Best Links (Score:5, Insightful)

    by the pickle ( 261584 ) on Sunday November 07, 2004 @04:50PM (#10748912) Homepage
    From the "Related Links" section, actual link titles:

    Best deals: The Internet Yee-haw, I'm gonna buy me this "Innernet" thing fer real cheap!

    Best deals: Announcements For when you need a cheap talking head to run your press conferences?

    Best deals: Developers Because we all know Slashdot is doing its best to put all the programmers whose jobs have been outsourced to India back to work. Or is Slashdot now working to find those companies better deals than their American developer staffs...? The mind boggles.

    Slashdot ought to re-title the "Related Links" section to "text-based ads that might be marginally related to the topic, but we doubt it."

    p
  • by Anonymous Coward on Sunday November 07, 2004 @05:06PM (#10749019)
    I have casually following discussions on zope. The package seaside [squeakfoundation.org] keeps coming up as also doing what zope trys to accomplish. Has anyone here compared the two. Has anyone ever used either before?
    • 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
    • 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
  • ruby alternative (Score:5, Informative)

    by OmniVector ( 569062 ) <se e m y h o mepage> on Sunday November 07, 2004 @05:07PM (#10749022) Homepage
    well, since someone posted a php alternative i figured i'd post the ruby alternative too :P

    ruby on rails [rubyonrails.org]. very nice web framework
    • You sir, are an OT posting language wars bastard. But, I thank you anyway! :+) I had no idea something so cool had been done in the Ruby camp. I shall be trotting off to investigate forthwith. Having said that, I did try installing Zope 3 just to see how it looks. You know, kick the tires and whatnot. And the stupid thing is, I don't know how to start the frelling thing. Zope 2 installed itself as a Windows service. Install the product, start the service, fire up your browser, and BAM there you go.
  • by kinema ( 630983 ) on Sunday November 07, 2004 @05:11PM (#10749052)
    It's good to hear that Zope v3 has been released. I now egarly await what I assume will be version 3 of the Zope based content management system [wikipedia.org] Plone [plone.org].
  • On Zope (Score:5, Interesting)

    by Qbertino ( 265505 ) <moiraNO@SPAMmodparlor.com> on Sunday November 07, 2004 @05:11PM (#10749059)
    Zope is a web application server with an integrated object relational database and a turnkey web administration frontend.
    It's basically a prototype of what application servers and databases are going to look like in 5 to 10 years.
    From having worked with Zope I can say the power of this tool simply is breathtaking. Technology wise it's way beyond anything else I've seen, including J2EE and the bazillion other Appservers that come with it and other to-date solutions like the ones based on .Net.
    It's downsides were the lack of consitent documentation for some parts, slow extra basic components (called "Products") and a lack of filtering in the Zope community. Like top grade Zope solutions right next to crappy beta level coding experiments. Lot of this has improved throughout the last 2 years though. Still missing is a larger support by ISPs running Zope on their servers.
    Bottom line:
    If anyone wants to build a special application with lot of custom server side programming, Zope is the powertool of choice. Technology wise it beats any other solution hands down. Think "The Linux of Application Servers".
    • Re:On Zope (Score:4, Interesting)

      by eviltypeguy ( 521224 ) on Sunday November 07, 2004 @06:56PM (#10749873)
      Object oriented application frameworks like Zope are the future:

      My company implemented our own solution using mod_perl and Oracle. (The application is about 300,000 lines of object oriented Perl, and no it doesn't look like line noise, programmers are thwacked soundly for writing bad code).

      Perl object classes are declared for each database table within the application. Scripts parse the SQL schema and insert what 'data members' (columns) belong to each object and sets up a hash that contains all the deletion rules (when is a record safe_to_delete, etc.), and a description of the length of each table field, etc.

      An XS backend (C code glued to perl) seralises and desiralises the object for each Apache request, once the object is ready to be written, the XS backend splits out the data and writes it into the table used by the object (using insert, delete, or update as appropriate).

      The result? A wicked fast application server environment that is very close to a 'rapid application development environment'.

      Example?

      Let's say a programmer wants to create a new 'Company' object.

      my $new_company = fqdbcn('Company')->new;

      ("fqdbcn" here means turn Company into a fully qualified database class name for the current application)

      The programmer wants to set some fields and write the new object to the database:

      $new_company->set(
      name => 'ABC Company, Inc.'
      active => 1,
      accounting_id => 'ABC001',
      );

      $new_company->write;

      The programmer later wants to load the object back up to update the Company record since they're changing their name.

      He has three choices (that come to mind) to load the object back in so he can update it:

      choice 1 (by id):
      my $company = fqdbcn('Company')->load(id => whatever_the_id_was);

      choice 2 (by accounting_id):
      my $company = fqdbcn('Company')->find(where => { accounting_id => 'ABC001' })->fetch;

      choice three (by name):
      my $company = fqdbcn('Company')->find(where => { name => 'ABC Company, Inc.' })->fetch;

      He can then update it like so:
      $company->set(name => 'ABC Conglomo Co, Inc.');
      $company->write;

      What if the programmer wants to delete a company object he has?

      $company->delete;
      $company->write;

      The advantage of our homegrown system is that we can use the application as an object oriented system, or we can pull data using SQL for reporting using the rdbms (Oracle).

      We're working on converting our framework to Postgre because $16,000 a year for Oracle is just way too freaking much for a 10 employee company (some would say too much for any company).

      I could go on, but suffice it to say that things like Zope are where Applications are going. After working with our homegrown framework (and all of it's iterations) for the past 5 years or so I can say without a doubt that once you adopt an object based model for writing applications you will never want to go back.
      • I should note before some people have a heart attack that the 300,000+ lines of code are split up over hundreds of Perl Module files... :)

        The biggest number of lines any one file usually has is 5,000 or so. Most are around 2,000.
    • Zope is pretty far away from being a competitor to J2EE. I really wish it was but it just isn't.

      What is lacking? Fine grained trasaction control, object relational layer (some people have data in relational databases), automagic SOAP publishing of objects, cross container communications (RMI at least) etc.

      I would love it if zope at least had SOAP support but all they have is XML-RPC.
      • Archetypes can be used as an object relational mapping, although it's quite possibly overkill.
      • Archetypes can be used as an object relational mapping (i.e. it can interface with an SQL database instead of the ZODB), however it's probably overkill for most needs.
  • by Timesprout ( 579035 ) on Sunday November 07, 2004 @05:14PM (#10749074)
    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.

    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.

    Any performance indications or comparissons? Anyone port Petshop and compare it against JBoss or Geronimo perchance?

    What advantages does Zope offer me over a J2EE server?
    • by Qbertino ( 265505 ) <moiraNO@SPAMmodparlor.com> on Sunday November 07, 2004 @05:36PM (#10749250)
      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.
    • 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. [zope.org] Google Cache [66.102.9.104]
    • by Dub Kat ( 183404 ) on Sunday November 07, 2004 @05:56PM (#10749415)
      "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."

      You're saying you'll be ridiculed for proposing an application server using an interpreted language, because it supposedly can't keep up with a J2EE server?

      Maybe Zope, Inc.'s [zope.com] customers disagree. Or photo.net [photo.net], a site getting over 10,000,000 hits a day that's written in OpenACS [openacs.org], which is itself written totally in Tcl?

      If you feel forced to keep using J2EE because you'll be ridiculed otherwise for using a "non-compiled" app server, go ahead. But other developers are likely gaining a lot of productivity by using more dynamic and "slower" interpreted languages. Check out this 22MB quicktime demo movie [nextangle.com] of the Ruby on Rails framework...pretty awesome stuff.

      Linux Virtual Private Servers for Professionals [aktiom.net]
    • by Feneric ( 765069 ) on Sunday November 07, 2004 @05:57PM (#10749421) Homepage

      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 [dict.org] server.

      The popular Plone [plone.org] is built on top of Zope / CMF. Ditto for Silva [infrae.com] and Nuxeo CPS [nuxeo.org].

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

    • Yes, Zope is an application server. Yes, it is written almost entirely in python. Yes, I've seen zope serve web sites that serve millions of hits a day. (well, zope along with Squid for a caching tier.)

      The design of Zope is significantly different than the J2EE spec, so if you are looking at things in terms of "what is the Zope equivalent of JNDI?", it will be difficult to see what it has to offer.

      I started to write a detailed explanation of Zope development here, but I realized that it was too Zope 2 ori
      • 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

  • Load (Score:2, Funny)

    But how well does it react to a massive amount of users? Wait.... thats the server.....
    • You can check a few other high (and relatively high) profile sites that run on Zope:

      Zope is also part of Massachusetts' "Open Source Trough" and will quite likely eventually power the entire Commonwealth of Massachusetts' site at www.state.ma.us [state.ma.us].

  • by greg.steffensen ( 827260 ) on Sunday November 07, 2004 @05:38PM (#10749269)
    I'm pretty well versed in Zope 2, and am worried that Zope 3 seems too serious. One of the more common complaints about Zope has been its learning curve; I see no reason that those complaints won't continue with Zope 3. In Zope 2, if you wanted to create a new custom feature, you could create a product. I'm still wrapping my mind around the new concepts, but in Zope 3, it appears that you have to create a component, and maybe an adapter, and maybe a view. And you'll be strongly encouraged to write unit tests for all of it. Also, Zope has 2 templating systems: DTML and ZPT. ZPT is supposed to be the more recent, more correct system, but as far as I can tell, most people, myself included, are continuing to use DTML (I actually think DTML is conceptually superior, since it offers more precise error handling). Both systems are in Zope 3, but it appears that the new DTML has had features actually removed from it, because they theoretically encourage bad code. Zope is written in Python, and one of Python's philosophical guidelines has always been "We're all consenting adults here." I'm worried that Zope 3 in general is strongly pushing developers to create formalized, overdesigned solutions instead of the conceptually simple ones that Zope, and Python in general, currently encourage. I'm worried that Zope is becoming more like J2EE.
    • by Feneric ( 765069 ) on Sunday November 07, 2004 @05:59PM (#10749440) Homepage

      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.

    • Dude, if you are trying to do anything past the really simple in Zope, you run into ALL kinds of complexity, and it isn't particularly well documentented or sensible complexity. bobobase modifcation times come to mind as well as the growning url problem from zope's not entirely intuitive acquisition features. And that is just simple stuff you need for fairly basic projects, there are a TON of these types of things. I like Zope enough, and I am on a couple of fairly meaty projects with it, but it is in despe
  • NOT Zope 3 (Score:3, Informative)

    by L3WKW4RM ( 228924 ) on Sunday November 07, 2004 @05:48PM (#10749348) Homepage
    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?
  • Documentation? (Score:3, Informative)

    by UsonianAutomatic ( 236235 ) on Sunday November 07, 2004 @05:52PM (#10749375) Homepage
    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.
  • Zope is fine, but... (Score:3, Interesting)

    by aquarian ( 134728 ) on Sunday November 07, 2004 @05:54PM (#10749394)
    ...I've never been able to make heads or tails of it. It has all its own cute names(TM?) for things, and another stupid pseudo-HTML markup language to learn. So developing Zope apps is way more confusing than it needs to be, even though day to day administration and use is pretty slick.

    Despite being a whole lot less slick, I find OpenACS a lot easier to create apps with. The page flow of the canned apps is more elegant too.
    • by shapr ( 723522 )
      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>
      <
  • Try Ruby (on Rails) (Score:5, Informative)

    by Anonymous Coward on Sunday November 07, 2004 @06:05PM (#10749488)
    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.
    • 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=''

      • But this seems too elementary. Have I misunderstood?

        Your example shows how to output HTML from Python. Most templating things (PHP, JSP, Perl's Template Toolkit) use HTML files, with code mixed in between, for instance within <% %> marks (JSP) - start a block with <% for (int i=0; i<10; i++) { %>, print a table row using the variable <%=i%>, and end the loop with <% } %>.

        Python mixed in with HTML in this way isn't really feasible because there's no way to indent it.

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

      Just keep in mind that you're comparing Rails today to Zope of yesterday. Apples to oranges, really.

      • Zope was pretty .. bloated, complex, confusing, opaque.

      Zope is clearly complex, clearly confusing, but I would be hard pressed to call it bloated. Opaque? One of the (minor) design problems of Zope is that

  • And a Pope on a Rope (yes, soap in the shape of the Pope, on a rope) ... now all I need for the next time I'm imprisoned for my geekly exploits is Zope on a Rope! Boo-yah.
  • by barwin ( 588144 ) on Sunday November 07, 2004 @06:57PM (#10749884)
    I used to work for a web development firm that slowly went from a primarily Java based atmosphere to an all Zope based model.

    Zope looks great on paper, and it was [relatively] easy to convince Management that it would "increase productivity", and would be "easy for the Java developers to learn and switch to". In all fairness, even the Java developers I worked with would agree that Zope offered some great features that other languages didn't offer. Aquisition, for one.

    In practice, our Zope projects ended up being disasters. Slow, difficult to develop and debug. (By default, all of your code editing is done using the web based editor, which is just a simple HTML TextArea input). It does NOT lend itself well to development teams of more than a few people, and is so inefficient that you *must* use a caching proxy if you expect any substantial amount of traffic.

    It's been about 6 months since I stopped developing in Zope, and I must say my sanity level has increased since then. Of course, I have not tried Zope 3 yet (which was rewritten from scratch apparently), so it definitely deserves a fair shot. I'm simply relaying my past experiences with the Zope 2.5 thru 2.7 versions, for whatever it's worth.
    • by SlightOverdose ( 689181 ) on Monday November 08, 2004 @01:25AM (#10752257)
      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.
    • By default, all of your code editing is done using the web based editor, which is just a simple HTML TextArea input

      Yeah, I couldn't believe it when I saw it. I thought it must have been just for the first step in Zope, then I searched where the files (template and other elements) were saved so I could access them directly with my editor of choice. No go, it's inside a database.

      I gave up Zope and stuck to PHP soon after that (and the fact I could not wrap my mind around their 'TAL' thingy, call me dumb).

        • Yeah, I couldn't believe it when I saw it. I thought it must have been just for the first step in Zope, then I searched where the files (template and other elements) were saved so I could access them directly with my editor of choice. No go, it's inside a database.

        You didn't look far enough. The "textarea" editing is optional.

        • I gave up Zope and stuck to PHP soon after that (and the fact I could not wrap my mind around their 'TAL' thingy, call me dumb).

        Each to his own. However, looking at the horrible

        • The "textarea" editing is optional
          And what other options do you have available then ?!?
          Each to his own. However, looking at the horrible code that PHP forces you to write [...]
          Yes, I agree that PHP is ugly. But it's easy and it does the job. I like clean languages, so I truly wanted to like Zope, but its deep non-intuitiveness killed my interest. Sorry.
            • And what other options do you have available then ?!?

            The most popular (and flexible) one is WebDAV, but Zope also supports FTP. Many editors (Eclipse, Emacs, vi) support seamless editing through these formats, either out of the box or with plugins.

            • Yes, I agree that PHP is ugly. But it's easy and it does the job.

            I would argue that doing PHP cleanly -- cleanly enough for it to scale with your application -- takes a lot of effort. At some point you will grow to reach a threshold where the benefits of P

    • Zope 3 is really a reformation of Zope 2. No more Acquisition, for instance (an idea that seemed good, but was really really horrible). Well, for everyone else, Acquisition is something where an object remembers where it came from (more or less); it's very reminiscent of dynamic scoping. People who are familiar with CS will probably note that dynamic scoping is considered a very bad idea, for all the reasons Acquisition ended up being bad.

      Zope 3 also strongly encourages development on disk, not throug

  • by dangrover ( 782060 ) on Sunday November 07, 2004 @11:46PM (#10751854) Homepage
    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 [army.mil] 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.
    • So if I wanted to use it for my own purposes on a shared server, I can't.

      All you need is an Apache Virtual Host that does nothing put proxy pass-through to a Zope instance. You can run multiple, independent Zopes all frontended with the same Apache.

      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 p

  • by LS ( 57954 )
    Does anyone have a short list of large scale sites that utilize Zope? Thanks!

    LS

"The great question... which I have not been able to answer... is, `What does woman want?'" -- Sigmund Freud

Working...