>
> "  Then I guess it grew rapidly and radically out of control and became
> this monstrosity "


Where are the people running screaming , where are the superheroes to save
the day ?

Think about it, if Morphic was really ugly that started as something
beautiful then someone would have rebooted Morphic by now and started
something from scratch and replaced Morphic by now. I have been very
closely following pharo lists for a couple of years now and I have not seen
so many people complain about Morphic.

Sure Morphic has its own messes to deal with but please find me a library
of the size of Morphic that is not messy in some areas. You think that QT ,
GTK , Winforms etc are not heavily criticized ? Think again. GUI APIs are
big ugly and prone to confusion and bad designs.

The problem with modern GUI APIs are that the demands for them are super
complex. Looks at web browser which are now the forefront of GUI design is
a ton of mess because the demands are really that complex . Take a look at
3d applications, 2d app, audio apps and music apps and you will find that
many of them use their own GUI APIs.

Why people tolerate these big messy GUIs APIs , why they tolerate the
ugliness of html/css ? The answer Is simple . because they offer what they
need . Same applies with Morphic, its big and complex because we need it to
be big and complex.

Could the design being improved ? sure and Morphic is constantly improving
, I make my own contribution as well because its an area that heavily
interests me. But make no mistake about it, you will never have a shoe that
fits all.

For me its much better to have several tools and libraries that help us
deal with the complexity of Morphic than simplifying Morphic by removing
useful features in sake of simplifying.

If you want to see what real monstrosity looks like take a look at MFC, its
the only library of any kind that I know that desperately needs an
exorcism.

"Following the Spec tutorial (which is excellent, by the way!)"

See this is where we get in the area of personal preference, I find Spec
very ugly. I mean really , really ugly. I used it to develop my theme
manager Nireas and I definetly dont like its workflow and now I am
seriously looking into porting Nireas back to Morphic and developing my own
library to fix Morphic shortcomings. However this is what is amazing about
Pharo we live in a time that because of the active development and
contribution you have many choices and you can choose the one that fits you
better or the one you like the most.

For the example even though I dont like html/css as you may have guessed by
now, I would love to have webkit or some other web browser engine embeded
inside the pharo image and so being able to display websites from inside
pharo. None can question the incredible value of diversity of options.

"I have also heard that Morphic made more sense in its original habitat in
Self, because you really could just clone a UI component and start
customizing it, because Self only has instances, no classes."

I think prototype based programming is great because offers to the
developer more power in more elegant way than classes. I think you will
find few people not agreeing on this, even one of the creators of Smalltalk
, Ingalls, said something along the lines that if he had to redesign
Smalltalk would have made it prototype based. But and thats a big but in
practice I seriously question the usefulness of prototype based
programming.

Take a look at Pharo its class based but still easy to hack , right ? Yet
people are reluctant to hack and for a good reason. Because you have to
deal with merge hell , people hacking the same thing as you or you do
something and system misbehaves because you hacked an object that another
object depended on.

So classes for me are there to provide a more concrete implementation and
area that is labeled "modify with extreme care" . Afterall its not that
hard to take a Morph class subclass it and create your own class instead of
changing that Morph class directly.

But as I said I agree that prototype based programming is more elegant but
in the end it does not matter as much as you think it does, because if it
did then Prototype based would be dominant by now. So to summarize , no
Morphic fits Pharo like a glove.

"Spec seems to be promising non-Morphic backends, is that an active
development interest and if so what targets are being explored?"

Spec is a wrapper meaning knowing spec does not require to know Morphic and
that means also it can exist without Morphic, not currently, but probably
one day. PolyMorph is an extension of Morphic meaning you have to know
Morphic and depends on it. So they are two very
fundamentally different things. I think however this is a moot point. The
bottom line is that GUI development is an extremely important part of Pharo
and any other programming language. If you can bet on anything is that GUI
APIs of any kind will keep evolving , so yes Morphic will keep improving,
Spec will keep improving and we will see new kids in the block like we
already see with Bloc and Brick, Some of them will be small and elegant
solutions but limited, other will be big and complex but powerful.

But hey who can predict the future ?

Reply via email to