Traditionally the first program one sees or writes in a new computer language is the “Hello, world” program: a simple program that simply prints out, or sends, or extrudes, the string “Hello, world” through the most convenient interface. For instance, in PHP this would look like:

<?php echo "Hello, world"; ?>

For contrast, check out this cautionary counterexample of writing a “Hello, world” program using POSA (Pattern-Oriented Software Architecture):

<?php
/********************************************************************
Model-View-Controller implementation according to POSA
(Pattern-Oriented Software Architecture
  http://www.hillside.net/patterns/books/Siemens/book.html)
********************************************************************/
class HelloWorldController {
    private $model;
    function __construct($model) {
        $this->model = $model;
    }
    function handleEvent($args) {
        $this->model->setStrategy($args[2]);
        $this->model->addText($args[1]);
    }
}
class HelloWorldModel {
    private $text;
    private $observers = array();
    private $strategy;

    function attach($observer) {
        $this->observers[] = $observer;
    }
    function getData() {
        $facade = new HelloWorldFacade($this->strategy);
        return $facade->getHelloWorld().$this->text."\n";
    }
    function addText($text='') {
        $this->text = $text;
        $this->notify();
    }
    function setStrategy($strategy) {
        $this->strategy = $strategy;
    }

    function notify() {
        foreach ($this->observers as $observer) {
            $observer->update();
        }
    }
}
class HelloWorldView {
    private $model;
    function initialize($model) {
        $this->model = $model;
        $model->attach($this);
        return $this->makeController();
    }
    function makeController() {
        return new HelloWorldController($this->model);
    }
    function update() {
        $this->display();
    }
    function display() {
        echo $this->model->getData();
    }
}
/*********************************************************************
"Business logic"
********************************************************************/
class HelloWorld {
   function execute() {
       return "Hello world";
   }
}
class HelloWorldDecorator {
   private $helloworld;
   function __construct($helloworld) {
       $this->helloworld = $helloworld;
   }
   function execute() {
       return $this->helloworld->execute();
   }
}
abstract class HelloWorldEmphasisStrategy {
    abstract function emphasize($string);
}
class HelloWorldBangEmphasisStrategy extends HelloWorldEmphasisStrategy {
    function emphasize($string) {
       return $string."!";
    }
}
class HelloWorldRepetitionEmphasisStrategy extends HelloWorldEmphasisStrategy {
    function emphasize($string) {
       return $string." and ".$string." again";
    }
}
class HelloWorldEmphasizer extends HelloWorldDecorator {
   private $strategy;
   function HelloWorldEmphasizer($helloworld,$strategy) {
       $this->strategy = $strategy;
       parent::__construct($helloworld);
   }
   function execute() {
       $string = parent::execute();
       return $this->strategy->emphasize($string);
   }
}
class HelloWorldStrategyFactory {
    static function make($type) {
        if ($type == 'repetition') return self::makeRepetitionStrategy();
        return self::makeBangStrategy();
    }
    static function makeBangStrategy() {
        return new HelloWorldBangEmphasisStrategy;
    }
    static function makeRepetitionStrategy() {
        return new HelloWorldRepetitionEmphasisStrategy;
    }
}
class HelloWorldFormatter extends HelloWorldDecorator {
   function execute() {
       $string = parent::execute();
       return $string."\n";
   }
}
class HelloWorldFacade {
    private $strategy;
    function __construct($strategyType) {
        $this->strategy = HelloWorldStrategyFactory::make($strategyType);
    }
    function getHelloWorld() {
        $formatter = new HelloWorldFormatter(
                new HelloWorldEmphasizer(
                    new HelloWorld,$this->strategy));
        return $formatter->execute();
    }
}
$model = new HelloWorldModel;
$view = new HelloWorldView;
$controller = $view->initialize($model);
$controller->handleEvent($_SERVER['argv']);
?>

I couldn’t resist quoting the whole code. The sharp-eyed observer will notice that the actual string is generated at the beginning of the “business logic” part and the rest is just handwaving. This quote from the author is also irresistible:
…And the program works. In spite of its deadness, it executes and produces a result. You might say it’s like one of those severed frog’s legs that twitch when you apply current.
This reminds me of a program I had occasion to look over recently; a friend wrote it as his final assignment for Java certification.
It exhibited all of the same symptoms: elegant formatting; repetition of dozens of function with slight variations in names and one or two lines in the body; frequent referral to buzzwords like model, controller, strategy, and so forth; complete obscurity of actual function. Indeed, I can’t recall what its ostensive purpose was, beyond making sure that the examiner understood that the writer had a thorough grasp of orthodox design patterns.
Space precludes going into details now, expect a longer rant later about the subject… 😉