Hi Brad,
Is their doc someplace that shows the difference
between SmallWiki and
Pier? Or are they really two different animals?
( I did look here:
http://kilana.unibe.ch:9090/SmallWiki
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