Use @clean. While not automatic, it preserves structure in your .leo
file instead of using sentinels. That solves half of the problem.
But I agree, many filetypes are simply not able to be automatically
imported with any real sense of meaning.
-->Jake
On 8/18/2015 3:59 PM, David McNab wrote:
Hi Ed, thanks for your detailed response.
I do agree with your points that (at least for now) the desktop isn't
dead yet. But
delivery model aside, I'm still hopeful that some evolution might
happen for Leo to end up being workable in a team environment.
I got a bit of a rude shock a year ago when I took my present
development role. At first, I imported one of my job's codebases into
a Leo tree, with aim of continuing with Leo as my editor of choice.
But I saw that this would be unworkable, since my teammates would
crucify me for "polluting" the files with Leo sentinels, whilst any
changes made by others would be difficult to reflect in the Leo view
without removing then reimporting the file.
With Python code, it's not such an issue, since Leo is generally quite
good at carving up Python sources into a simple module/class/method
hierarchy. The difficulty comes with file types that are hard to carve
up automatically AND meaningfully, such as javascript, html templates,
css and so on.
For write-only applications (ie, single-developer projects), Leo is on
numerous fronts the tool of choice. But in scenarios where Leo needs
to accommodate changes made by non-Leo users, people who won't accept
Leo sentinels, and who reject literate programming, there's a
struggle. This is a non-trivial issue, that does not reflect on Leo,
but rather reflects on team development culture.
I would love nothing more than to be able to edit the company's
80,000+ lines of source in Leo, while still being able to work in with
my teammates, and would welcome any suggestions.
Cheers
David
On 19 August 2015 at 03:40, Edward K. Ream <[email protected]
<mailto:[email protected]>> wrote:
On Mon, Aug 17, 2015 at 8:17 PM, David McNab
<[email protected] <mailto:[email protected]>> wrote:
I agree - Leo is probably way more than 100% feature-complete.
It's also been a tremendous comfort to me and my solo
programming efforts over the years.
Glad to hear it.
However, Leo is still imprisoned in the
standalone-software-installed-on-desktop paradigm, and thus
stuck in a rapidly-disappearing era.
Yes, web-based services are increasingly important, but unless I
am greatly mistaken most programmers still use laptop and desktop
computers and Emacs, vim, Eclipse and the like.
I don't see that changing anytime soon, and if it does change it
will likely be the result of tools that don't yet exist.
Furthermore, security problems are troubling with any web-based tool.
The biggest problems I've had with Leo to date have been:
* Gaps in backward incompatibility - serious corruption and
data loss issues when editing years-old Leo files,
something which has tripped me up many times
The work around is to use the old versions of Leo to recover the
data, then copy and paste to a newer version of Leo. I have no
plans to retrofit any further backward compatibility code.
Incompatibility with team environments - inability for more
than one developer to work on files at once
I can't use Leo on my tablet or smartphone, unless I
screenshare in to a desktop running it. Unless the tablet is
on a LAN near the desktop, and has a 10" screen, this is
unworkable.
Supporting tablets or smartphones requires support for Python and
PyQt on those platforms. Iirc, Ville created a Leo reader for
Android, but I could be mistaken
*I would suggest that Leo's future lies in a complete rebuild,
cloud from the ground up. Firstly, a decent API into a
cloud-based Leo engine. Secondly, decent GUI clients on Web
(Ember.JS? Pyjamas? AngularJS?) and Android/iOS.*
What to say about this...
Perhaps the best analogy for this kind of product is the split of
IPython into the Jupyter project: https://jupyter.org/
The IPython/Jupyter project is one of the most successful Python
project in existence. It has received millions of dollars of
research funding over the years, including a large recent grant of
over $6 million, iirc.
There is a huge amount of engineering in this project--far beyond
my ability. In particular, I call your attention to the security
model. It's crucial for this project, and it's crucial that it be
absolutely solid. I am not in a position to undertake any kind of
security-related code.
In theory, one could imaging forking IPython/Jupyter into a
Leo-centric project, but forking other people's projects seldom
ends well. And I don't have any energy for this.
Alternatively, one could imagine trying to convince the Fernando
Perez to add Leonine feature to Jupyter, but I would not be
interested if I were he :-) There's too little overlap of purposes.
The cloud-based paradigm, for me, would do away with the
concept of a leo "document". Instead, it would focus on a
'view', which may contain one or more nodes. Nodes would exist
outside of views, and be able to reference other nodes
recursively.
Not a bad idea, but I have no magic wand to make it happen.
The APIs could then be supported by widgets in the main
client-side toolkits, to allow web apps to embed Leo editing
widgets with ease.
Files are where it gets tricky. Non-Leo-users absolutely
detest the Leo sentinels. But updating a node tree to reflect
changes in a file outside Leo is a programming task beyond
merely painful.
And other people's files are what make security so important.
Weren't you the one who pointed this out years ago? Or maybe it
was Paul Patterson.
However, if Leo is
made to be as team-friendly as Google Docs (where you can even
see teammates' cursors in different colours moving around the
document), there will be virtually no need to edit files from
outside the Leo environment.
Again - desktop is dying. Leo *has* to go cloud!
Desktops aren't dead yet, and won't likely fade away until well
after I personally am gone.
I will consider porting Leo in the cloud when easy to use tools
for doing so exists. I don't believe I will long enough to move
Leo to the cloud with the existing tools.
Edward
--
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 http://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]
<mailto:[email protected]>.
To post to this group, send email to [email protected]
<mailto:[email protected]>.
Visit this group at http://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 http://groups.google.com/group/leo-editor.
For more options, visit https://groups.google.com/d/optout.