Reply is inline:

On Thu, Jul 22, 2010 at 10:39 AM, R. T. <email_address_was_here> wrote:
> Left Coast is now building a new web site for one of our candidates. We've
> contracted a professional web designer, as usual. Each time we do this, I
> ask the designer which CMS they like. This site will be very simple, but we
> want to allow the candidate and volunteers to change the text easily.
> Therefore, our web designer has chosen Unify. As usual, I described my
> desire to one day give each volunteer control over his or her own database
> entry. She suggested ExpressionEngine for that.
>
> Having tried to build sites on Joomla and Plone, and having worked a little
> with Drupal, I am dissatisfied with those CMS systems. They are too big and
> complicated for me.

Micheas Herman, IT and web-site builder for the SF Green Party, wrote back cc:ing me (JGW):

Part of the reason they are big and complicated is that the problem is big and complicated.

They all rely on MVC conventions (jgw: "MVC" is an an object oriented programming design pattern which uses three major parts: model, view, controller -- not defined here) and therefore (CMSes) rely on the developer somewhat accepting the black box (unknown, hard to determine) nature of them.

> Specifically, it's very difficult to understand and then customize the CSS.

JGW100724: "CSS" means cascading style sheets.  It is a method that emerged in the late 1990s and which continues today of separating "web page formatting" information (font-name, font-style, font-size, what is a paragraph, what is a heading line, etc.) from the "web page content".  (Replying to MH:) I partly agree, and that's why I have been learning by working with the Joomla and Drupal CMSes since March 2009.  For the unfamiliar reader, that kind of work is also called "on job training" (OJT).

JGW100804: It is also absolutely necessary to get to know well the table schemas for the tables each added-on extension (i.e. component, module, and/or plug-in of a given extension) AND know fairly what the extension PHP code is doing with that table data, with any other data already on your site (in the database controlled by the Joomla core code and/or by other extensions) and with data input by the user in the so-called "front end" (end-user interactions) and "back end" (administrator's interactions) with the extensions code and data!  Usually, it seems from comments by other techies, a given extension only adds about 80% of the functionality that the site builder imagined would be inherent in the extension.  Improving the code and table schemas to "do more" to get to, say, 85% or 90% of what one wanted takes A LOT OF WORK!  Sorting through and trying out, say, 2 or 5 extensions with apparently similar functionality also takes a lot of work to see which, if any, is better!

Micheas continued:

The CSS that comes with them is completely replaceable by the user. The problem of making CSS crossbrowser compliant, causes most developers to use a css library. The other issue is that using firefox allows you to not know the css, but only view and change the css relevant to the change you want to make.

Some common opensource css libraries are Gantry, bluepoint, and YUI (yahoo user interface). But there are many of them.

> Since we'll be using Unify, I looked it over. Much closer
> to my goals than Drupal or Joomla.
>
> This is the second or third pro to recommend ExpressionEngine to me.
> CodeIgniter is the open source framework that the Engine is based on. I'm
> going to learn more about Igniter, and I may try building my volunteer
> system with it.

If you are not going to leverage the extensions of Drupal and or Joomla, (which you sort of can't if you are using codeigniter) I would recommend django (rails is] a pain to set up, which is why I don't recommend rails.) It is a much nicer coding environment than php.

>
> - RT