leojs alpha

88 views
Skip to first unread message

Félix

unread,
Jun 22, 2023, 12:40:46 AM6/22/23
to leo-editor
After coding for a few years, I just spent a few minutes tonight playing around with a 'somewhat working' leojs...!

So I guess i'm just posting this to say that i'm excited to announce that a first leojs "alpha" is coming soon!

All the features I wanted for a first alpha release are done - and only some ironing out of little bugs remain. 

...So anywhere from a week or two, or a month or two, hard to say, but it's going to be this summer! :D

Thanks to all who supported me, (or just gave feedback and suggestion) It really made a difference and motivated me!

Félix

Edward K. Ream

unread,
Jun 22, 2023, 6:02:34 AM6/22/23
to leo-editor
On Wednesday, June 21, 2023 at 11:40:46 PM UTC-5 Félix wrote:
After coding for a few years, I just spent a few minutes tonight playing around with a 'somewhat working' leojs...!
...
...So anywhere from a week or two, or a month or two, hard to say, but it's going to be this summer! :D

The first release of leoJS will be an important milestone:

- leoJS will integrate with vscode more smoothly.
- leoJS fully transliterates Leo's core into typescript.

Thanks to all who supported me, (or just gave feedback and suggestion) It really made a difference and motivated me!

You're welcome. And many thanks for your tireless work :-)

Edward

Edward K. Ream

unread,
Jun 22, 2023, 7:08:48 AM6/22/23
to leo-editor
> ...So anywhere from a week or two, or a month or two, hard to say, but it's going to be this summer! :D

Assuming vs-code allows it, I encourage you to release an alpha version asap. There is nothing wrong with a list of known bugs.

Edward

Arjan

unread,
Jun 25, 2023, 9:03:39 AM6/25/23
to leo-editor
> After coding for a few years

Awesome perseverance. I've just continued using regular Leo because I'm used to the workflow, but I hope to find some time to play with the newer developments. Good luck!

Félix

unread,
Jun 25, 2023, 2:47:30 PM6/25/23
to leo-editor
Thanks Arjan!! 

Simple encouragements and feedback means a lot to me!

Félix 

jkn

unread,
Jun 26, 2023, 10:09:17 AM6/26/23
to leo-editor
Hi Felix - something I've missed in the exciting mentions re. leojs here. Is the 'transliteration' done manually ('after coding for a few years'...) or via some (semi'?)-automated process?

If the former, I'm wondering how 'upstream' work on Leo gets incorporated. If the latter, I'm curious about the process...

Thanks & Regards, J^n

Félix

unread,
Jun 26, 2023, 2:14:36 PM6/26/23
to leo-editor
Hi jkn! :D

Thanks for your interest and questions! 

I've translated/transliterated (not sure which is appropriate!) about 99% myself manually, and I've used chatGPT for small parts (e.g. some regular expressions, some small quirky methods) which I would estimate to be 1% of the code. (anyways - from 2021 to early 2023 chatGPT did not even exist!)

Even then, the parts translated with AI had to be manually inspected and tested. (I've played a lot with chatGPT translations from python to typescript and it does not account for subtle details in some "almost identical" native functions, which inevitably break the intended behavior) In fact, the more important and subtle a detail is, the more likely it is that AI will ignore it. (which may even compile and run in normal cases, but break in edge/extreme cases)

For example, regex (Leo uses those a lot in critical places) have subtle differences in the usage of 'flags' such as 'm' or 'g' in python vs javascript, which will totally fail if not taken into account.

So it's really risky to use AI for translation. (if not thoroughly inspected and tested) 

About the 'upstream' work on Leo - I did the oldest, less likely to change code first. Also, I have not done the importers yet, nor the unl support, which happen to be re-written or changed in the last few weeks.... hehe !

 For other stuff that changed, I try to keep up by collaborating with Edward to change Leojs & match Leo's changes as quickly as possible, as to not fall to much behind.

I look in the commit history and diffs with tools in gitlens (vscode extension) to keep up with the changes and modify leojs as much as possible.

I usually work on implementing stuff for 2-3 weeks ,and then spend a week to catch up with what was updated by Edward (if it happens to be on stuff already in leojs). 

Thanks for your support and curiosity! Best to you - Hope you'll be testing & reporting bugs when I release the first beta in a few days (or weeks)!  ;)

Félix

Thomas Passin

unread,
Jun 26, 2023, 2:41:34 PM6/26/23
to leo-editor
On Monday, June 26, 2023 at 10:09:17 AM UTC-4 jkn wrote:
If the former, I'm wondering how 'upstream' work on Leo gets incorporated. If the latter, I'm curious about the process...

Keeping two code bases synchronized is nearly impossible in the long run.  Each one evolves in its own way, and the second is almost always some revisions behind the first.

I remember reading an article years ago about an US Air Force effort to see if a particular newer methodology for software development was superior the their existing process. The USAF got convinced to have a team try to duplicate an existing system, which I think (IIRC) was a fire control module for a particular jet fighter.  The team got to work, but by the time they had it working, the module in use had evolved new capability.  The team was never able to catch up with the version in use.  So the test of methodologies was never able to be completed, and no product was ever produced with its results.

Leo may not be as complicated, but the principle remains.  And as LeoJS gets into use, its users will start wanting and adding new features that aren't in Leo itself.  The two products will diverge over time.  There's nothing wrong with this, it's just the way things work.  The more that new features can be added as plugins, the less the cores will tend to diverge.

jkn

unread,
Jun 26, 2023, 3:38:56 PM6/26/23
to leo-editor
Hi Félix

Thanks for the extra information. That does sound like a lot of work, I (too) am impressed with your dedication. But I agree with Thomas that maintaining two codebases in sync is probably and impossible job in practice.

I would kinda-hate Leo to end up as a javascript (/typescript) app instead of a Python one ... but I am also very interested in seeing the results. I will try to be a beta tester for you ;-)

Regards, J^n

Félix

unread,
Jun 26, 2023, 4:04:19 PM6/26/23
to leo-editor
haha! don't worry - Leo is Leo and LeoJS is it's own thing :) 

But who knows what the future holds for Leo, LeoInteg and LeoJS?

Thanks again for your input! People's ideas and suggestions on this forum are what fueled my motivation to code all of this!

Félix

Edward K. Ream

unread,
Jun 26, 2023, 5:40:51 PM6/26/23
to leo-e...@googlegroups.com
On Mon, Jun 26, 2023 at 2:38 PM jkn <jkn...@nicorp.f9.co.uk> wrote:

I agree with Thomas that maintaining two codebases in sync is probably and impossible job in practice.

I'm not worried. Leo on the desktop is complete as it is. I trust Félix to bring the Leonine world to vs-code.

Edward
Reply all
Reply to author
Forward
0 new messages