I think it's also about building on Jupyter concepts as reproducible 
literate programming platform, not just cloning its current functionality

See it as an alternative to the JupyterLab application 
(https://channel9.msdn.com/Events/PyData/Seattle2017/BRK11), reusing the 
same capabilities from Jupyter notebooks in terms of computing power 
(multilanguage kernels), document integration (markdown + code cells in the 
same entity), and ecosystem for all sort of data visualization (ipywidgets)

Things that "leopyter" could do better in my opinion would come from better 
underlying data structures: 
 - Hierarchical document structure would result in more organized notebooks 
(example https://app.notablemind.org/tutorial/)
 - Causality: Establishing dependencies between cells execution does not 
come out of the box in Jupyter, it requires extensions 
(https://github.com/stitchfix/nodebook or 
https://www.youtube.com/watch?v=5MmXs6m3JcE) . This is essential for 
 repetitivity and maybe leo graph structure could accommodate this 
 - Links: being able to navigate across multiple notebooks in the same leo 
document, which could be useful for keeping a knowledge base within a 
notebook repository
 - Separate code from outputs. One of the main strengths for Leo, combining 
code and results into the same document, is also one of its main 
limitations. The workflow for many people like me is to use the notebook 
first to "play with a problem" while documenting/visualizing results and 
then mature the code, isolating it to a function/library for broader use. 
Having results and code in the same json document makes this process a 
little bit more complicated, in many cases forcing the programmer to 
refactor the notebook to extract the code (e.g. 
http://opiateforthemass.es/articles/why-i-dont-like-jupyter-fka-ipython-notebook/)
 
Also, it you want to keep your code under version control, you need to 
somehow strip out the results before committing it (e.g. 
https://github.com/kynan/nbstripout).  I believe leo cloning and three way 
merging mechanism introduced for @clean could probably help in separating 
notebooks into different physical store files that get together in edition 
time
 - Metadata associated with nodes can facilitate multiple views of the same 
tree document. This is something I believe is in earlier stages of use for 
Jupyter: e.g. offering multiple views of the same document using cell 
annotations (e.g. cells as slides https://github.com/damianavila/RISE) or 
filtering information
- Broader experience injecting different data-formats into the document 
model (ReText, code, ...) than jupyter (with rare cases of use outside its 
json format, like https://github.com/rossant/ipymd)

On the other side, while I certainly like python and use it for many 
purposes, it has been a while since I gave up to the idea that python 
interfaces would be more solid than web UIs (javascript,...) And I think 
leo deep roots on python can be a factor slowing down the adoption of some 
of these technologies for the front-end. For literate programming 
interfaces there are things that modern javascript and web technologies do 
very well:
* Moving to cooperative environments is relatively easier since you can 
reuse much on the code in your desktop based application (e.g. 
https://github.com/nteract/nteract) to deploy a multiuser server 
application (https://github.com/nteract/commuter, https://cocalc.com/). 
* Html rendering technologies  really play well with advanced visualization 
for all sort of multimedia information, from maps 
(https://github.com/OpenGeoscience/geonotebook) to scientific data plots 
(https://plot.ly/python/getting-started/)
* Web technologies favored frameworks with clear separation of Model-View 
to facilitate content production (CSS, etc). This, although being 
incorporated to desktop technologies like QML, can facilitate offering 
multiple perspectives of the same document as mentioned before (mindmap, 
slides, kanban board, etc e.g https://jaredforsyth.com/treed/)  
* Having its roots in the web, javascript has very interesting capabilities 
for concurrency, asynchronous operation, etc. Its a good playground for 
technologies like functional programming, reactive interfaces, declarative 
interfaces, etc. And it keeps growing in popularity, with many available 
libraries and potential contributors

Fortunately, it seems python+javascript have the potential to coexist and 
complement each other well, with some examples like dash 
https://medium.com/@plotlygraphs/introducing-dash-5ecf7191b503

Just my 2 cents
   

On Friday, October 27, 2017 at 10:48:13 AM UTC-4, Edward K. Ream wrote:
>
>
>
> On Thu, Oct 26, 2017 at 8:51 AM, Terry Brown <terry...@gmail.com 
> <javascript:>> wrote:
>
>>
>> > Does this vision match yours? Here are some initial thoughts.
>>
>> My thoughts, which include a lot of groundless assumptions about how
>> Jupyter works, would be that we have a new node type:
>>
> ​[big snip]
>
>
> Thanks for all these thoughts.  I have copied them into #561 
> <https://github.com/leo-editor/leo-editor/issues/561> for reference.
>  I also added some short, anodyne comments ;-)
>
> I think it was a mistake to create a separate thread for #561 here on 
> leo-editor.  Let's continue the discussion either on #561 itself or in the 
> jupyter 
> project page <https://github.com/leo-editor/leo-editor/projects/1>.​
>  
>
> ​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 leo-editor+unsubscr...@googlegroups.com.
To post to this group, send email to leo-editor@googlegroups.com.
Visit this group at https://groups.google.com/group/leo-editor.
For more options, visit https://groups.google.com/d/optout.

Reply via email to