Hi Edward, 😃

*I wrote this reply yesterday night before going to bed and am only posting 
this morning because I wanted to sleep on it first i guess...: I see that 
you have discovered the features and power of vscode in the meantime! haha! 
so please ignore the suggestion below about reading an article that 
explains most of it. I'm still posting it untouched below because otherwise 
they are my thoughts about Leo, vscode and the "state of programming 
technologies in our modern times".*

Here are some collected thought about Leo, vscode, and at the end, my 
thoughts about the specific points you brought up with the pros and cons of 
using vscode.

*One does not use Leo instead of vscode, nor does one use vscode instead of 
Leo. A programmer that understands the power they both have, alt-tabs 
(angrily) between the two. (well at least before I finish leoInteg)*

*So indeed, Knuth's vision was off by a small detail with regards to 
literate programming: The 'sections' concept only work when built upon 
directed acyclic graphs, i.e. "Outlines". This, I guess, is Leo's first 
foundational feature. (One of your most important discovery and invention 
Edward!)*

Leo is the friggin "level 9000" outline editor from outer space that 
enables all the things I list on the opening paragraphs of leoInteg's 
readme. Those things are also listed in your great and inspiring post : 
https://github.com/leo-editor/leo-editor/issues/1025 (Leo is not only the 
greatest one at this, it's the only one.)

At the workplace, like many, I went from visualStudio (90's) big corporate 
IDEs like eclipse/rational (00's), to sublime, somewhere late 2000's early 
2010's, and got convinced by coworkers to switch to vscode a year or two 
ago. (So i'm still quite a newbie in that regards)

If I'm not mistaken, vscode is a fork of atom, which is just a blank 
vanilla canvas "text editor with tree in the sidebar", where *everything is 
an extension*. Even the basic features and language(s) support:* it's just 
that those are pre-installed*.

vscode is the most popular "programmer's" text editor nowadays because it 
understands everything on the screen and will tell me, as I type, what 
members are available on any objects, even those who were just imported 
from outside libraries...Even when not running in 'debug'. It gives me 
detailed info on any word I hover over. When I'm about to write a variable 
to pass as a parameter it suggests/autocomplete with those that are on the 
scope and of the right type only. (well for typed languages at least, such 
as C, typescript, ...)

And I'm not even talking about all the *other stuff it picked up from 
sublime*... Please take 10-15 minutes if you could, to read this 
https://code.visualstudio.com/docs/editor/codebasics and the other entries 
under "user guide"

vscode takes in charge the workspace (opened folder) and will run 'Language 
Servers' that resolve any symbol, in the background, as you type and 
navigate your code. (Ex. When you rename a property/method, it changes in 
all files it is referenced at once.)

But for an explicit example of the kind of thing that made me go 'Wow!' 
when using vscode, I attached 3 gifs (See descriptions below):

https://drive.google.com/drive/folders/1YTccmnMnbGLwK1ooVIOL5NC00QbghXth?usp=sharing

While watching those gifs,* its important to note that the only thing I did 
to enable all this functionality was 'nothing': *I Just happened to be 
working in a folder (workspace) which contained a python file, which 
triggered vscode into asking me : "Hey, there's a python file in your 
workspace. Do you want vscode to install the default microsoft Python 
extension?" (Yes/Maybe Later) And I clicked 'Yes'. That's it.

Now if you've ever setup big corporate IDEs like eclipse, rational, or 
other modular IDE at work, You know you have many more things to configure 
and install before being totally setup for running and debugging 
effectively with all your favorite tools.

Gifs Description:

 1- showoff_vscode1.gif : autocompletion from imported libs: those sources 
being scanned to give me details were not 'specified' as existing anywhere 
in some project configuration file à la 'eclipse', vscode figured it out 
himself.
 2- showoff_vscode2.gif : I see documentation strings, and parameter 
definitions on hover, and use alt+click to 'dig' into definitions: in 
whatever source file, which again, It figured from the imports at the top 
of the script and the environment.
 3- showoff_vscode3.gif : In this gif, i'm stepping into the chunk of code 
I was talking to you about the other day. I configured nothing in order to 
do that. I just clicked in the margin to set a breakpoint and boom!

That's some of the stuff vscode did with opened python files. Features for 
other typed languages are even more helpful and well integrated. (because 
vscode goes through the type definitions of all symbols of all files in an 
opened workspace)

... which brings me to... 

To understand and love to use Leo while programming, you have to have given 
it a try. I was curious to try and use it after having read about it. But 
only once trying it, would anyone be convinced to keep and use another 
additional 'IDE/editor' on their computer. In my experience, the biggest 
element that was making my fellow young programmers (in their early 20s) 
*Not* *try* Leo was the tclTk/Pyqt GUI that made them feel like they were 
in notepad in 1998. And the fact that they had to alt+tab to another app, 
or minimize, to see the resulting derived files.

But enough of my rambling, here's some other thoughts about the specific 
points you underlined:

*Pros of using vs-code:*

- Many more plugins. That could also be a distraction.
    vscode is the first ide that 'gets' the plugins right: the plugins 
cannot create GUI/UI content directly, there is no access to the 'DOM'.
    plugins authors have to integrate additional entries in mouse-hover 
panel, activitybar, status bar, etc. Duplicates are handled and removed by 
vscode so it doesn't look bad. It's really mind boggling when you start 
developing extensions and expect to be able to create DOM elements! vscode 
will never have tons of rows of buttons and tools/panels because you have 
to insert in existing ones and icons/buttons are only visible on hover and 
if appropriate context makes sense.

- Probably better support for node.js, ts and js.

  indeed.

> - Probably better support for basic text editing.

   It's ahead of sublime now!

*Cons of using vs-code:*

- Leo's gui plugins won't work in vs-code.

    'gui' stuff specifically, yes, but other plugins should work.

> - Probably better support for python.

    In my perspective, vscode offers better support by far, but I may have 
not enabled the required options/configurations/debuggers in Leo, if any.

> - Leo's abbreviations probably won't work.

    I am not aware of the abbreviation feature of Leo. I should google and 
learn about this.

I assume that key bindings aren't a huge deal.

    Not at all as I have reproduced them mostly all and they're overridable 
in vscode.

Félix

P.S. More rambling below but I just smoked some cannabis, so it's not 
really serious:

If a microsoft employee, or bill gates himself, (or other) discovers the 
power of dag/outlines to organize code in a forward way (instead of being 
reflected back to the programmer like in the default outline view of 
regular IDEs) and the whole literate programming concepts as an effective 
and valid workflow, then Bill Gates can build a& sell an product and  name 
this the 'Microsoft DAG Outliner' or whatever, and take all credit for it. 
I'm half-joking but this would be terrible and unfair in my mind.

It's important for me, as you can see from leoIntegs code and 
documentation, and as a point of honor, that the invention and discoveries 
are attributed correctly, along with the original vocabulary and 
terminology. ("leo" as the tool's and concept name in general, "EKR" as the 
author of Leo and all its concepts, "Leonine" as the quality of things 
written with structured outlines, etc.  Just like we would attribute to 
Knuth mostly what preceded this.)

On Saturday, June 20, 2020 at 10:21:53 AM UTC-4, Edward K. Ream wrote:
>
> Félix, I'm wondering what you see as the pros and cons of using vs-code 
> instead of Leo. Here's a few thoughts. I'd like your comments:
>
> Pros of using vs-code:
>
> - Many more plugins. That could also be a distraction.
> - Probably better support for node.js, ts and js.
> - Probably better support for basic text editing.
>
> Cons of using vs-code:
>
> - Leo's gui plugins won't work in vs-code.
> - Probably better support for python.
> - Leo's abbreviations probably won't work.
>
> I assume that key bindings aren't a huge deal.
>
> Your comments?
>
> 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/31801c51-8e40-4ba9-82a4-7553abaee53do%40googlegroups.com.

Reply via email to