From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: =?UTF-8?Q?Johan_Myr=C3=A9en?= Newsgroups: gmane.emacs.devel Subject: Re: An anonymous IRC user's opinion Date: Wed, 9 Oct 2024 19:06:12 +0300 Message-ID: References: <87plodsjsd.fsf@web.de> <865xq14dwp.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="0000000000000c30ef06240d70bd" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="19423"; mail-complaints-to="usenet@ciao.gmane.io" To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Wed Oct 09 18:07:24 2024 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1syZDf-0004rU-VM for ged-emacs-devel@m.gmane-mx.org; Wed, 09 Oct 2024 18:07:24 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1syZCy-0003DZ-W4; Wed, 09 Oct 2024 12:06:41 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1syZCx-0003An-9q for emacs-devel@gnu.org; Wed, 09 Oct 2024 12:06:39 -0400 Original-Received: from mail-ed1-x530.google.com ([2a00:1450:4864:20::530]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1syZCu-0006cL-Aa for emacs-devel@gnu.org; Wed, 09 Oct 2024 12:06:39 -0400 Original-Received: by mail-ed1-x530.google.com with SMTP id 4fb4d7f45d1cf-5c91a7141b8so1606314a12.1 for ; Wed, 09 Oct 2024 09:06:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1728489994; x=1729094794; darn=gnu.org; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :from:to:cc:subject:date:message-id:reply-to; bh=gremjfRLGBm3/yvMQEVYAArc7fku0GFJDgbxOXvYngg=; b=Rg+eW/mP0MU/rUn1tGBFWlb14gJ9IlYyYMmNLu9oguDKlyb5xSU4FqeD+meW0O1upR 5qOcIJ6IcvtuznSFssRNLTYYKuFrICmCMX9MHQFjSKvVJ5W26r+zF5ObEf3qdAkHU2vY YZCbFLT6inI68mosLDuK9u/mOIRp/shaAjaNLEAEieodso+Ma/VfjHux9Mn/33Ave+Xf 5lj72czO8DVqARK8D09BmI2iPllX66kVzPVcPXlIqkvH1zREi3+JhPp1iTqH+HTVRlC4 RiC6dD4bmR1+9cOJV8YyLRUM2RrbL99c19acBvU/8sS2J/0smUb3KVUTD7bVcmPCJJRC U0Ug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1728489994; x=1729094794; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=gremjfRLGBm3/yvMQEVYAArc7fku0GFJDgbxOXvYngg=; b=GibGeKxhXbRCq8NwQsXEolgg2bZAW+ZPY2z1G5LImyjC16/NyQTtXF6qUnE1b25n3z 2++XAUwcU5Ecf/Vtjk3rzWXIwK2T8at7+FWmGv+fZIZCSV9SV84nD99cdKrukXyYw8Vj rlh87XkqpcPMFc5W1h3MPO13KZn57S7DrKzB5P+btEBua0Mf4ai5Ccfv6FrNTigHofO8 nQrVsINOaFbnpnCRHSHCIW0n0/cnij/sCNi0etAk5HrzjaA8whkcx4x1nP5FdbGn0H3M JbgvdJdzfQck5eHzhVSBhPqsi2wiNZQ3AeI6Px2FFK8X/Uj2KaOyF8PP5Zf3OpNfl42S XC5w== X-Gm-Message-State: AOJu0YxXBFG1mHwwIfN0NHfvgMabf5xUgchbnSDGPStaVK02NCOr+9QO V1fMSMxsB12RmBl4XiRIyHDX52AxAq1m5MvkAvruV0nMBWvtsQ7sj3CotVTOzFvNWzX20RzCygU gVui/iZtDEvZZ5zUZwN9B+3QJ6fugypBn X-Google-Smtp-Source: AGHT+IFePv10Trd1YUfW810uf0pGry3S4xUIb9V8dk60BPG9HBs5OM8q5gcTpCUjlq7NL4RV4y1EgBySM2X6Yne+QFE= X-Received: by 2002:a05:6402:5d4:b0:5c2:609d:397e with SMTP id 4fb4d7f45d1cf-5c91d59f573mr2427975a12.15.1728489993283; Wed, 09 Oct 2024 09:06:33 -0700 (PDT) In-Reply-To: <865xq14dwp.fsf@gnu.org> Received-SPF: pass client-ip=2a00:1450:4864:20::530; envelope-from=johan.myreen@gmail.com; helo=mail-ed1-x530.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:324445 Archived-At: --0000000000000c30ef06240d70bd Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable I understand Emacs is a volunteer project and finding good documentation writers is difficult. I was just suggesting what direction I would like to see Emacs documentation going. Emacs has a good and extensive manual that provides mostly a great reference to how to use Emacs as an editor. What I am proposing is a higher level view, a kind of cookbook on how to do different things with Emacs. I just started my Emacs (from the main branch) with -q and opened a Rust source file. Emacs out of the box does not even recognize the .rs file extension: the file is opened in Fundamental mode. A novice Emacs user might guess that he or she needs to install a Rust mode for Emacs to recognize we are editing Rust source code. But by only doing this the user is missing out on so much useful functionality Emacs has to offer. How is the user supposed to know that =C2=A8Eglot" is the way to connect to a lang= uage server, or that a package named =C2=A8Company" provides completion? The onl= y way right now is to search for this on the internet, which is associated with the quality problems I described in my previous message. Software has grown more complex during the years Emacs has been in existence, and so have the expectations of the public using it. Emacs has fantastic collections of packages, each focusing on different things. This is a good modular design. Some of these packages can be used to form, for example, a working Rust development environment. The problem is finding these packages. How does a new Emacs user know what to look for? So I am proposing a "task-oriented" category in the Emacs documentation. I don=C2=B4t think there is such a category. Eglot is part of Emacs, but it cannot be started automatically because the > LSP server, which is a > separate piece of software, needs to be installed and configured first; > are we supposed to be held > responsible for that as well No, all I am talking about is documentation. In fact I really dislike some things that happen by magic, but are undocumented. They typically break over time, which is a bigger headache to fix than configuring things by hand using good documentation. I'm guessing VSCode comes with pre-configured LSP servers, a single > Rust mode, and a single Git interface. Am I mistaken? > No, VSCode does not come pre-configured for Rust development. But, there is a good, task-oriented web page that describes in simple terms what needs to be installed and configured to start writing Rust code using VSCode. Similar pages exist for Java, Javascript, C++, C#, Python, Go, etc. More importantly, this documentation can be found on code.visualstudio.com ( https://code.visualstudio.com/docs/languages/rust), not on YouTube.com or robert.kra.hn or some other random website. Johan Myr=C3=A9en On Wed, 9 Oct 2024 at 16:14, Eli Zaretskii wrote: > > From: Johan Myr=C3=A9en > > Date: Wed, 9 Oct 2024 14:09:13 +0300 > > > > I see this more as a documentation problem. Emacs lacks "official" > documentation on how to configure an > > environment to do certain things, which includes installing certain > Elisp packages, and configuring them. > > My analysis is different. Emacs lacks volunteers who'd sit down and > write documentation on how to configure Emacs for this or that job. > Once that is written, and written well, admitting it into Emacs is > usually a no-brainer. > > Mind you: the above is an extremely non-trivial job, because the sheer > number of possible "jobs" which Emacs can support is mind-boggling. > Even if someone describes in excruciating detail how to configure > Emacs for Rust development, that only helps people who need to develop > programs in Rust, but doesn't help at all to, say, someone who needs to > write a thesis about some academic subject, or read email from Gmail > or even develop C++ programs, or... > > > In the good old days software development meant editing a few C files i= n > Emacs and then running make. > > This no longer meets the expectations people have of a software > development environment. For example, > > creating a contemporary environment to write and build software using > the Rust programming language and > > Emacs, you need Rust mode, rust-ts-mode for Treesitter integration, > Eglot to communicate with > > rust-analyzer (a Language Server implementation for Rust) for completio= n > and goto definition, Company > > mode for code completion, Magit for version control, DAP mode for > debugging, and so on. Many of these > > packages have alternative implementations, for example rustic-mode > instead of rust-mode. > > This is an exaggeration to some degree. rust-ts-mode is part of > Emacs, and could be turned on automatically when a Rust file is > visited; we didn't do that because we are unsure whether users of an > unbundled Rust mode will protest. Eglot is part of Emacs, but it > cannot be started automatically because the LSP server, which is a > separate piece of software, needs to be installed and configured > first; are we supposed to be held responsible for that as well? We do > have TAGS support for Rust (goto definition etc., so alternative to > LSP), and the new etags-regen-mode might just make the job of using > TAGS much easier and seamless. Magit is nice, but not really > necessary, since we have VC built in, which doesn't need to be > configured. DAP is not necessary, since Emacs has a GDB front-end > (which doesn't need to be configured, just invoked with a single > command), and GDB supports debugging Rust programs. > > So things are not that bad, are they? > > I do agree that good tutorials which would mention all this stuff > would make things better, at least for those who read documentation > (how many do?), but that needs volunteers to sit down and write that > up. Would you please consider doing something like that for some jobs > with which you are familiar? > > > I'm not saying you can't edit Rust code without all these packages, but > these packages combined provide > > the minimum that the competition (e.g. Visual Studio Code) offers. > > I'm guessing VSCode comes with pre-configured LSP servers, a single > Rust mode, and a single Git interface. Am I mistaken? If so, is that > how we want to treat our users? will they agree to be treated like > that? > --0000000000000c30ef06240d70bd Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
I understand Emacs is a volunteer project and finding good= documentation writers is difficult. I was just suggesting what direction I= would like to see Emacs documentation going. Emacs has a good and extensiv= e manual that provides mostly a great reference to how to use Emacs as an e= ditor. What I am proposing is a higher level view, a kind of cookbook on ho= w to do different things with Emacs.

I just started my Emacs (from t= he main branch) with -q and opened a Rust source file. Emacs out of the box= does not even recognize the .rs file extension: the file is opened in Fund= amental mode. A novice Emacs user might guess that he or she needs to insta= ll a Rust mode for Emacs to recognize we are editing Rust source code. But = by only doing this the user is missing out on so much useful functionality = Emacs has to offer. How is the user supposed to know that =C2=A8Eglot"= is the way to connect to a language server, or that a package named =C2=A8= Company" provides completion? The only way right now is to search for = this on the internet, which is associated with the quality problems I descr= ibed in my previous message.

Software has grown more complex during = the years Emacs has been in existence, and so have the expectations of the = public using it. Emacs has fantastic collections of packages, each focusing= on different things. This is a good modular design. Some of these packages= can be used to form, for example, a working Rust development environment. = The problem is finding these packages. How does a new Emacs user know what = to look for?

So I am proposing a "task-oriented" cate= gory in the Emacs documentation. I don=C2=B4t think there is such a categor= y.

Eg= lot is part of Emacs, but it cannot be started automatically because the LS= P server, which is a
separate piece of software, needs to be installed a= nd configured first; are we supposed to be held
responsible for that as = well
=C2=A0
No, all I am talking about is docume= ntation. In fact I really dislike some things that happen by magic, but are= undocumented. They typically break over time, which is a bigger headache t= o fix than configuring things by hand using good documentation.

I'm gues= sing VSCode comes with pre-configured LSP servers, a single
Rust mode, and a single Git interface.=C2=A0 Am I mistaken?

No, VSCode does not come pre-configured for Rust devel= opment. But, there is a good, task-oriented web page that describes in simp= le terms what needs to be installed and configured to start writing Rust co= de using VSCode. Similar pages exist for Java, Javascript, C++, C#, Python,= Go, etc. More importantly, this documentation can be found on code.visualstudio.com (https://code.visualstudio.com/do= cs/languages/rust), not on YouTube.com or robert.kra.hn or some other random website.

Johan Myr=C3=A9en




On Wed, 9 Oct 2024 at 16:14= , Eli Zaretskii <eliz@gnu.org> wr= ote:
> From: = Johan Myr=C3=A9en <johan.myreen@gmail.com>
> Date: Wed, 9 Oct 2024 14:09:13 +0300
>
> I see this more as a documentation problem. Emacs lacks "official= " documentation on how to configure an
> environment to do certain things, which includes installing certain El= isp packages, and configuring them.

My analysis is different.=C2=A0 Emacs lacks volunteers who'd sit down a= nd
write documentation on how to configure Emacs for this or that job.
Once that is written, and written well, admitting it into Emacs is
usually a no-brainer.

Mind you: the above is an extremely non-trivial job, because the sheer
number of possible "jobs" which Emacs can support is mind-bogglin= g.
Even if someone describes in excruciating detail how to configure
Emacs for Rust development, that only helps people who need to develop
programs in Rust, but doesn't help at all to, say, someone who needs to=
write a thesis about some academic subject, or read email from Gmail
or even develop C++ programs, or...

> In the good old days software development meant editing a few C files = in Emacs and then running make.
> This no longer meets the expectations people have of a software develo= pment environment. For example,
> creating a contemporary environment to write and build software using = the Rust programming language and
> Emacs, you need Rust mode, rust-ts-mode for Treesitter integration, Eg= lot to communicate with
> rust-analyzer (a Language Server implementation for Rust) for completi= on and goto definition, Company
> mode for code completion, Magit for version control, DAP mode for debu= gging, and so on. Many of these
> packages have alternative implementations, for example rustic-mode ins= tead of rust-mode.

This is an exaggeration to some degree.=C2=A0 rust-ts-mode is part of
Emacs, and could be turned on automatically when a Rust file is
visited; we didn't do that because we are unsure whether users of an unbundled Rust mode will protest.=C2=A0 Eglot is part of Emacs, but it
cannot be started automatically because the LSP server, which is a
separate piece of software, needs to be installed and configured
first; are we supposed to be held responsible for that as well?=C2=A0 We do=
have TAGS support for Rust (goto definition etc., so alternative to
LSP), and the new etags-regen-mode might just make the job of using
TAGS much easier and seamless.=C2=A0 Magit is nice, but not really
necessary, since we have VC built in, which doesn't need to be
configured.=C2=A0 DAP is not necessary, since Emacs has a GDB front-end
(which doesn't need to be configured, just invoked with a single
command), and GDB supports debugging Rust programs.

So things are not that bad, are they?

I do agree that good tutorials which would mention all this stuff
would make things better, at least for those who read documentation
(how many do?), but that needs volunteers to sit down and write that
up.=C2=A0 Would you please consider doing something like that for some jobs=
with which you are familiar?

> I'm not saying you can't edit Rust code without all these pack= ages, but these packages combined provide
> the minimum that the competition (e.g. Visual Studio Code) offers.

I'm guessing VSCode comes with pre-configured LSP servers, a single
Rust mode, and a single Git interface.=C2=A0 Am I mistaken?=C2=A0 If so, is= that
how we want to treat our users? will they agree to be treated like
that?
--0000000000000c30ef06240d70bd--