[prev in list] [next in list] [prev in thread] [next in thread] 

List:       haskell
Subject:    Re: advice wanted on GUI design patterns
From:       "Andy Bower" <bower () object-arts ! com>
Date:       1999-09-30 11:41:22
Message-ID: 002f01bf0b38$550cf590$020a0a0a () objectarts ! co ! uk
[Download RAW message or body]

Frank,

> I found this bold statement from their top page amusing:
>
>   If you want to build robust, scalable, complex _and yet exciting_
software
>   then you need to use pure object-oriented programming techniques.
>   [emphasis mine]

Personally, I am a strong advocate of dynamic, rather than static, typing in
a programming language. In my experience dynamic type sytems do not decrease
the overall reliability of a system but, if anything, they improve it. In
addition, the dynamic typing in Smalltalk allows the software creation
process to be more, well ... dynamic. To my mind it's more enjoyable because
of this (and who say's we shouldn't enjoy building software).
Anyway, there are enough USENET debates of this dynamic vs static debate so
I won't bring it up further here.

I'm not very knowledgable about Haskell but I understand it has a rather
good static type system that is much improved over those available in C++ or
Java. The above statement from our website is more of a dig against the
C++/Java/Visual Basic crowd who, for the mostpart, seem to believe that
their mainstream languages are the be-all and end-all. At least when someone
chooses to use Smalltalk (or Haskell) they have probably gone through an
informed process to make that decision rather than following the Microsoft
or Sun-led herd mentality which seems to pervade most software development
these days.

Anyway, enough ranting. Rob Macaulay's original message directing you to our
site might indeed be relevant to your future choice of GUI framework.
Sometime ago, when we were developing Dolphin Smalltalk, we went through
three iterations of framework before settling on the MVP system we have
today. Each took around 6 months to implement and evaluate:

1/ Initially we tried a widget based framework like VB controls or Java
beans. This really wasn't "pluggable" enough and "just wasn't Smalltalk". We
found that common tasks required way too much duplication of code that ought
to really be reuseable.

2/ Next we tried a variant of MVC very similar to that in VisualWorks
Smalltalk. This fell by the wayside because of what we consider to be a
fundamental flaw in the MVC architecture. This stems from the common
requirement for the application models (we called them tool models) to have
intimate knowledge of the view to which they are weakly connected.
Unfortunately, this sort of knowledge breaks the 1:m observer relationship.
We have an EducationCentre page on our website that discusses our dislike of
MVC in more detail:

http://www.object-arts.com/EducationCentre/Overviews/MVC.htm

3/ To be honest, at that point we didn't know where to go next. We even
considered going back to the (flawed) widget based architecture on the basis
that it was easier to learn for VB and C++ converts. Fortunately, at that
time, someone spotted the MVP design for C++ on the Taligent website. Hence,
Dolphin now includes a modified version of this framework,
ModelViewPresenter, and in general, we have been pleased with the resiliance
and flexiblity of the result.

For more information the following link explains the Dolphin Smalltalk
version of the framework:

http://www.object-arts.com/EducationCentre/Overviews/ModelViewPresenter.htm

This turns out to be a simplified version of the original Taligent model for
C++ (and now Java). You can read about this from the IBM link below (now
that IBM have re-absorbed Taligent).

http://www.ibm.com/java/education/mvp.html

I hope some of this might help with the choice for a Haskell GUI.

Best regards,

Andy Bower
Object Arts Ltd,
http://www.object-arts.com
---
Visit the Dolphin Smalltalk Wiki Web
http://www.object-arts.com/wiki/html/Dolphin/FrontPage.htm
---
Program LEGO Robots with objects
http://www.object-arts.com/Bower/Bot-Kit
---

----- Original Message -----
From: Frank A. Christoph <christo@nextsolution.co.jp>
To: Rob MacAulay <rob@benchees.demon.co.uk>; Frank A. Christoph
<christo@nextsolution.co.jp>
Cc: <haskell@haskell.org>; <bower@object-arts.com>
Sent: 29 September 1999 12:53
Subject: RE: advice wanted on GUI design patterns


> > Just before everyone starts writing MVC (model-view-controller)
> > GUIs, you should be aware that there is a later development called
> > MVP (model-view-presenter), which decouples the components
> > even more.
> >
> > Main Dolphin site:
> >
> http://www.object-arts.com
>
> Thanks for the link.
>
> I found this bold statement from their top page amusing:
>
>   If you want to build robust, scalable, complex _and yet exciting_
software
>   then you need to use pure object-oriented programming techniques.
>   [emphasis mine]
>
> I've always thought Haskell applications were robust, scalable and
sometimes
> complex, but it is true that there was always some excitement lacking...
> ("My applications are so dull; they never have run-time type errors... Oh,
I
> do so long for that familiar old `message not understood.' Hm, maybe if I
> had used pure object-oriented programming techniques...!")
>
> And then a more foreboding warning:
>
>   If you've not used Smalltalk before then you're in for a new experience.
>   Take care, though. The language and environment are so interactive
>   and engrossing that you may find that in no time you become addicted.
>   You have been warned.
>
> Jeepers!
>
> --FC
>
> P.S.: With tongue in cheek. I have anything against Smalltalk or Object
> Arts...
>
>




[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic