> > " 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 ?