From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Jordi =?ISO-8859-1?Q?Guti=E9rrez?= Hermoso Newsgroups: gmane.emacs.devel Subject: An anonymous IRC user's opinion Date: Tue, 01 Oct 2024 16:09:30 -0400 Message-ID: <19ed5fa4ec0d3be9cfddc92ce2c78e47f2a3efb6.camel@octave.org> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="39709"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Evolution 3.46.4-2 To: Emacs development discussions Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Wed Oct 02 07:41:04 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 1svs6g-000A5U-Mz for ged-emacs-devel@m.gmane-mx.org; Wed, 02 Oct 2024 07:41:03 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1svs5s-0003Oi-4n; Wed, 02 Oct 2024 01:40:12 -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 1svjBw-0001qn-9w for emacs-devel@gnu.org; Tue, 01 Oct 2024 16:09:52 -0400 Original-Received: from shrimp.cherry.relay.mailchannels.net ([23.83.223.164]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1svjBt-0004it-E1 for emacs-devel@gnu.org; Tue, 01 Oct 2024 16:09:52 -0400 X-Sender-Id: dreamhost|x-authsender|jordigh@octave.org Original-Received: from relay.mailchannels.net (localhost [127.0.0.1]) by relay.mailchannels.net (Postfix) with ESMTP id 175B91805D6 for ; Tue, 1 Oct 2024 20:09:32 +0000 (UTC) Original-Received: from pdx1-sub0-mail-a268.dreamhost.com (100-96-86-86.trex-nlb.outbound.svc.cluster.local [100.96.86.86]) (Authenticated sender: dreamhost) by relay.mailchannels.net (Postfix) with ESMTPA id 8945F180389 for ; Tue, 1 Oct 2024 20:09:31 +0000 (UTC) ARC-Seal: i=1; s=arc-2022; d=mailchannels.net; t=1727813371; a=rsa-sha256; cv=none; b=lnoUjvzkuYu1n/iXW0FdTs0UU574HRDtdKr2U2hdr7hvEGKrQV+v7USMEatDDZtClXl6fX /uZnbVmBK3FRqslEupbRqWaohckBMEc5vJmi1imSNFRa7OtJmTaiXKzDqdgVM8rUTsxTIs HH9khrGikLdVJK3Q23tAXySG6sV1/MOpDOTVL8NKLdvpqaf6PDjVbvwvcdDK/5+g/s2rwK GLkZYzw1tfw/0SFwLHejEVmaUAbpZ+/fvmUDRuH0NlINoBU2mMvtm+LDvryELzm2Q3Jm+0 T1JaUM6M0HwrRSKmJEQWGJFwsK7icZcNT9P9UuX7I+NfjwzGpy9+O7tPnUGB/g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=mailchannels.net; s=arc-2022; t=1727813371; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding:dkim-signature; bh=eKpFXkh+zsgrF6R6KCbAYV7qoXAkxspzV95BRI0FvZg=; b=u4hz1x5fJfD/4bmGS9Ch/+qupLYBQlrJwHs1552u7FX8F0fKijckKQGnYF3TZpZHwkZF7F cch3Q3v2unQBKlYPx8c5ZthoX2lDX7Hg7b4LwUyFci+wj/MtQFsXQX00LAom/i17AAoUcP uk8MVwFDrJQyXtQ88wFwAuwiCBYKNQrxaIQFnZ6zb1pjmxcgfGCEruiATnnHQDB3gT0M1U UkJFrGrfYXcVxKyKqYFql23S5wP+0gV15l6MLH7CVkLaG4lWJNFb9HA5inKhtXFsWsdoAG P3TGHj/zImiJxWN7s/OD3hZQVV9lwPLZF45607cG84lWNLDMuWeU+jYjfaLSIw== ARC-Authentication-Results: i=1; rspamd-84548c8bbb-krbzn; auth=pass smtp.auth=dreamhost smtp.mailfrom=jordigh@octave.org X-Sender-Id: dreamhost|x-authsender|jordigh@octave.org X-MC-Relay: Neutral X-MailChannels-SenderId: dreamhost|x-authsender|jordigh@octave.org X-MailChannels-Auth-Id: dreamhost X-Macabre-Tasty: 745a40c1431ef03d_1727813371774_1229369210 X-MC-Loop-Signature: 1727813371773:2887067225 X-MC-Ingress-Time: 1727813371773 Original-Received: from pdx1-sub0-mail-a268.dreamhost.com (pop.dreamhost.com [64.90.62.162]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384) by 100.96.86.86 (trex/7.0.2); Tue, 01 Oct 2024 20:09:31 +0000 Original-Received: from [IPv6:::1] (pdx1-shared-a1-20.dreamhost.com [69.163.176.39]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: jordigh@octave.org) by pdx1-sub0-mail-a268.dreamhost.com (Postfix) with ESMTPSA id 4XJ8DC1jMQz6w for ; Tue, 1 Oct 2024 13:09:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=octave.org; s=dreamhost; t=1727813371; bh=eKpFXkh+zsgrF6R6KCbAYV7qoXAkxspzV95BRI0FvZg=; h=Subject:From:To:Date:Content-Type:Content-Transfer-Encoding; b=kzq/DUMkPWkEacVglCP5qOqWymH72iIFViHi+9eQ8alzerHm8uarpHcHKkGH7DR3l ksWU2+T+TSm2Tgx1RD9UqAnH6/x3jrwQYTuDdbpzYxFmBEb8p1yJec75Fe9WYezajC tcmHrw/i3R3yxnwrouEUXyX4wHxomUBdtKYIDmAAjqoKXSTBvTsg9ulUHxBGMI8i79 fA6EnbPHYFK4NoeZNz14JGgXe30iZP9sGpVfF/7kdzA9oIzhLct7oZqdJGY6IYRQ01 4ps5aPJPJoLcVN+g8obIu++8G4+58DCOlrPICg6ek8XimsmmezxCN0IEyEPk3OWJ9p yFPGcTHbD8YbA== Received-SPF: pass client-ip=23.83.223.164; envelope-from=jordigh@octave.org; helo=shrimp.cherry.relay.mailchannels.net 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, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Mailman-Approved-At: Wed, 02 Oct 2024 01:40:08 -0400 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:324242 Archived-At: I was asked to relay this from an anonymous IRC user. The words below are n= ot mine. I, Jordi, did not write this. Someone wanted to post this anonymously= to emacs-devel, and I'm doing it on their behalf. Thanks, Jordi ---------------------------------------------------------------------------= --- I discovered emacs recently through david wilson videos, I configured emacs from scratch, and I wish I knew what emacs is or what it can do long time ago, I want to share with you my experience as a new user as I hope this will help you in some way or another, and to propose something. I always had on my mind that emacs is yet another editor/IDE, and on top of that is very complicated and very special to use, and on top of that it does many things at the same time. All these things, plus the ease of use of other choices, plus the lack of time to dig into emacs, made me always chose quick alternatives, and I ended up using many editors/IDEs but never tried emacs. Until I saw david videos, then I understood what emacs really is. The complexity of emacs first configuration did not discouraged me at all knowing that I will have a working setup at the end that I needed, and if needed too I can add more setups later, and I can even hack emacs if also needed. I can tell you about the endless debugging of the init file for even the smallest error (without any clear diagnostic about the error), and I can tell you all the times I lost many works when doing "undo" because I did not know that emacs is not like any other editor out there, until I searched on the internet for this "new" behavior which I thought it was a bug, and then tried to stick with it for some time, until I discovered undo-tree, and this list goes on and on and on...I think you all know that and all went through the same very long path. So I was wondering why emacs is like this and why it is difficult to configure and make it run quickly, at least to test it if it suites someone needs, before diving deeper inside. it is the oldest out there, yet it is still the most difficult to start with. For example, some years ago I had to work on a small typescript project, I quickly found vscode. I downloaded it in 5min, and it took me 5 clicks to install a plugin. and then I had a working typescript setup. And then I used vscode like I if I had been using it for a long time, whereas it was my first time. Other than this example I can give a lot of the same experiences, so I can easily imagine how many people out there are easily diverged from emacs. Another point is that I wanted to share my discovery with my surrounding, and setup emacs for them so they can start using it. If I want to encourage them to use it and read the manual, and live the same experience I had to configure emacs, they would have cursed me forever, and this is not even possible for non-dev people, and if I want to make the configurations myself for each scenario, It will take me forever, and even for some scenarios I need to know if this is possible or not and discover new customizations/packages/etc. The first thing I thought about is a pre-configured init file for each scenario, that people can easily shared/distribute, but I quickly thought it was a very bad idea. so I asked my question on #systemcrafters IRC channel, and someone pointed me to this link https://emacs.amodernist.com/ which I think is a very good start and the nearest answer to what I was going to propose, thought it has many drawbacks, for example user will not understand what is going on and why he needs to go to a different site to config a software that he installed locally on his machine, and what he needs to do next to relate the config to emacs, what an init file is, and even user may not trust a foreign website to generate code for him to run on his machine, user also tends to escape any long "boring" reading material, etc. What I am proposing is to make this possible in emacs or at least in a trustworthy environment in an easy, quick and attractive way. I am not proposing to change anything in emacs, but to add a new separate feature which I think is very useful. To Make emacs up and running with a useful configuration in a reasonable time, for almost every situation/scenario for everybody. I am also not asking to change emacs defaults, every user will have the configuration he wants/needs. For example: I am a prof and I want to edit org markup only. (I dont need anything else) I am a writer or I write a lot: articles, books, blogs, mails, I need dictionary auto-complete + spellchecking only (nothing else) I am a c++ dev and I need to quickly work on a small c++ project. (nothing else) I am a school teacher, and I need to organize some stuff with org agenda only. (nothing else) I am a scientist, and I need to write some formal documents and share them in different formats. (nothing else) I am a student and I need to take notes in a zettelkasten style (nothing else) I need an IRC client (nothing else) I am an emacs user, I already configured emacs for myself using this feature, and now I also need to configure emacs with one of the above scenarios for my sister, my brother, my parent, my friend, my neighbor, my college, my coworker, my teacher, my student, etc. I think many of you one day found themselves in a similar situation. There are countless use cases out there, and emacs can cover almost anything for anybody. Many of emacs hackers may end up using it for many things, but new users would discover/start using emacs for one thing (which they actually need at the moment) and later they will use it for another thing, yet another thing, yet another thing... if needed. I am not necessary asking this feature to be added to emacs itself, it can be a separate GNU ELPA package project (to start with before maybe adding it to emacs later), but as you will see below, I think it is better to be part of emacs. I have an idea of the implementation, but I hope it will not distract you from the main idea above. I am giving you the implementation so you can better understand what I am talking about (no more). It is then up to you to decide if this is feasible or not, and if this implementation is pointing in the right direction or not. So this is just an implementation detail, and only the main idea above should be retained. This can be implemented by for example having as first page an attractive org file, which introduces user to emacs vocabulary/environment in a very short words and time (5 to 10min), by for example clicking on some org links like: [[elisp:(call a function to color the modeline)][Click here to see the modeline]] [[elisp:(call a function to color the echo area)][Click here to see the echo area]] [[elisp:(call a function to color the minibuffer)][Click here to see the minibuffer]] [[elisp:(call a function to color the minibuffer)][Click here to open a window on the right]] etc... and the same goes for the toolbar, menubar, buffer, window, frame, message buffer, error buffer, and only things the user need to know to start using emacs, nothing else, only vital things, not to overwhelm or discourage user. For example users should not be introduced to keybindings at this stage, they are not vital to use emacs, they complicate things for user and may discourage him, he only need to use copy/paste and undo/redo which are universal, and the menubar is fair enough for everyone just like any other software (the menubar already contains keybindings to be discovered, yes emacs is very well done). Then there is a link that say for example "Start configuring emacs", which is basicaly a Q&A config style: Do you want to try emacs undo style or use undo/redo style ? Do you want to use emacs undo keys or use ctrl-z/ctrl-shift-z undo/redo keys(cua) ? Do you want to auto-save modified file in emacs ? yes/no Do you to backup files edited in emacs ? yes/no Do you want to save/remember the windows positions ? yes/no Do you want to save/remember the cursor position in visited files ? yes/no Do you want to save/remember recently opened files ? yes/no Do you want to highlight the current line ? yes/no Do you want to configured org mode ? yes/no Do you want configured IRC ? yes/no Do you want to have auto-complete from dictionary ? yes/no Do you want to save/remember frequently used words ? yes/no Do you want spell checking ? yes/no Do you want to auto-complete from words in the opened buffers/files ? yes/no Do you want to have auto-complete for a programming language ? yes/no What programming languages (C++. python, ...) ? etc... For the last question for example, better not ask user if he wants to install eglot even if he is a developer (better always suppose that he is a new user first, so he may not know anything about eglot. So better use general terms whenever possible). All the questions should have a default answer (which are basically the current emacs defaults) so if the user hit enter all the way down, nothing should happens (this will also be a way for users to discover and have an idea of what emacs can do) User can come back later and repeat this step as much as he wants (the new default answers will be the user previous answers, so hitting enter all the way down should also do nothing, and with this user can have an idea of what he had already answered/configured for certain things) If this results in a ton of questions, then maybe a selection of what should be asked or not is to be done, or maybe a second org link can be added for example: "Detailed/Advanced Configuration". Of course there should be "leveled" questions (questions should be grouped and not presented as flat list like in my example list above), for example if user chose not to configure org by hitting "no", no further questions should be asked about org. The top level questions should be as few as possible and as generic as possible. Everything should be configured in a reasonable time or so. Running this later will be much more quicker for user (only the first time will be somehow a discovery). Without the user having to know about init file, packages, archives, functions, variables, hooks, and endless init file debugging, or even to write a single line of elisp. Users can be from different backgrounds not necessary hackers or developers. But this feature is not only focused on non-hackers and non-developers, hackers and developers will benefit from this as well at least as a starting point, before digging into emacs later, or for example to configure emacs for a friend,etc in a quick way, as stated at the beginning.