PieBasicConcept

Basic Concept

Many of the latest content management systems of the Wiki family bristle with sophisticated features, bells and whistles, that help to place this particular piece of software in the lead and ahead of its competitors. Some of these functions are even helpful, or at least can be considered nice to have.

Pie is different. Pie has been developed and written from scratch with its primary directive being simplicity, speed and efficiency, while still being easy to comprehend (both, from a user's as well as from a developers point of view). Being easy to take in, Pie proves to be adaptable and extendable.

Interpreter vs. Compiler

Many of the latest derivatives of the Wiki clan (those that are almost able to cook coffee) lack performance in every-day use, even when run on fast servers, the reason for this certainly not being a lack of programming skills of its creators, but that fact that they heavily interpret their pages at run-time. While this approach provides authors and users with an almost infinite amount of options of how to manipulate the output when being requested by a user, it certainly costs valuable CPU-cycles. You, the recipient, have to sit and wait.

_This is where Pie tries to make a difference._

Pie does not try to cache pages it has once generated as do some of its more sophisticated cousins, but refrains from interpreting page sources at run-time at all. Instead, it compiles your page once you enter it, furthermore just conveying the precompiled output to those requesting it.

No doubt, this approach prevents Pie from being able to provide its users with all kinds of features that only could be offered, if its pages were interpreted at run-time. It also lacks flexibility and adaptability in regard of automatically reformatting its output once alterations are made on a system-wide basis. But this is a toll Pie is gladly willing to pay for the sake of efficiency.

To understand why run-time interpretation so terribly slows down the delivery of a page, you have to keep in mind that it not only involves PHP-code (Pie is entirely written in PHP) to be interpreted and executed, but numerous regular expressions to take place. Due to their very nature, regular expressions take quite some time to be compiled and executed, and even fractions of microseconds easily add up to seconds and more while just a single document is being processed, regardless of the underlying code libraries effectiveness and efficiency.

Given the WORM-scenario (write once, read many), a paraphrasis that describes the fact that pages are usually rarely written and changed, but often read, Pie chooses to (pre-)compile its pages instead, thus getting rid of this dilemma once and for all. It is that simple.

For those who still demand a CMS to be able to deliver dynamical, run-time generated output of some sort, Pie offers certain features to do so as well, just not to the vast extend its siblings do.

Pie has been designed to fluently run on its creator's sedate 75 MHz web server and still run and deliver output at a considerable rate. At least on that score, it has succeeded.

Simplicity

Pie claims to be simple to understand. This not only covers the web-based user interface where most Wiki derivatives really do not differ that much, but also its code base. Pie's code, being (to a certain extend) highly modular, should be easy to learn, understand and extend for most programmers - which brings us to the next topic:

Extendability

Programmers should find themselves in the position of having little or no difficulty to extend Pie in whatever direction and for whatever purpose.

[ Seite drucken ] [ nach oben ]
Zuletzt bearbeitet am 2005-07-24 02:56 von .
Ausgegeben in 0.0098 sec