Dear Pharoers

We would like to explain what is Spec 2.0 and how Bloc is on the Pharo roadmap. 

Spec is a way to support a way to express and reuse application interaction 
logic. 
Spec was first developed by Benjamin van Ryseghem and others while supervised 
by Stéphane Ducasse. 
Over the years we cleaned Spec, but we never took the time to really revisit 
it, and Spec 
was never stressed outside the scope of Pharo tools (even if there is some 
people who 
used it in their projects, this was not the general case). There was a need to 
deeply rethink
the way we express and reuse interaction application logic.

Spec 2.0 revisits fundamentally Spec. The consortium wants to acknowledge the 
strong financial 
support of Schmidt in this new development. Here is a list of points we are 
working on to support companies 
to build modern applications with Pharo. 

        - adding support for many widgets and at the same time improving 
existing widgets such as fasttable
        - adds much better layouts (we will deprecate the interpreter design)
        - introducing a new way to architecture an application: 
        Spec20 introduces the notion of application to better handle resources 
and window flow
        - revisiting the internal logic of Spec (to remove useless parts and 
enhance the ones that works)
        - adding many tests

In addition we want that Spec 2.0 is not tight anymore with Morphic. 
Why? Because we want to make sure that:
        - companies can deploy desktop applications
        - we can reuse all the tools logic of Pharo with new widgets sets such 
as Brick (widgets on top of Bloc) 
        without having to rewrite everything. 

This is why Spec2.0 can optionally render using Gtk3.0. It also means that in 
the future we can have native widgets. 

Now that Bloc/Brick is finally reaching a point where it can be tried and 
eventually adopted, we want to 
make sure the transition to it will not force us to throw away the tools we 
developed last ten years. 
We think that Bloc needs some effort to clean and structure it and Spec2.0 
gives the time to let Bloc and Brick
mature. Also, we want to make sure that in the future we will be able to adopt 
other backends in case we 
decide it (Remember new now is old tomorrow and while Bloc/Brick is new and 
modern,  it will not remain 
new and modern forever).

Brick needs to be ready for Pharo consumption, and to make it possible we need 
to move the image to converge. 
With Spec 2.0, in future versions we will just need to define a new backend to 
get all our tools working.

The Pharo Board



Reply via email to