Hi,
I felt kind of the same way as a non-programmer and a newbie while
dealing with Leo. The idea of a emergent tree/document with clones kept
me in the community, despite of not understanding well the scripting
ideas behind Leo after years and being send elsewhere to learn python.
So I have a divide between having a powerful and interesting environment
that doesn't teach me the basics, and some courses that did, but without
any consideration for the learning/programming environment. This tightly
coupling of environment plus language is really attractive in projects
like Pharo/Smalltalk, Racket and Jupyter.
The scripting manual doesn't taught me how to do common stuff in python,
but how to script Leo in python and was only after years that I saw the
powerful idea of a self-referential programmable tree, while I was
writing my academic research, not in the common day to day python
scripting tasks (despite of using Leo also for python scripting).
So I agreed on the documentation being to specialized and reflecting a
lot of accumulated experience in Leo, but having problems to speak to
new comers. I think that Leo could be a powerful learning environment to
present a lot of themes, from programming to newbies to literate
computing for journalist, activist and scientists and that's why I have
advocated interactive computing in Leo, because making Leo such
versatile learning tool requires a community, not a single
developer/author. There are multiple approaches and themes for a lot of
learning paths. I would try to provide an interactive computing
environment that empowers such variety of authors, learning paths and
themes and create some interactive example documents (in fact that's
what I'm doing with Grafoscopio/Pharo).
Summarizing: Leo has extensive documentation from 20+ years of
accumulated experience, but is a difficult documentation from learners
of several disciplines and paths. Powerful ideas (like self referential
programmable trees) are difficult to see and making Leo easy to learn
for a wide variety of potential users goes beyond any individual
capacity. That's why enabling literate computing (even "restricted" to
Python) could leverage the power of a wide variety of learning
communities and authors to create interactive documents for a lot of
potential Leo users.
Cheers,
Offray
Ps: I have found another interesting apps for interactive computing as a
desktop app for the Jupyter environment, nteract and hydrogen:
https://github.com/nteract/nteract
https://github.com/nteract/hydrogen
None of them (web or desktop) still have a self referential programmable
tree as a document metaphor (Leo, Org-mode and eventually Grafoscopio,
are leading this front).
On 05/02/17 22:50, Sr U wrote:
https://www.programiz.com/python-programming/examples/calculator
Ed, At the risk of offending (absolutely not what I am intending as I
want HELP), I suspect Leo is not catching on because of marketing
errors. Specifically, you haven't recognized and properly met the
needs of Leo's NATURAL /obvious target market: BEGINNING PYTHON
PROGRAMMERS WHO ARE OVERWHELMED WITH COMPLEXITY. Yes, even when you
are giving something of value for free, correct marketing is vital.
Possibly in addition you haven't understood your customer's real pain;
their real needs. Your customers need simplicity and they need step
by step. When coming to Leo they want to get the experience of
writing a simple -- but real and extensible -- program in a few
minutes. I think you are coming around to this point of view with
your KISS initiative of a few months ago, but I suspect you are still
not clear enough.
At the risk of assuming too much, I believe *I* am a pretty good
example of your ideal customer: (1) I haven't already settled on
another editor/IDE. (2) I have a problem with dealing with the
complexity that larger programs demonstrate in all the other editors
I've looked at. (3) I want my programs to be factored into an easily
traversible outline format. (4) I am a beginner at python --
although I am smart enough and motivated to learn.
I came here several months ago and asked for a simple tutorial. I'm
back here and it still doesn't exist. Maybe you can take 10 minutes
and create something to help me and probably many others?
This is a simple python program with 4 functions and just enough
simplicity to be understandable and relevant to any beginner python
programmer and just enough complexity to demonstrate the advantage of
Leo's hierarchical view:
https://www.programiz.com/python-programming/examples/calculator
Would you please help me (I really need some help to get started) by
factoring this in Leo, running it, and posting a link to the factored
code so I can load it and look at it for myself? I got it to work in
my terminal window but it is throwing an error I don't understand in
Leo (maybe because I haven't inserted any of your sentinals?). I
think the main body should be in one node with global variables in
another and each function in a separate node -- but I don't know how
to do that.
BTW I think this would be a perfect first step for a tutorial geared
toward your BEST target market. Again, anyone who has been
programming for a long period of time has already found an editor or
IDE which works well enough for them and (by nature of the fact that
they are still programming okay) probably doesn't need a hierarchical
editor ... or, even if they would benefit, will be a harder sell.
Further steps would be to guide the new Leo user, in a series of maybe
3-10 lessons, to develop the calculator code base in Leo -- ideally to
eventually make a GUI calculator with additional functions
(demonstrating how Leo can work with outside libraries and classes
perhaps).
But this FIRST step is the most critical: to show a beginning
programmer that Leo is FRIENDLY and easy to use for THEM.
What you are currently saying in your documentation (after digging
through multiple sections which are basically a lot of words which
don't mean much) is *"This chapter is intended for those fairly
comfortable with Python scripting. If you are not, please study the
excellent Python Tutorial <http://docs.python.org/2/tutorial/>."* Big
mistake. Big, big, big mistake -- as I said, NEW PYTHON PROGRAMMERS
ARE YOUR NATURAL MARKET. You want to help them and encourage them,
not throw them in the middle of the Atlantic Ocean and ask them to
come back after they have learned to swim!
Further, even advanced python programming experience doesn't really
translate to any solid advantage in grasping Leo. I'm not currently
much of a programmer but I used to code quite a bit and I hold
multiple technical degrees. The current Leo documentation is an
extensive thicket which doubtless would be useful after I am already
using the fundamental features of writing Python in Leo ... but are
pretty much useless until then. I suggest you take 95% of existing
documentation and HIDE IT AWAY under "Advanced uses".
Ed: Hopefully I haven't irritated you by trying to give constructive
criticism. I believe you have a much needed, brilliant creation in
Leo. But few can unwrap the package in order to try it out. I'm
suggesting you put your many other improvements on hold until you can
get folks such as myself operational creating a real program, properly
factored in Leo, in a few minutes.
Thanks for making this gift available to us! Sorry if I'm going on a
bit too much!
--
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.