Thanks for your testimony John. I have given some similar testimony [1].
I'm trying to bring some Leo ideas to the Pharo live coding environment
by prototyping them and some other back here by discussing on the list.
[1] http://leoeditor.com/testimonials.html#offray-luna-cardenas
The idea of outlining as emergent order is a powerful way of dealing
with our own cognitive limits, not only for the programmer, but for
anyone that wants to make literate computing on complex matters
(scientists, activists, journalists, students, teachers, etc.). The idea
of having a development environment behind the notebook experience is
being explored by Org Mode with emacs and now by Jupyter with Jupyter
Lab and Grafoscopio with Pharo. I wonder how we can deal with complexity
when we combine this emergent order of outlining with live coding and
broader dev frameworks. Precisely today I was making some mind maps
about this:
This are interesting times for ideas crosspollination and exploration.
Cheers,
Offray
On 03/03/17 10:11, john lunzer wrote:
Warning: This is a testimonial, sorry.
Lately I've been thinking about programming in general. My thoughts
have centered on the limits of the human brain to understand computer
programs. This was triggered by watching Inventing on Principle
<https://www.youtube.com/watch?v=PUv66718DII>. It's a daunting
multifaceted concept which I'm sure people spend their entire lives
pondering.
Most recently I've been focusing on one facet, abstraction and program
"units". I define a "unit" as a part of the program that is considered
a piece onto itself which can be labeled and referred to as a whole.
Perhaps, as a daily Leo user, this is easy to think about because Leo
does its best to coerce programmers and programs into looking at
programming through this lens.
Most tools do not ignore this concept all together. Most programming
environments have some sort of "outline" window which allows you to
view the structure of a program at a higher level. As I have
experienced it this "outline" view is always dictated by the features
of a language (ex. outline divided up at module, class, function
levels). In addition most tools incorporate "code folding" to help a
programmer focus on language specific programming units (again, ex.
folding at class and function definitions).
Leo takes this concept to its limit. Leo offers language agnostic
abstraction at arbitrary levels. It allows a programmer to structure
their program outside of the confines of the programming paradigms of
the language they're programming in. Of course it still helps to use
the language specific "units" as a guide, in fact this is what Leo
does upon import to create an initial outline structure from programs
originating outside of Leo.
I can't ignore the freedom of arbitrary abstraction, and I've come to
rely upon it so much that I struggle to use non-Leo environments. It
is well known that the human brain has a limited working memory. The
act of programming stretches working memory to it's limit. Leo
provides an environment in which a program can seamlessly be
restructured to fit within the bounds of a programmers individual
working memory.
I realize this is a "why" and not a "how" and that this doesn't help
anyone get better acquainted with Leo. But, as a programmer if you've
ever felt frustrated with the organizational constructs of the
language you're working in you might be surprised to realize that
after using Leo it wasn't the language that was the problem, but a
lack of tools to organize your programs in a way that makes sense to
/you/.
--
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 [email protected]
<mailto:[email protected]>.
To post to this group, send email to [email protected]
<mailto:[email protected]>.
Visit this group at https://groups.google.com/group/leo-editor.
For more options, visit https://groups.google.com/d/optout.
--
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 [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/leo-editor.
For more options, visit https://groups.google.com/d/optout.