In the next few weeks I'll be taking a short breather from intense 
programming. I am looking around for interesting topics to study...

*Rust*

I am in the midst of studying rust. The tools and docs continue to improve. 
The core concepts aren't too difficult to digest.

We programmers act as if we know the types (and lifetimes) of our (python) 
objects. Rust shows us the limits of this intuition. That's the main reason 
I am interested in rust, but there may be practical applications...

No, Leo's official distros aren't likely ever to contain rust modules. That 
would be difficult to do. Instead, I am considering creating a permanent *rust 
branch* for those who want to use rust modules in Leo. Interested users 
could then do 'cargo build' in this branch. This should be way simpler than 
making C language extensions.

*WebAssembly*

WebAssembly (wasm) is intriguing technology. For example, see this post 
<https://hacks.mozilla.org/2019/04/pyodide-bringing-the-scientific-python-stack-to-the-browser/>.
 
For now, I'm treating it as deep background:

- I don't see any way for someone like me to do something significant in 
this arena.

- WebAssembly (aka wasm) seems less important now that we all agree that 
Leo will remain a desktop app.

As far as wasm goes, rust has a (temporary?) advantage over python, because 
wasm doesn't yet support garbage collection.

*6.3 projects*

This might be the year that Leo interacts with editors such as pyzo and 
neovim. The obvious thing to do, and maybe the simplest, is to use Almar 
Klein's yoton library. It's part of pyzo. The hello world example 
<https://yoton.readthedocs.io/en/latest/overview.html#example> works, but 
is useless. Instead, more complex code is needed, as shown in pyzo itself.

Getting to know yoton should help Leo talk to neovim (#1235 
<https://github.com/leo-editor/leo-editor/issues/1235>) and pyzo (#1384 
<https://github.com/leo-editor/leo-editor/issues/1384>). My guess is that 
these IPC projects are either going to be straightforward or practically 
impossible :-) A few weeks of prototyping should tell.

The biggest project on the 6.2 is rewriting Leo's key handling (#1269 
<https://github.com/leo-editor/leo-editor/issues/1269>). It's a major 
project, for sure, but it should be relatively self contained.

I have just now promoted #1068 
<https://github.com/leo-editor/leo-editor/issues/1068> (fast redraw) to 
6.3. It's completely experimental.

*Summary*

I'll keep my eye on rust and wasm. Leo might even support rust extensions.

The 6.3 list 
<https://github.com/leo-editor/leo-editor/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+milestone%3A6.3>
 
contains several interesting projects.

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].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/leo-editor/f6b9b182-cc07-4d94-86a8-5e6840ec879a%40googlegroups.com.

Reply via email to