-----Original Message----- 2) "Is DTML a web standard?" Answer: This question is somewhat misleading. DTML is used on the Zope server to dynamically render HTML back to the client. Someone viewing a Zope webpage in whatever web browser they use will NEVER see any of your DTML, and the browser doesn't need to know anything
This is a very good point. Cold Fusion uses proprietary tags too, but no one expects them to be a web standard. I'd think that the confusion lies in the use of the DTML moniker. It's so similar to HTML that people assume it is a web standard, I know I was looking for other standards references and sources when I started with Zope. I was referred to Zope by a colleague who was learning Python. But, the majority (99.9%) of my Zope work is done in DTML. I have NO external methods on my site and no desire to spend time learning Python syntax. I have enough to do with my VBScript, JavaScript, C++ work. DTML allows me to do rapid web-to-SQL work without the convoluted and MS-centric use of the IIS APIs and ActiveX and is well worth the investment. Zope and DTML syntax and usage is way too tied to python syntax to make a good standard anyway. I believe that the syntax derived from python coding is a fundamental limiting factor for Zope growth. A friendlier and more complete DTML tag structure would accellerate Zope aceptance by those that do not come from a Python background. Since Zope grew from Python and is primarily supported by Python pundits, I wouldn't expect to see much along these lines. Documentation out of the box is improving, but many products are documented with a "look at the code" mentality. This is an "old boys club" mindset that says that once I know something, you should know it too. As with any other system, designing it for ease of use it what makes it popular. Zope development efforts seem to focus on the Python technology rather than Zope itself. What I have seen of Cold Fusion (admittedly limited) focuses on what you can do with Cold Fusion, not what language Cold Fusion is written in. It would seem to me that a good direction for Zope to move would be to do a few things that would significantly enhance development time: 1) Create an expand DTML tag library offering functions common to most langauges and comparable to competitive systems. Remove the reliance on python syntax with basic functions like strlen() and substring() 2) Simplify the SQL interface of DTML methods by creating a new method type that integrates ZSQL Method and a DTML Method into a single entity for doing simple single query-and-report operations. 3) Shift the focus of Zope promotion and development to be Zope-centric with less reliance on Python-centric solutions. This would help to remove the barrier to use created by the need to learn Python coding. The result would be the opening of Zope to a non-programmer community (like alot of the Cold Fusion community) and a reduction in resistance to Zope development by management who is hesistant to bring yet another programming language into their shop (a concept I've seen often in this list). Support for external methods would still be maintained. 4) Redesign the Zope.org site to focus on how to use Zope to get things done. The current focus (on the home page) is a management overview of the Zope Concept that offers little real application content. The Learn Zope and Introduction and Tours offer zero information to the person who is actually going to use the product. The "Hello World" example is about it, expanding that concept a hundredfold would do the trick. Kind of a Do this to get this example library. 5) Expand the focus to embrace the Win32 market. Now, admittedly I am biased here, as a Win32 programmer. But the userbase is there and Zope easily blows away any learning curve Microsoft would require to learn their products. It would seem that converting the enemy's minions would be better than fighting them. "Zope: converting the enemy's minions" I like that :) Oh, and P.S... 6) Personal pet peeve - Improve handling of whitespace in DTML docs to reduce page sizes. Basic starting point: suppress all blank areas output between rendered DTML tags when no content is present. - Alan --------------------------------------- Zope tips and tricks site http://twsite.bizland.com/zopetips.htm