On Wed, Jan 29, 2014 at 3:36 PM, Pavel Krivanek <[email protected]>wrote:

> I would like to continue in the direction started with the Morphic-Core.
> It's a subset of Morphic that is able to be loaded into a headless image,
> initialize itself and show world with one basic responsive morph.
>

There's a question of what is necessary for a modern GUI core. To me, we
need to get out of BitBlt rendering completely and towards vectors.
Reliance on BitBlt makes Pharo seem slow and outdated. Pixelation is so
early 1990s. Novices also don't understand that a slow GUI isn't indicative
of everything being slow. There's no reason Pharo's UI can't be fast enough
that you can't tell the difference between it and a native app. That would
do a lot to make Pharo more palatable to newcomers. First impressions are
critical.

We should also make it easy for people to build animations and build them
into the core tools (when it makes sense). Most modern OSs feature great
support for animation. Even if these things are largely eye candy, they do
change people's perceptions. I'd love to be able to do something like this:
   aMorph resizeToBounds: (100 @ 100 extent: 200 @ 200) inSeconds: 2.
Speaking of which, it would be nice if orientation could be included into
the equation. Perhaps support for affine transforms would be standard.
There also should be substantial support for vector graphics. The Athens
SVG input is a good step forward, but I'd like to see something that seems
very Pharo-native and that can be exported to SVG, rather than something
that seems very close to SVG XML (as is now the case). Ideally, I'd like to
do the old demo of rotating a browser and still using it but have it still
look smooth (i.e., no pixelation).

Another thing to perhaps address is how morphs are controlled and resized.
Currently, when we change the extent, then the top left corner remains the
same. For most cases, keeping the center the same would be more intuitive;
vvvv does that and is fairly easy for programming novices to use. It would
also allow us to combine rotation and scaling in some ways:
   aMorph rotateAndScaleBottomLeftTo: 300 @ 20. "keep the center stationary"

Cheers,

Jeff

-- 
Jochen "Jeff" Rick, Ph.D.
http://www.je77.com/
Skype ID: jochenrick

Reply via email to