2018-04-09 9:14 GMT+02:00 Tudor Girba <tudor(a)tudorgirba.com>:
I think it might be more interesting to start the review from the usage of it, not from
Well, from the usage of it, I've seen nothing that doesn't fit into
the yagt. I've seen that field evolve and try clever things, really
different things, and Bloc does not look like one of thoses.
Indeed, Bloc is primarily an engineering effort. But, there are a
couple of things that make it rather different from other solutions. For example:
- Only one rendering tree in all cases. This works also for graph visualizations that
work with any element without imposing knowledge about edges in the base system. We think
this is quite important, and especially when combined with a performant rendering, it can
open new doors for UI design.
Look, from the point of view of the man of the art, it doesn't seems
like a breakthrough.
Compared to other smalltalk-based solutions, yes, it may be seen as an
I think you underestimate how advanced that field has been / is, and
how far behind the state of the art are industrial solutions.
There is only one development in the Smalltalk space in GUI that is
worthy of interest for me: the anti-aliasing of Juan Vuletich. It
would have so much impact overall (remove all dependencies on external
libs, remove the need to do font anti-aliasing, scrap thousands of
lines of slow and ugly Smalltalk code, simplify the FreeType
infrastructure, remove MBs of external librairies, ensure long-term
porting ease / code evolution).
- It is inspectable. For example, inspecting an element offers views
such as for tracking events, measurements or transformations. This can sound small, but
when built at the very core, it decreases costs significantly later on (already did for
That may well be the key of the innovative aspect of it: not the
design, not the software architecture, but the development stories
In the example Bloc application, what is interesting is the use of the
GT inspector. All the code, the objects, the framework, feels
underwhelming, at least not worthy of any hype, apart from: yes, it
works. So what?
But I think I told you about that before. I want to see your ideas
about how to transform the development experience... I don't see Bloc
as a very interesting development in that; it would have been a lot
more significant to manage to do that over Morphic, for example.
Because, you see, you designed Bloc so that it could be ameneable to
your development experiences, and as such you're making it a lot
easier on yourself; you're not proving the applicability of your ideas
to GUI implementations, but the implementation of a GUI toolkit
according to your idea requirements.
And I do believe you would have done a very fine point of both
improving Morphic, and proving your Ideas, and investing a lot less
than with Bloc.
(What Alain Plantec showed me of his early beginnings with
reimplementing Morphic, the tooling he used: that was really clever.)
> On Apr 9, 2018, at 6:47 AM, Thierry Goubier <thierry.goubier(a)gmail.com> wrote:
> Hi Doru,
> Le 08/04/2018 à 20:23, Tudor Girba a écrit :
>>> On Apr 7, 2018, at 10:22 PM, Thierry Goubier
>>> Hi Stef,
>>> Le 07/04/2018 à 21:28, Stéphane Ducasse a écrit :
>>>>> On 7 Apr 2018, at 21:25, Thierry Goubier
<thierry.goubier(a)gmail.com <mailto:firstname.lastname@example.org>> wrote:
>>>>> Hi Doru,
>>>>> Le 07/04/2018 à 19:16, Tudor Girba a écrit :
>>>>>> Hi Thierry,
>>>>>> We are not recreating HotDraw.
>>>>> That's sad.
>>>> No it is not. :)
>>>> You can rebuild a new hotdraw if you want.
>>>> This is what diagrammer is showing.
>>>> It shows that we can move on the UI level again. I’m waiting for this
since at least eigth years.
>>> Good for you :) I'm not so optimistic.
>>> I have the feeling that it's not the GUI framework that was holding you,
but the architecture philosophy in the implementation: wrongly remapping of a type of GUI
over another system, widgets with hundreds of instance variables all blocks so that we
can't understand what they are used for, widgets requiring thousands of lines of code
to produce the dozens of different things on a view they require, a widget system with
call depths so long you have no idea of the path it's taking to open a window, another
where you have to explore your container to do things when you create a view.
>>> So, will that change? Or, has that been carried over to the new one?
>> Bloc is a fresh implementation and the goal is to provide the foundation for the
future UI of Pharo. I would be very happy to get your feedback on code, should you have
the time time to look at it.
> I am, probably (very) slowly, because:
> - Bloc is huge: 45k lines(*). Congratulations to all the effort that went into it.
> - From the examples and a cursory look at the code, it is yagt (yet another gui
toolkit), which does not make it interesting to review(**). There is maybe really
interesting stuff in there, but it may be very hard to find the interesting detail in that
huge chunk of code.
> Have you evaluated Bloc with the Moose tools?
> (*) Which means, in C terms, probably the equivalent of half a million lines of code,
given Smalltalk ability to produce dense code.
> (**) I'm not good nor an interesting person to ask for a review of an engineering
>>>>> I miss the time when I was doing domain specific editors in HotDraw.
>>>>> Moose-dev mailing list
>>>> Stéphane Ducasse
>>>> 03 59 35 87 52
>>>> Assistant: Julie Jonas
>>>> FAX 03 59 57 78 50
>>>> TEL 03 59 35 86 16
>>>> S. Ducasse - Inria
>>>> 40, avenue Halley,
>>>> Parc Scientifique de la Haute Borne, Bât.A, Park Plaza
>>>> Villeneuve d'Ascq 59650
>>>> Moose-dev mailing list
>>> Moose-dev mailing list
>> "Being happy is a matter of choice."
>> Moose-dev mailing list
> Moose-dev mailing list
"Value is always contextual."
Moose-dev mailing list