(gotta be a Genesis joke in there somewhere ...)
That was me! I was just GitHub surfing and saw that Eve hadn't made much progress on the documentation side. Leo on the other hand has plenty of documentation, but its organization to me is more historical than efficient.
mini-story about your colleagues wondering how you got such a good memory
So, Leo appeared on the Eve mailing list. Eve is a project of Chris Granger, author of the Light Table IDE which had lots of buzz a while ago
However, it's [Eve] not yet useful for me. I spend my days building compilers and IDEs, tasks which are not exactly a core focus for Eve. So if Eve is an experiment in 'programming for knowledge workers' then Imp is an experiment in 'programming for people who make things like Eve'
Sorry for the delayed response here, the "summary" of Leo was from me. I believe Joshua was the one who started the thread.
1. programming is hard because our computers are organized around text. Until that changes, our programs will be built on text.
the big problem with "disruptive technologies for the future" is the idea of reimagining all from zero, without looking from interesting ideas of the past (Smalltalk) and present (Leo, Pharo, IPython) and trying to combine them[*]. Cross-pollination seems the best approach for innovation, but is difficult to get with such specialized self-centered communities and technologies of current times.
I agree. That's why importers/exporters have high priority in Leo. Have you tried Leo's new Jupyter integration?
Not yet. I think that interaction between Leo and IPython shouldn't be centered around file importers/exporters, but on "services". The question would be how to make a node of Leo become behaves/becomes like a cell talking with IPython (with code completion, graphics, etc.)
[1] The Future of Programming https://vimeo.com/71278954 (please see it all, it's half an hour worth).
On Fri, May 13, 2016 at 10:45 AM, Offray Vladimir Luna Cárdenas <off...@riseup.net> wrote:
I agree. That's why importers/exporters have high priority in Leo. Have you tried Leo's new Jupyter integration?
Not yet. I think that interaction between Leo and IPython shouldn't be centered around file importers/exporters, but on "services". The question would be how to make a node of Leo become behaves/becomes like a cell talking with IPython (with code completion, graphics, etc.)
Maybe, but that's a lot of work.
Jupyter is really good a code completion & graphics, and the first step is just to use that capability.
Two notes:
1. IPython does really good code completion because all the Python objects are "live". Leo's livecode and valuespace plugins have similar capabilities.
2. IPython gets its cool graphics capabilities from matplotlib, which is easily done in Leo too.
So Leo already has live completion, graphics and Jupyter integration. Yes, service-oriented integration would be great. Perhaps your students could do it ;-)
[1] The Future of Programming https://vimeo.com/71278954 (please see it all, it's half an hour worth).
[2] Media for Thinking the Unthinkable https://vimeo.com/67076984 (10 minutes longer and also worth :-).
Do you follow Ville?
Pieter Hintjens @hintjens brilliant code and writing,
In my case, when I found Squeak almost 10 years ago I felt it interesting and empowering for me and my students, but also it imposing to much pre-existing structure on me, while Leo with its emerging outlining structure was a liberating experience, particularly because most of what I do is writing plus scripting. Then I see the improvements on IPython notebook and thought some ideas about integrating them [3], but there was a lot of (accidental?) complexity on the technologies behind, so I took a new approach not with the specific technologies (Leo + IPython), but with the ideas (outlining + live coding / interactive writing and visualization) in Pharo[4]. In this way I'm getting the core of what these technologies bring to me and still I'm using them for specific purposes (Leo for deconstructing others textual code is unbeatable).
A common feature in Pharo as well as Spyder and the pudb python debugger is the object explorer. This I believe is a useful pillar of the live coding environment.
It is a true shame that pudb is non-windows only.
I wasn't exactly implying that pudb itself should be integrated, just that namespace object browsers are an integral part of "live coding". Having an object that you created that presented to you to browse and manipulate visually gives a tangible feel to code.
On Friday, May 13, 2016 at 10:17:12 AM UTC-5, Offray Vladimir Luna Cárdenas wrote:
In my case, when I found Squeak almost 10 years ago I felt it interesting and empowering for me and my students, but also it imposing to much pre-existing structure on me, while Leo with its emerging outlining structure was a liberating experience, particularly because most of what I do is writing plus scripting. Then I see the improvements on IPython notebook and thought some ideas about integrating them [3], but there was a lot of (accidental?) complexity on the technologies behind, so I took a new approach not with the specific technologies (Leo + IPython), but with the ideas (outlining + live coding / interactive writing and visualization) in Pharo[4]. In this way I'm getting the core of what these technologies bring to me and still I'm using them for specific purposes (Leo for deconstructing others textual code is unbeatable).
I've been thinking about these topics.
Two days ago I installed Pharo and played with it a bit. There are a few pluses with Pharo, especially for students. But there are also minuses, compared with Python and Leo. For starters, Python is a much better language for beginners, imo of course.
Later in this thread you said, "I think that interaction between Leo and IPython shouldn't be centered around file importers/exporters, but on "services". The question would be how to make a node of Leo become behaves/becomes like a cell talking with IPython (with code completion, graphics, etc.)"
I replied that this would be a lot of work. On second thought, this "lot of work" might be an excellent new direction for Leo.
And you also said, "If I could bring one feature of Smalltalk to Leo it would be live coding (the idea of making some Leo nodes, IPython cells)."
I'm not sure exactly what this means, but it might be easy to do. At present, whenever you run a script (with Ctrl-B, execute-script), Leo creates (on purpose) a new Python namespace. It would take just one or two lines of extra code to use a common namespace for a new command, say execute-script-in-common-namespace, or maybe, execute-ipython-script.
This isn't exactly IPython cells, but it would retain "live" objects (in the common namespace).
On my walk yesterday I had what seems like an exciting idea. I wonder if you would be interested. It might be possible to have Leo do everything that can now be done in Pharo. And it might not take much additional work:
- A common namespace for certain kinds of exploratory programming.
- A graphics canvas for (student) drawing projects, and a Qt turtle graphics library. At present, Python's turtle graphics is based on Tk, but there is Qt-based turtle-graphics app called pynguin.
- Some kind of "service-based" integration with IPython. Don't know what this would entail, but Jupyter already has a client-server architecture, which I used while developing Leo's .ipynb import/export commands.
- Some kind of debugging environment. The simplest would just be Python's pdb module with Leo running in a console window. It would be good to be able to connect Leo to a console after starting Leo, but that's a frill. It may also be possible to use parts of spyder to improve Leo's debugging.
- A Python tutorial, integrated into Leo by opening, say, PythonTutorial.leo from Leo's Help menu.
- An easy way to install everything. I think Anaconda should work.
These are just my guesses about what you might want for your students.
If this kind of project interests you, please let me know. I think it would be possible to do all this for the start of your autumn semester.
This project interests me because it is a new way to make Leo popular. If we could train a generation of students to use Leo, Python and IPython, some of those students would continue to use Leo and would tell the world about it.
What do you think?
Hi,
It's really nice to have this conversation. Long time ago I talked about Leo and computers as "cognitive devices" for (de)construction adn how it makes for files what Smalltalk mades for objects.