Squeak SmalltalkJoker Squeak Smalltalk : Projects : prevnext Pier Small Wiki Magritte

Pier (formerly known as SmallWiki 2) is what I started to work on 
after SmallWiki 1. They certainly share some code and are similar in 
some parts, but after all Pier has been rewritten from scratch. While 
SmallWiki 1 was designed to be used as a well tested and extensible 
Wiki implementation in Smalltalk, people started to use it as a CMS 
(Content Management System), e.g., <http://www.squeak.org/> and 
<http://www.esug.org>. In my opinion there is not much differencen 
between a CMS and a Wiki, for the CMS this are mostly a few additional 
tools and that you don't grant the edit permission to everybody in a 
CMS. Pier has been designed with the CMS in mind -- and it turned out 
to be even more: it can also be seen as an application development 
framework on top of Seaside ...

So what is the difference to Pier then?

* The code-base of Pier is much cleaner than one of SmallWiki 1. There 
  is strict separation between the model and its views, they are all 
  in different packages and can be loaded independently. There are 
  currently two views available, the default one working with Seaside 
  and one using OmniBrowser and Morphic Squeak.

* Pier is based on the Magritte meta-model, what makes it very easy to 
  extend and query the system. E.g., imagine that you want to store a 
  small comment for all the edit operations, the only thing you need 
  to do is to add a string-description to the edit command and 
  immediately all parts of Pier will be aware of this new feature: all 
  the edit views for Seaside and Morphic display a new input field, 
  the history displays the additional field, the query engine and the 
  persistency will consider the new field, etc.

* Pier has got 5 times more tests than SmallWiki, not counting the 
  1500 of Magritte.

* Pier uses a similar document representation as SmallWiki, the wiki 
  syntax for both is similar to the one of SWiki. Again there is a 
  SmaCC parser that builds an AST of the document that can be easily 
  visited and transformed to HTML (Seaside), Latex (Documentation), 
  morphic text, plain text, etc.

* Pier uses a prevalence based history and snapshot mechanism. This 
  part is not quite finished/proved, serialization is quite tricky 
  after all, especially if the objects change during development. 
  There was someone that reported he stored the model in OmniBase. For 
  me I am currently just saving the image ;-)

* Pier uses Seaside as default view, as opposed to the stateless 
  approach with Swazoo in SmallWiki. This makes it very easy to plug 
  any Seaside application into pier, or to plug Pier into any of your 
  Seaside applications. Navigation tree that remember open nodes are 
  just a breeze. Ajax is cool with Pier. All links in are 
  bookmark-able, of course ...

There are certainly more differences, but I guess I wrote down the 
most important ones ...

Cheers, Lukas

-- Lukas Renggli http://www.lukas-renggli.ch