Hi Doru,

On 29/12/18 15:50, Tudor Girba wrote:
Hi,

Thanks for the link. For some strange reason, I do not see the linked email in my inbox.

It was also absent from the web archives of the Pharo mailing list and, as I'm not subscribed to Pharo-Dev I always get a warning about a rejected message (I don't know if this is related somehow to the mails being hard to find). Anyway, I'm hitting "Reply all" button so you'll have the answers from this thread also in your personal mail (and have stopped cc to Pharo-Dev).



I am happy to hear that you could install GT.

Thanks.



      
  * The new interfaces and some demo of the graphical elements look
    pretty good
  * After just some operations including window resizing I just get the
    Red Window of Death [1](https://i.imgur.com/Cbx7uyH.png).
Indeed, that is a known problem:
https://github.com/feenkcom/gtoolkit/issues/64

Maybe the main window should indicate more promptly about expected but strange behaviors and point to the Issues repository, somehow.



  * I like the little triangles to expand thing in the document and the
    run buttons for embedded code, and the "embeddability" of elements
    in the document in a tree like fashion, which of course could lead
    to documents that embed pieces of documents, which embed pieces of
    documents… But the dual panel view of code in one side with
    results in the right panel of old GT didn't tend to create such
    "recursion". This dual modal view is the same of
    Atom[2](https://is.gd/kegaso) and CodiMD[3](https://is.gd/wudugi)
    for interactive documentation and I would like to see examples more
    in that line... but I don't know how it suits the philosophy behind
    Documenter, which seems more aligned to a modal non dual view of the
    document where you enter into edit mode once you click a piece of
    the document and into a view mode once you are out of it (instead of
    the proposed dual view). Would be nice to see is such dual view can
    be used to directly operate on the rendered view and see changes in
    the markup (i.e resizing an image in the rendered view changes the
    value on the edit view).
Interesting observation. The linked tools as all other notebook technologies I saw rely on two distinct modes for edit and view that reside in two distinct widgets (editor and viewer). They do that because they simply cannot have it in one. Because of the design of Bloc we are not constrained to that. Instead, we build a seamless interface that is both optimized for viewing, and for editing with live preview that does not rely on an explicit render button. This approach enables direct manipulation without friction, and we think this is a significant advancement in this space.
I don't think is only because other editors can't do it, but because some (most) times you don't want "to conflate two tasks that are conceptually distinct and that, to ensure that people's time is used most effectively and that the final communication is most effective, ought also to be kept practically distinct"[1] which are Composition and typesetting. This seems kind of strange in interactive documentation, because of the bad habits that WYSIWYG word processors installed on authors, but most of the time What You See Is **Only** What You Get, but you need enable comments to yourself, use admonitions, refer to bibliographic keys, and so son. That's why I think is a healthy practice to separate both, composition and typeseting and think in a bi-modal way, instead of a conflated way, in a similar fashion to what Bret Victor demos show for working with graphics and code in a bi-modal way [2][3]. I have experience, first hand, in "documentathons" using CodiMD, how document authors could benefit from bi-modal thinking for their documents, by showing side by side, Markdown and the rendered document changing in real time. I would like something similar for the Pharo environment.
[1] http://ricardo.ecn.wfu.edu/~cottrell/wp.html
[2] http://worrydream.com/#!/InventingOnPrinciple
[3] https://i.imgur.com/vi6bX21.png
[4] https://en.wikipedia.org/wiki/GNU_TeXmacs

TeXmacs[4] has a really good What You See Is What You *Mea*n (WYSIWYM) editor that conflates composition and typography, but it works like a charm, specially while you're writing mathematics that I have not seen elsewhere (not even in comercial word processors). But when you start to push boundaries (for example by using non traditional templates) the visual approach shows its limits compared to a bi-modal editor.



About the remark related "to documents that embed pieces of documents, which embed pieces of documents”: It is indeed possible to embed documents in documents, but I am not sure I understand where you see the issue appearing. Could you detail this part?

Some times when I was browsing the examples I made click on an icon that shows the document embedded in the document where the link appeared and then that happened again. I can't remember the icon or reproduce the experience. It seems that rendering in the lateral panel is working and I don't know how to get this nested embedding behavior again.



  * I like the different view that a document can have, markup wise:
    Pillar, Markdown, LaTeX, HTML, DeckJS AsciiDoc as is demoed in the
    authoring part [4](https://i.imgur.com/Jc1T5Rm.png).
Interestingly, those extensions exist in the old Inspector as well.

Yes I saw them previously, but the editor make this more... explicit/"explorable"... maybe is related with the rendering, but they seem better now.



      
  * Its difficult to travel between the panels of a playground.
    Previously you just make click in the lower circle representing the
    panel you want to go at it was done
    [5](https://i.imgur.com/4CDAM2o.png), but now clicking on the upper
    rectangle representing such panel has no effect
    [6](https://i.imgur.com/8Obo3Ct.png).
For now, you have to rely on horizontal scrolling using a trackpad or mouse. Alternatively, Shift+scroll should also work. The upper part is not yet ready.

In Linux those combinations don't work. Any way to get the previous one click behavior? What is the rationale behind having to press more keys, instead of the previous simpler approach? Some collision between shortcuts?



      
  * The default data science example didn't work at all
    [8](https://i.imgur.com/YhNb8el.png)
Nice catch. Thanks. The path of the file is incorrect when the image is copied.


Glad to help :-)


[...]


I used Moose to build the first Grafoscopio versions, but there was a
lot of stuff that was related with software analysis that I didn't
really need for reproducible interactive documentation and publishing
nor for data science, activism and storytelling. So once old GT was
integrated into Pharo with Spec I used a more minimal setup to deliver a
more focused experience.

I think that most times this relationship between Pharo and Moose can be
of creative tension, one pushing the boundaries and the other offering a
more stable experience where the innovations of the former are
integrated and debugged. But even after using Moose as a fully
integrated vision of what old GT have to offer in the back and front
end, I didn't see any migration path from previous Moose with the old GT
to the current GT, which is kind of worrisome. I understand the idea of
forks in FLOSS as a way of dealing with politics behind the FLOSS
movement and the relationship between different  visions and actors
(individuals, communities, enterprises, foundations, associations and so
on). It has happened before with Squeak, Pharo and Cuis and I'm fine
with that. And I understand that a healthy relationship with the past
means sometimes to break with it and jump into the future.

That's why I think that the role of for profit and non for profit
institutions is to balance a sense of momentum and stability around
FLOSS. I would like to see a more clear road map for GT, knowing ahead
where backward compatibility will be broken and why, which are the
visions and, more importantly, how to participate and where are the
boundaries. These are difficult tasks, but if the participation and
boundaries are explored collectively, you can also know about the first
ones (visions, versions, forks, compatibility). In that sense I think
that Pharo is putting a good example: we have a clear road map document
and participation process in the public repositories, there are public
channels for users and developers and the private companies know about
them, so they can put the boundaries about what is going to be done in
the open, with the community, and what is to be kept closed inside
company's frontiers and channels and the company's own velocity. I don't
know if Feenk is planing something similar for its new vision, product
and identity, and I don't know if the new alternative will have its own
non-profit organizations as a neutral entity for all players using GT,
but would be good to know about that, not because there are not people
willing to jump into the future, but we would like to know to which
future we're jumping on.  Without that I think that is a safer bet for
myself to rely on Pharo and see how migration paths could ensure
compatibility with my own past and the one of my local community using
Pharo and GT based tools. I hope that the open source nature of both
products (Pharo and new GT) will ease the cross-pollination of the more
interesting ideas, even without sharing code, visions or UI.
We do not regard our work as an evolution, and we are not concerned with backwards compatibility. We are not trying to be completely different to what we had before, but being compatible is simply not a goal. For example, extending oldInspector is usually a matter of a dozen lines. Extending the new Inspector works in a similar way, but with a slightly different API that is needed because of the new infrastructure. The migration is not a pain, and it can happen seamlessly as I described in the mail to Luke.

I understand how from your point of view as a user of Pharo and oldGT you regard backward compatibility as important. However, we look at things differently. We think that development can be enhanced both from an efficiency and from a happiness point of view with a significant degree. When something like this is possible, the opportunities are different, too. For example, backward compatibility is about limiting costs. However, when the profit promise can be large, some costs can be worthwhile and are to be considered investments. 

As I said, I don't have problems with breaking with the past as a healthy relationship with it. This has happened before. My issue is with not knowing that a jump will be done or where are we jumping on. And also with the places where the process will be open or close. Maybe the way to communicate advances is to work enclosed first and then releasing your prototypes to the open, maybe is about having public issue trackers with fixed deadlines... I don't know what works better for the interaction between feenk and the wider Pharo community, but I think that if the process is more explicit, we, the users of Pharo and old GT can adjust expectations. I really don't know if the cost are worthwhile ATM because I don't know what is the next step of the path in new GT. I like its new rendering  features, but I have just a static picture at each step and I don't know where the future is going or how to get there. For me is not about fixed futures but more about open processes and boundaries, as I told before, and with those known we can explore uncertain futures together.


What do we mean by profit? For example, what would it be worth for a company to have the non-technical people literally pair and understand the internal details of the domain model? Compared to what exists now, that can be invaluable and we think that following moldable development this will be a natural by product. Another example: what would it worth for a developer of a library to build a live documentation with a marginal effort that simply leverages the testing effort? It can be invaluable, and we think this is trivially possible.

Maybe those offerings are invaluable... I really don't know as they're not closer to my context for live documentation, which is not for developers... once the roadmap and processes become clearer I could better asset that profit scenario.


About the roadmap, here it is: we aim to build a complete development environment that will enable moldable development.

We understand how this can appear vague. I think it’s not because I and my colleagues talk about it since many years now. People pay little attention, so now we set ourselves to deliver a concrete incarnation of what we think the future should look like. We set to create something that does not exist in other parts, and we simply do not quite know how this will look like in details. 

Yes, more that a roadmap, it seems more like a mission with some glimpses of what forms it can take. As said, I don't have problems with exploring unknowns together or discontinuities with the past. The main issue is more processes and boundaries. I don't want to invest time in a technology that wold be jumping to something incompatible in the future and the time I notice that is when the new glimpse is released.


For example, we do know that we want to build a Coder or a Debugger, we even have advanced ideas and implementations, but we do not know exactly how it will look like and because of that we also do not quite know how long it will take. We have a particular way of approaching development that relies on fast feedback and storytelling, and at the end we always get surprised of where the journey takes us. For example, the current state of Documenter was simply difficult to imagine even 4 months ago, and in the process we threw away more code than is now released. So, we will not detail the concrete steps because we do not work like that.

We do have a clear vision of what we think software development should be, and we will put forward our guiding principles shortly.

About the governance process: GT is built by feenk and will continue to be so for the foreseeable future. We put things that we create in the open, we do so for free, and we welcome people to engage with us.

Well, once those guiding principles and ways to engage are more explicit and think that those of us who have been using GT will now how to and how much engage with the possibilities that feenk is building (they look impressive, as I said, but would like to know where/when quantum leaps are happening).


I think that not only installation inconveniences is related alpha, but
also this jumping from old GT to new one without a clear migration path
(as is expected from alpha software and processes). I'm fine with that
too, but I think that once the new GT reaches beta status the backward
compatibility should be more important and meanwhile the non regard of
that should be stated more promptly for previous and future GT users. I
imagine that, at some point Feenk will provide its users and customers
with clear support and migration paths regarding its open source
products (kind of what happens with Canonical and the Long Term Support
versions of Ubuntu).
As mentioned above, our focus is to build a new experience. It is likely that a typical Pharo user will not have much issues adapting to the new interface. A developer that depended on the old APIs will be somewhat impacted, but we do not expect a too large effort will be required to adopt the new world.

Nevertheless, if it’s stability and predictability you are looking for, it is best to wait for now.

Yes I will go slower. More than stability and predictability, I'm looking for known processes and boundaries.



A word about the user experience. The current version runs inside the
 Pharo UI because we need to bootstrap. But, our goal is to build a
 complete IDE on the new stack. If you want to judge the user
 experience, it is only meaningful to do it within the GT windows, and
 not by comparing it with the rest of the existing Pharo UI.

 Does this clarify the situation?
Yes, it does. It seems that a fork is coming, at least UI wise regarding
Pharo and new GT, but if the community knows about it, I'm fine with
that. I think this thread also clarifies what active users of old GT
will expect from upcoming versions of new (non alpha) GT regarding
compatibility, open processes, visions and so on. Hopefully we will
reach that place together.
I do not think a new piece of code should be called a fork. At this point in time, GT and everything it comes with, loads cleanly in Pharo 7.

As I said, the fork would be UI wise, not in the core technologies. But some of us are relaying in the possibilities that current and future UI experiences are providing in Pharo to orientate our own developments and local communities.

This critics mean to be constructive, explicitly trying to reach clarities in an open way and I hope that serves the wider Pharo communities. The work feenk is doing is a good showcase of interesting future possibilities and is important to have those futures open for the community and to know how to traverse/connect them.

Cheers,

Offray