unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Ongaro <david.ongaro@hamburg.de>
To: emacs-devel@gnu.org
Subject: Re: Make all tree-sitter modes optional
Date: Sat, 11 Mar 2023 04:45:21 -0800	[thread overview]
Message-ID: <m2wn3nsbha.fsf@hamburg.de> (raw)
In-Reply-To: CAO48Bk_NF4K_QJkurh1Vz_Y-HHQmFMegRbJqxrMCQch-xV7auA@mail.gmail.com

I'm also "just" an Emacs user, but I suppose that should allow me to
chime in?

Pedro Andres Aranda Gutierrez <paaguti@gmail.com> writes:

> On Thu, 16 Feb 2023 14:05:34 Yuan Fu <casouri@gmail.com> wrote:
>
>>+1. It’ll be a long way until c-ts-mode can be comparable to c-mode.
>
>>Yuan
>
> +1 here too. With some additional comments. If memory serves, Eli
> asked for "user" feedback. Here you are ;-)

Yes, but my impression was that he wanted to have feedback on the
behavior of automatically updated auto-mode-alist entries in particular.

> Now, have I tried tree-sitter? Yes... I got it running on Linux. But
> the fuzz was not worth the gain. I saw from second one what
> yansippets, tramp, eglot (you name it) was offering and I decided to
> go for it (BTW, I'm so happy that eglot is is part of Emacs now). I
> don't see it in tree-sitter.

I think nobody is expecting a big gain at this moment (although I could
notice the much more granular font-locks in Python mode right way). But
I think the significance of the inclusion of tree-sitter is far greater
than all of the packages you mention. Just take this quote from James
Gosling in 2008:

> Ahhh, Emacs. It was a really good idea in like 1978. That’s what? 30
> years ago? Get over it guys. 30 years ago, that’s like 15 cranks of
> Moore’s Law at least, certainly you can do something with two to the
> fifteenth in CPU power. I certainly think you should give Netbeans a
> try. Having a real live semantic platform underneath you analysing
> every keystroke can do some pretty magical things. So, just get over
> it. You’re not using a Teletype anymore….it’s just dumb. Just stop.

And here he is pointing the finger right into the wound. Emacs needs the
ability for a proper real time lexical and semantic analysis. Doing
everything via regular expressions doesn't cut it. One can't parse non
regular languages via regular expressions almost by definition! If this
isn't addressed Emacs is doomed for obsolescence at least as a
programming platform. Sure, we still may continue to use it for decades
to come, but I don't think the goal of the Emacs community is just to
support a shrinking aging userbase?

And that is where tree-sitter is getting me really exited, since it's
opening the possibilities for proper real time analysis. If we get this
Emacs can get a serious contender for VS-Code and alike. Sure, once one
experiences the power of a package like tramp, one is sold. But if you
ask the average VS-Coder I bet they don't care. The fundamentals must be
right first and for programming that is a proper code parser.

I myself must admit that I resorted to Eclipse/IntelliJ when I had to do
Java for a few years. That may be one of the reasons I like saner
languages like Clojure better. But still, Emacs should strive to provide
an equally good experience for these other languages.

Another aspect which is getting me excited is my expectation that
tree-sitter should help to lift a lot of the maintenance burden for the
support of old and new language modes. This in turn should free up time
to improve other aspects of Emacs (some of which you probably care about
more). E.g. did you read Steve Yegge's story about the implementation of
js-mode? It's quite a journey (see
http://steve-yegge.blogspot.com/2008/03/js2-mode-new-javascript-mode-for-emacs.html).
In the end he had to make some compromises (e.g. allow the user to
switch indentations by pressing tab multiple times). It's still a great
mode but I'm sure the story would have been much different if
tree-sitter would have been available at the time. And something like
this happens to probably every mode author.

Sure, old established and battle tested modes like c-mode will probably
continue to be maintained for like forever, but now there is a much
easier way to integrate new languages or newer language versions. And
the time saved can be spend to bring Emacs forward in other ways.

> so, I know this is not exactly FOSS compliant, but it is part of the
> experience that may shy away users outside FOSS operating systems:
>
> In non-free operating systems, it is getting more difficult to get
> compiled third-party libraries downloaded and running. So, I don't
> anticipate it will easy with the tree-sitter DLLs or DYLIBs if you get
> them from the outside world. This means that you will need to compile
> them on your system to work with them. And that will be yet another
> argument for sys-admins to ban Emacs from the "professional"
> programming environment. And I think that's really sad...

I don't understand this argument. If you're an Emacs user who uses
tree-sitter the probability is high that you're also a developer so you
need development tools like a compiler anyway. Especially in a
"professional" programming environment. A sys-admin banning that would
be an admin banning you from work.




  reply	other threads:[~2023-03-11 12:45 UTC|newest]

Thread overview: 113+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-02-18  7:55 Make all tree-sitter modes optional Pedro Andres Aranda Gutierrez
2023-03-11 12:45 ` Ongaro [this message]
  -- strict thread matches above, loose matches on Subject: below --
2023-01-19 16:53 Pedro Andres Aranda Gutierrez
2023-01-20  8:30 ` Eli Zaretskii
2023-01-20 16:31   ` Pedro Andres Aranda Gutierrez
2023-01-20 19:13     ` Eli Zaretskii
2023-01-21 11:30       ` Pedro Andres Aranda Gutierrez
2023-01-21 11:48         ` Eli Zaretskii
2023-01-22  6:23           ` Pedro Andres Aranda Gutierrez
2023-01-22  6:38             ` Eli Zaretskii
2023-01-22 10:46               ` Eli Zaretskii
     [not found] <84973.1672843723@hassadar.pretzelnet.org>
     [not found] ` <83wn62xi3k.fsf@gnu.org>
     [not found]   ` <m1cz7u5brr.fsf@yahoo.es>
     [not found]     ` <83o7rexe2n.fsf@gnu.org>
     [not found]       ` <83h6x5xym7.fsf@gnu.org>
2023-01-15 14:01         ` Eli Zaretskii
2023-01-15 23:39           ` Dmitry Gutov
2023-01-16  7:43             ` Theodor Thornhill
2023-01-16 16:30               ` Dmitry Gutov
2023-01-16 12:34             ` Eli Zaretskii
2023-01-16 13:06               ` Dmitry Gutov
2023-01-16 14:20                 ` Eli Zaretskii
2023-01-16 14:50                   ` Dmitry Gutov
2023-01-16 14:59                     ` Eli Zaretskii
2023-01-17 12:59                       ` Dmitry Gutov
2023-01-17 13:47                         ` Eli Zaretskii
2023-01-17 14:32                           ` Dmitry Gutov
2023-01-17 14:52                             ` Eli Zaretskii
2023-01-17 15:22                               ` Dmitry Gutov
2023-01-17 17:02                                 ` Eli Zaretskii
2023-01-17 17:10                                   ` Dmitry Gutov
2023-01-17 17:38                                     ` Eli Zaretskii
2023-01-17 17:59                                       ` Dmitry Gutov
2023-01-17 18:04                                         ` Eli Zaretskii
2023-01-17 18:21                                           ` Dmitry Gutov
2023-01-17 18:40                                             ` Eli Zaretskii
2023-01-17 18:49                                               ` Dmitry Gutov
2023-01-17 19:03                                                 ` Eli Zaretskii
2023-01-17 19:21                                                   ` Dmitry Gutov
2023-01-18  1:11                                                     ` Yuan Fu
2023-01-18  1:23                                                       ` Dmitry Gutov
2023-01-18  3:34                                                         ` Eli Zaretskii
2023-01-18  3:52                                                           ` Dmitry Gutov
2023-01-18 12:06                                                             ` Eli Zaretskii
2023-01-18 14:00                                                               ` Dmitry Gutov
2023-01-18 14:51                                                                 ` Eli Zaretskii
2023-01-18 12:36                                                           ` Stefan Monnier
2023-01-16  1:12           ` Po Lu
2023-01-17 17:30           ` Juri Linkov
2023-01-17 17:58             ` Eli Zaretskii
2023-01-17 18:19               ` Juri Linkov
2023-01-17 18:41                 ` Eli Zaretskii
2023-02-14 19:08               ` Alan Mackenzie
2023-02-14 19:29                 ` Eli Zaretskii
2023-02-14 21:02                   ` Alan Mackenzie
2023-02-15 15:35                     ` Eli Zaretskii
2023-02-15 17:57                       ` Alan Mackenzie
2023-02-15 18:33                         ` Eli Zaretskii
2023-02-15 20:31                           ` Alan Mackenzie
2023-02-16  5:41                             ` tomas
2023-02-16  7:27                             ` Eli Zaretskii
2023-02-16 22:05                               ` Yuan Fu
     [not found]                           ` <87v8k2g04m.fsf@dick>
2023-02-15 20:34                             ` Eli Zaretskii
     [not found]                               ` <87mt5eegkw.fsf@dick>
2023-02-16  7:53                                 ` Eli Zaretskii
2023-02-16  8:52                                   ` Po Lu
2023-02-15 21:40                           ` Alan Mackenzie
2023-02-17 13:30                           ` Alan Mackenzie
2023-02-17 13:37                             ` Po Lu
2023-02-17 13:46                               ` Stefan Monnier
2023-02-17 14:16                                 ` Po Lu
2023-02-17 14:40                                   ` Eli Zaretskii
2023-02-17 14:56                                     ` Dmitry Gutov
2023-02-17 15:04                                       ` Eli Zaretskii
2023-02-17 16:04                                       ` Stefan Kangas
2023-02-17 17:42                                         ` Morgan Willcock
2023-02-17 15:15                                     ` Gregory Heytings
2023-02-17 13:54                               ` Alan Mackenzie
     [not found]                               ` <d4c1a7f6-b5bf-f4f3-8d79-1c6b1d07cf70@yandex.ru>
2023-02-17 14:22                                 ` Po Lu
2023-02-17 14:58                             ` Eli Zaretskii
2023-02-17 15:18                               ` Alan Mackenzie
2023-02-15 18:34                         ` Stefan Monnier
2023-02-15 19:01                           ` Dmitry Gutov
2023-02-15 19:26                             ` Stefan Monnier
2023-02-15 19:47                               ` Eli Zaretskii
2023-02-15 19:53                                 ` Stefan Monnier
2023-02-15 20:06                                   ` Eli Zaretskii
2023-02-15 21:04                                     ` Stefan Monnier
2023-02-16  7:42                                       ` Eli Zaretskii
2023-02-16  9:49                                         ` Basil L. Contovounesios
2023-02-16 11:48                                           ` Eli Zaretskii
2023-02-16 14:41                                         ` Stefan Monnier
2023-02-16 15:42                                           ` Eli Zaretskii
2023-02-16 16:45                                             ` Stefan Monnier
2023-02-16 17:05                                               ` Eli Zaretskii
2023-02-16 19:14                                                 ` Dmitry Gutov
2023-02-16 20:07                                                 ` Stefan Monnier
2023-02-16  5:45                                     ` tomas
2023-02-16  8:26                                       ` Eli Zaretskii
2023-02-16 10:30                                         ` Alan Mackenzie
2023-02-16 12:38                                           ` Po Lu
2023-02-16 12:53                                             ` Dmitry Gutov
2023-02-15 20:24                               ` Dmitry Gutov
2023-02-16  7:05                                 ` Eli Zaretskii
2023-02-16  7:53                                   ` Theodor Thornhill
2023-02-16  8:34                                     ` Eli Zaretskii
2023-02-16  8:46                                       ` Theodor Thornhill
2023-02-16 11:58                                       ` Dmitry Gutov
2023-02-16 11:56                                     ` Dmitry Gutov
2023-02-16 14:48                                       ` Theodor Thornhill via Emacs development discussions.
2023-02-16 14:56                                         ` Dmitry Gutov
2023-02-16 15:15                                           ` Theodor Thornhill
2023-02-15 23:48                               ` Lynn Winebarger
2023-02-16  2:56                                 ` Stefan Monnier
2023-02-15 19:07                           ` Eli Zaretskii
2023-02-15 19:27                             ` Stefan Monnier
2023-02-15 21:06                             ` Basil L. Contovounesios
2023-02-16  7:44                               ` Eli Zaretskii
2023-02-15 18:25                 ` Juri Linkov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=m2wn3nsbha.fsf@hamburg.de \
    --to=david.ongaro@hamburg.de \
    --cc=emacs-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).