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