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