Cross pollination: Hopscotch: dynamic browser-style IDE and Leisure: document-based computing environment

84 views
Skip to first unread message

john lunzer

unread,
Sep 2, 2017, 3:33:42 PM9/2/17
to leo-editor
I came off a big project recently which fortunately (or maybe unfortunately) allowed me some time to do my semi-annual search for the holy grail of programming. I don't know why but I am never fully content with my tools and am always looking for a better way to interact with my system.

Anyway, I ended up getting lost on the internet and came across two really interesting projects.

The first is Hopscotch, which is a dynamic browser-style IDE for the Newspeak programming language/environment. Newspeak is heavily inspired by Smalltalk. The Hopscotch IDE is an interesting evolution of the programming environment presented by modern Smalltalks. It seems a bit cleaner and bit more intuitive to navigate thanks to the browser-style controls. I will link to a video demonstration here. I recommend watching at 1.5x speed (to maximize your time) and dropping out before the questions portion as most of the questions are not relevant to the IDE itself.

The second is Leisure, and rather than explaining it you should probably just jump into the live demo or visit the repo (which links to the demo), which explains the project in detail.

Anyway, I don't have anything invested in either of these technologies, just sharing some interesting projects to help stir people's imaginations. 

Offray Vladimir Luna Cárdenas

unread,
Sep 3, 2017, 1:02:17 PM9/3/17
to leo-e...@googlegroups.com

Hi John,

Thanks for these links. I just finished to see the Hopsotch video, including questions, that are interesting to me as a Smalltalker, and is curious to see the misreadings once and again, about "but we're giving too much power to the 'end user' kind of questions". Also the live Leisure demo and the idea of Illuminated Programming, which seems pretty much like Literate Computing [1].

[1] http://blog.fperez.org/2013/04/literate-computing-and-computational.html

I'm exploring similar ideas, inspirations and traditions with Grafoscopio [2], and I like to think that I'm getting a more balanced approach between a research tool/medium and practical one. For example, you can see the idea of mixing code, data, docs and publishing in a single environment in my Panama Papers demo [2a] (see picture below). As you can see, web for me is mostly a publishing platform (instead of a development one), because I think that web as a development environment is over complicated and over hyped. Yes, no installation is fine when connectivity is a given and/or you don't go under the wiring to modify something.

[2] http://mutabit.com/grafoscopio/index.en.html
[2a] http://mutabit.com/offray/blog/en/entry/panama-papers-1

 

There is still a lot of work to do on user experience, particularly when writing markup, and recently developments in GT Documenter (in the tradition of moldable tools) will change that soon [3][4].

[3] https://twitter.com/feenkcom/status/901373363985240064
[4] https://twitter.com/feenkcom/status/901219343115177986

I'm, like you, constantly questioning my tools. On that front, what I have found with Pharo Smalltalk in terms of moldability, simplicity, practicality and dynamism (live coding constant evolution) is unbeaten by any other computer environment/language I have found until now. In the spirit of crosspollination and sharing link, you may be interested in the tools showed here:

http://feenk.com/#rd

Cheers,

Offray
--
You received this message because you are subscribed to the Google Groups "leo-editor" group.
To unsubscribe from this group and stop receiving emails from it, send an email to leo-editor+...@googlegroups.com.
To post to this group, send email to leo-e...@googlegroups.com.
Visit this group at https://groups.google.com/group/leo-editor.
For more options, visit https://groups.google.com/d/optout.

john lunzer

unread,
Sep 5, 2017, 8:00:22 AM9/5/17
to leo-editor
The "web" (as in always connected to the net and files saved on the cloud) as a development platform is dubious. However, the "browser" being the driver is another matter. Given what browsers are designed to display this might be the most natural environment for mixing code/data/docs/visualization. You can kind of see this happening too. Leisure is just one example. 

ipywidgets is an exciting library. I will say it's not something new in general. Mathematica has had the kind of interactive functionality that ipywidgets offers for a long time. But it is a good example of mixing code directly with UI elements. 

In the presentation on Hopscotch the presenter said something along the lines of, "Why are our development UIs and environments still primarily for text only manipulation". The more I think about coding in general the more I think about how valid this question is. And combine with the Leisure example I want to know the same thing. 

Why can't my coding environment be filled with whatever I want? Why can't I have an interactive graph as a comment? Offray you shared the literate devops example and that example was a great example of how stream of consciousness can be captured with executable scripts and commentary.

Offray Vladimir Luna Cárdenas

unread,
Sep 5, 2017, 12:52:41 PM9/5/17
to leo-e...@googlegroups.com

I think that the big idea is hypertext and hypermedia. Web, browser, eclectic full stack development frameworks, and other current trends and common techs are just, kind of poor overcomplicated, implementations of such ideas and the way to interact/develop in them. A web browser has 25+ million lines of code! [1]. Do we need all this incidental complexity to render/navitate hypermedia?

[1] https://twitter.com/worrydream/status/857794605076500480

The idea of rapid capturing stream of consciousness started[*], in my case, via paper mind mapping, then digital one, then, when such stream was pretty textual (like in academic writing) with Leo, and now, that I want to make it interactive and more heavy on data visualization, with Grafoscopio. Outlining as a way to capture such stream has been key and also the idea of having moldable self-referential metatools to increase such flown (which was signaled more clearly via the self referential trees in Leo outlines, with  @script and @button definitions). I think that a media rich, hyperlinked outlining environment for capturing stream of consciousness is a good research and practical endeavor and is not so far away, while it produces usable prototypes, that will, for example, let you put interactive graphics mixed with code and prose. GT Documenter is going in that direction in the Pharo world.

Cheers,

Offray

[*] I also made some experiments with shorthand [2] and invented custom notations.

[2] https://en.wikipedia.org/wiki/Shorthand

Edward K. Ream

unread,
Sep 5, 2017, 3:52:55 PM9/5/17
to leo-editor
On Tue, Sep 5, 2017 at 11:52 AM, Offray Vladimir Luna Cárdenas <off...@riseup.net> wrote:

I think that the big idea is hypertext and hypermedia. Web, browser, eclectic full stack development frameworks, and other current trends and common techs are just, kind of poor overcomplicated, implementations of such ideas and the way to interact/develop in them.

​You could say that Leo is an amalgam of Emacs and More, with a little vim thrown in.

When I was first learning to program, I often wanted to find some "magic" that would make tasks easier.  Now, I have enough experience to know about how much work a task will take.  However, this might blind me to other approaches that would, in fact, be much better/elegant.  Vitalije's new read code could be called an example.

A web browser has 25+ million lines of code! [1]. Do we need all this incidental complexity to render/navitate hypermedia?

​I wonder how browser devs would answer this question.  My guess is that conforming to web standards is a big part of the job.

Edward

john lunzer

unread,
Sep 6, 2017, 11:42:00 AM9/6/17
to leo-editor
On Tuesday, September 5, 2017 at 3:52:55 PM UTC-4, Edward K. Ream wrote:

When I was first learning to program, I often wanted to find some "magic" that would make tasks easier.  Now, I have enough experience to know about how much work a task will take.  However, this might blind me to other approaches that would, in fact, be much better/elegant.  Vitalije's new read code could be called an example.

It's nice to know my search for programming "magic" is an ailment that others have experienced.

Part of Leo's "magic" that has attracted me more than other outline based programming tools is that it aspires to be (in the outlining editor sense) language agnostic. As an engineer this is a huge consideration for me. I should clarify that I'm not looking for the "next big thing". The farther civilization expands digitally the more "legacy" code we will have. Despite being "legacy" that code is likely going to be still be responsible for people's lives and because the effort of updating or porting the code would be prohibitive. 

To survive in the future every engineer/programmer is going to need a tool that will break down any program in any language into structured code. What is structured code? When I develop a larger program in Leo my outline tree naturally take on an organized structure that is beyond the limits of what the structuring elements of the language provides. I will also do the same thing when integrating external code, after Leo does its standard parsing and tree construction I go in and move things around so that code/nodes are grouped using some classification/categorization logic that is project/code dependent.

Edward K. Ream

unread,
Sep 8, 2017, 11:51:21 AM9/8/17
to leo-editor
On Wed, Sep 6, 2017 at 10:42 AM, john lunzer <lun...@gmail.com> wrote:
On Tuesday, September 5, 2017 at 3:52:55 PM UTC-4, Edward K. Ream wrote:

When I was first learning to program, I often wanted to find some "magic" that would make tasks easier.  Now, I have enough experience to know about how much work a task will take.  However, this might blind me to other approaches that would, in fact, be much better/elegant.  Vitalije's new read code could be called an example.

It's nice to know my search for programming "magic" is an ailment that others have experienced.

​Hehe.  It reminds me of the quote that "all progress depends on the unreasonable [person]".​

Part of Leo's "magic" that has attracted me more than other outline based programming tools is that it aspires to be (in the outlining editor sense) language agnostic.

​In fact, it is straightforward to add support for execute-x-script for any other language x.

Edward

Offray Vladimir Luna Cárdenas

unread,
Sep 8, 2017, 12:34:25 PM9/8/17
to leo-e...@googlegroups.com

Hi,


On 05/09/17 14:52, Edward K. Ream wrote:
On Tue, Sep 5, 2017 at 11:52 AM, Offray Vladimir Luna Cárdenas <off...@riseup.net> wrote:

I think that the big idea is hypertext and hypermedia. Web, browser, eclectic full stack development frameworks, and other current trends and common techs are just, kind of poor overcomplicated, implementations of such ideas and the way to interact/develop in them.

​You could say that Leo is an amalgam of Emacs and More, with a little vim thrown in.

I would add to that amalgan Python, which is a big deal on it. On my own alchemy, Grafoscopio is an amalgam of Leo and Jupyter with Pharo/Smalltalk.



When I was first learning to program, I often wanted to find some "magic" that would make tasks easier.  Now, I have enough experience to know about how much work a task will take.  However, this might blind me to other approaches that would, in fact, be much better/elegant.  Vitalije's new read code could be called an example.

Yes, magic takes a lot of work. I'm learning that, but still working on magic, trying to explore and combine ideas in original ways and having some original contributions, hopefully.


A web browser has 25+ million lines of code! [1]. Do we need all this incidental complexity to render/navitate hypermedia?

​I wonder how browser devs would answer this question.  My guess is that conforming to web standards is a big part of the job.


I think that also. Gilad Bracha says something about how hypertext could look like if you're freed from the web and its standards bodies.

Cheers,

Offray

Offray Vladimir Luna Cárdenas

unread,
Sep 8, 2017, 12:40:35 PM9/8/17
to leo-e...@googlegroups.com

I also think that Leo is unbeatable on deconstructing textual information, particularly programs made in almost any programming language. I'm pretty sure that it will be my tool of choice for a future archeology of text based programming languages and hopefully others will adopt it for similar task and in their day to day usage of computers.

Now that I'm more into objects, live coding and data visualization, a more instant feedback is required and that's were Grafoscopio, Pharo Smalltalk, moldable tools and agile visualization come into play. In that case, the big complexity collapse provided by a single language system allows me to focus in the domain task, while gives me bindings to commons data bases (SQL) and data serialization formats (JSON) to talk with the external world, while keeping me inside a powerful, consistent and simple live computing environment.

Cheers,

Offray

john lunzer

unread,
Sep 8, 2017, 1:10:16 PM9/8/17
to leo-editor
On Friday, September 8, 2017 at 12:34:25 PM UTC-4, Offray Vladimir Luna Cárdenas wrote:


I think that also. Gilad Bracha says something about how hypertext could look like if you're freed from the web and its standards bodies.

I've been giving some thought lately about adding directive-based hypertext capabilities to Leo. Basically anywhere in any outline you could add @tag TagName. If you wanted to add this to code in any language you would have to put it in a comment.

Then anywhere else in the code (or even a headline) you could add @link:TagName:"But display this text instead of the TagName" and Leo would automatically replace with a hyperlink. 

The biggest challenge I have come with when thinking about the design is coming up with a system to keep track of the location of @tags. I imagine it would require some heavy lifting to autodetect @tags and to keep a valid live database of @tag locations. 

I'm still thinking about it but if anybody has any ideas I'd be happy to hear about them.

Edward K. Ream

unread,
Sep 21, 2017, 12:01:20 PM9/21/17
to leo-editor
On Sun, Sep 3, 2017 at 12:02 PM, Offray Vladimir Luna Cárdenas <off...@riseup.net> wrote:

Hi John,

Thanks for these links. I just finished to see the Hopsotch video, including questions, that are interesting to me as a Smalltalker, and is curious to see the misreadings once and again, about "but we're giving too much power to the 'end user' kind of questions". Also the live Leisure demo and the idea of Illuminated Programming, which seems pretty much like Literate Computing [1].

[1] http://blog.fperez.org/2013/04/literate-computing-and-computational.html


​Folks, this post exposes a major scandal.  There seems to be no evidence at all for fiscal austerity measures!

QQQ
It's absolutely unacceptable that major policy decisions that impact millions worldwide had until now hinged effectively on the unverified word of two scientists: no matter how competent or honorable they may be, we know everybody makes mistakes, and in this case there were both egregious errors and debatable assumptions. As Konczal says, "all I can hope is that future historians note that one of the core empirical points providing the intellectual foundation for the global move to austerity in the early 2010s was based on someone accidentally not updating a row formula in Excel." To that I would add the obvious: this should never have happened in the first place, as we should have been able to inspect that code and data from the start.
QQQ

Words can not express my rage at such malfeasance.

Edward

Offray Vladimir Luna Cárdenas

unread,
Sep 21, 2017, 12:36:37 PM9/21/17
to leo-e...@googlegroups.com
That's why reproducible research and literate computing have such high priority. Leo can provide a lot in both fronts. Computation has social impacts in a world that is increasingly mediated by data and where this has political and social wide implications.

Cheers,

Offray
Reply all
Reply to author
Forward
0 new messages