Forum OpenACS Q&A: Response to Article on ACS x Zope

Posted by Li-fan Chen on
In reply to my previous post...I want to mention programmer efficiency and beginner's learning curve.

Most people pick their web toolkits at first reading to the language wars.. the db wars.. the web server wars.. the os wars.. etc.. at first.

Then they figure out that, well, they can't really rule anyone out--though that's the initial (being realistic) intent. If they are really reasonable, they keep tab on all systems and as Kevin discovered, which for the best of both worlds. It turns out that all those flames did was to point out each component's specific advantages and disadvantages, and whether it meets your business needs.

That's what I am trying to get at. You can use anything, just make it work with your current contract. That's the goal. Scripting languages at the end of the day are easy to pick up. So is SQL. The TCPIP and CGI and web server apis. And a bit of common unix/nt/mac wizardries you pick up over time from books and friends. They all are basically pick-up-able. They all work just about the same way. As a matter of fact they are so simple (for the designer to code) that they end up being scalable (for the user)--almost by accident.

The machines will run them no matter what and handle complexity rather well--the problem is programmer efficiency (that's fundamentally the debate between Zope and ACS Kevin is trying to decypher).

ACS tries to answer the problem by assuming everyone in your company will want to sit down with some chinese take-out during lunch break and log-in--some day--maybe NOW (I know this from past work experience). It seems that's what ACS is aiming for. Oracle was a minor ugly detour that sorta ended that little dream though but initially when Philip had the dream it was with Tcl, simple SQL on Solid (dirt simple to admin), and AOLserver (very simple and design done right). So ACS initially was aiming for easier learning curve for users who want to dig into a web programming work flow (just as Python made Highschool students express difficult ideas quickly--objected oriented or not...)

Zope again is a dream come true for many. I have no doubt that after a swat team of clear headed experienced object orientation savvy programmers have their way with the system: they'll come up with their homebrew tool kit like ACS and optimally users can go in and add content, extend classes, poke and fetch from object pools. Elegant and done right--despite planned complexity. But the programmers know they can't get anyone to touch the code completely--it's object oriented, there's a trillion acrynums and middle-layers involved, although it's object oriented and programmer friendly--and looks good on paper--it is hard to understand for those who haven't had community college C++ training. But it'll survive in a large company IT sweat shop. Just don't try to show it to the secretary. Zope had no intention to let the secretary dig in a write a script based on a complex custom tool kit. Unless all secretaries in the future comes OOP/XML/XSL/Object Database/N-Tier ready from MIT's Secretaries Media Lab.

So Zope (and Python), ACS and (Tcl) are both aiming for good things..

But all is not well in paradise...

ACS has to face maturity, just as Zope has to, we all see how complexity can drive any newbie insane. Solid to Oracle is like moving from the suburbia Idaho to NYC. So is simple Python CGIs to your modern day Zope. So we see that due to complexity. All that benefit we seek from both systems in terms of programmer efficiency or learn-ability may diminish as time passes.

The question is what to do?

Both are on a great track, both seek to try all sorts of things to keep things simple. If you don't like big RDBMS, the DB in Zope will do fine and minimize complexity, so will OpenACS's PostgreSQL be simpler for users of Oracle. There are other ways to help. Python is reaching into the classroom in high schools. ACS is carefully maintained in clear crystal tcl no matter how big it gets, and a proper license (GPL) welcomes all newbies to dig in and learn the basic design patterns (written by the best) one would want them to pick up. So things are good, both good.