Forum OpenACS Q&A: Response to Marketing and damned lies.

Collapse
Posted by John Lowry on
Maybe I'm just stupid, but I've never understood the benefit of Vignette. I'm working with Vignette 5.6 right now and we have a bunch of heavy-duty solaris boxes. Nevertheless the application is so slow that we cannot serve up dynamic content on any of the popular pages on our site.

The architecture for Vignette's dynamic components seems to be very similar to a server side include. So you have a big overhead just to have one line of Tcl code execute within a page (or "template" as Vignette calls them). We ended up with some horrible hacks just to get something as simple as a cookie set. We had to run this code on the client side using Javascript. I expect we could overcome these problems by purchasing the hideously expensive "personalization" module.

Version control is a joke. I think you're supposed to purchase some kind of version control module. My colleague wrote some nifty scripts to export all the code into CVS but it would be far easier just to keep it in CVS in the first place.

The API is weak. You don't have nice features like filters that can run on every page. Your Tcl code gets eval'd so strange things happen with backslashes. The database API doesn't allow any of the nice features I'm used to from the AOLserver drivers, such as finding out how many rows were updated by a SQL statement. Its very non-intuitive to someone that understands SQL. For example, the SEARCH TABLE command is often used to execute DML statements.

The documentation is confusing. They don't clearly tell you what a procedure returns, and what errors it can throw. Debugging is hell. You don't get a nice stack trace. The error message doesn't necessarily point you to the line of code with the problem: "Error Occurred In Command Block At Lines 132-168" is not very helpful.

As far as price goes, I haven't any idea what it costs. Vignette keeps these things secret. But the numbers I've heard are astronomical. Plus the license terms are quite restrictive. I've heard that they limit the number of page requests per day you can accept before the cost goes up.

I think that one of Vignette's big selling points was that it enabled you to separate the HTML (presentation) from the Tcl (code) so that designers and programmers could easily work together. But I can't see any difference between a Vignette template and an AOLserver ADP page.

Another big "selling point" is that web pages are "cached". It sounds very impressive but in practice this just means that the entire page is written to the file system on the web server (which is why you need a server side include to have dynamic content). A smarter cacheing strategy would probably be to cache just the content, then dynamically format it with HTML when the page is served.

All the code is stored in the database (not the filesystem) so you need a proprietary Java client to manage your code. You can't use any of those nice tools like grep that you've learned to love for the past five years.

I could go on, but suffice it to say that I'm completely mystified how Vignette can make statements on its web site, like the one I pulled off its front page today: "Quickly deliver dynamic content in a stable, secure environment". Talk about "marketing and damned lies" In my experience, quite the reverse is true.