Prevayler: Over-The-Top Publicity, Good Looking Product

11 PM March 19, 2003
After all the good reviews I thought I'd have a look at Prevayler's web site.

I found myself reading the entire thing with hype filters up. Normally I can read through such garbage and to the facts underneath. Comes from being a veteran of the Extreme Programming Wars. But the Prevayler site is truly rabid, and some of the hype got through those filters. Here's one example I initially dismissed as simply an excess of enthusiasm:

Of course, there will be all sorts of excuses to hang on to "ye olde database", but at least now there is an option.

By 'excuses' I guess they mean stuff like "I have a terabyte and a half of data" (a Prevayler database must fit in RAM) and "My entire business processes are based off of reports that run against the SQL database".

And another:

Prevalence is by far the fastest, simplest and most transparent business object persistence, ACID transaction, fault-tolerance, replication and load-balancing architecture we know. --Prevayler Team

Considering its source, hardly a recommendation that I'm going to take too seriously, but nice to see that you have confidence in your own work.

But this is the nugget that made it past the normally impenetrable hype filters:

Remember: you will no longer be writing feeble client code. You will now have the means to actually write server code. It's the way object orientation was intended all along; but it's certainly not for wimps.

Pardon? Is that supposed to make me like Prevayler? Questions that spring to mind...

  • Why is client code feeble? Is all client code feeble, or just some? Would it be better if we all stopped writing clients and started writing servers?
  • Didn't I already have the means to write server code? (I thought I did, or at least that's what my resume's been saying for the past seven or eight years.)
  • Can "object orientation" intend anything? And how do you know what it intended? And anyway, wasn't OO originally intended for solving simulation problems?
  • Is everyone who doesn't use Prevayler a wimp? Or is Prevayler so difficult to use that you can't be a wimp if you do use it?

What a load of ill-conceived, patronising, self-serving and naive poppy-cock!

The PrevaylerTeam would be well served by throttling their enthusiasm a few dozen percentage points. With all the chest beating and put-downs, the site currently reads like it was put together by a bunch of 16 year old hax0rs. Not a good thing if you are trying to place an open source project more into the mainstream. Honest.

In a sentence, visitors to should be able to learn about Prevayler technology without being offended or ridiculed.

And the technology is impressive. Prevayler appears to be based on simple idea, with a solid implementation, spectacular benchmarks, and reasonable usability.

From my point of view, Prevayler has three main limitations:

  1. The model must fit within the JVM's memory.
  2. Schema evolution is limited (hindered) by all the usual serialized object issues.
  3. You can't see your data in any way that your program doesn't explicitly allow. (in contrast to SQL, where your data is open to anyone who can run a query.

So long as your application fits within these boundaries you will be fine, but if you need to step outside these boundaries, you may have a big problem.

I plan to use Prevayler in the next few months for some prototyping work. If that goes well, Prevayler will have a permanent place in my Java toolkit.

By alang | # | Comments (0)
(Posted to Software Development)
© 2003-2006 Alan Green