unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* An anonymous IRC user's opinion
@ 2024-10-01 20:09 Jordi Gutiérrez Hermoso
  2024-10-04 16:25 ` Eduardo Ochs
  2024-10-10  0:22 ` chad
  0 siblings, 2 replies; 108+ messages in thread
From: Jordi Gutiérrez Hermoso @ 2024-10-01 20:09 UTC (permalink / raw)
  To: Emacs development discussions

I was asked to relay this from an anonymous IRC user. The words below are not
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.



^ permalink raw reply	[flat|nested] 108+ messages in thread
* Re: Re: An anonymous IRC user's opinion
@ 2024-10-06  5:31 Pedro Andres Aranda Gutierrez
  2024-10-06  6:04 ` Emanuel Berg
  2024-10-06  9:06 ` Dr. Arne Babenhauserheide
  0 siblings, 2 replies; 108+ messages in thread
From: Pedro Andres Aranda Gutierrez @ 2024-10-06  5:31 UTC (permalink / raw)
  To: emacs-devel

[-- Attachment #1: Type: text/plain, Size: 1361 bytes --]

> Message: 2
> Date: Fri, 04 Oct 2024 20:10:44 +0200
> From: "Dr. Arne Babenhauserheide" <arne_bab@web.de>
> To: Eduardo Ochs <eduardoochs@gmail.com>
> Cc: Jordi Gutiérrez Hermoso <jordigh@octave.org>,  Emacs development
>         discussions <emacs-devel@gnu.org>
> Message-ID: <87y133u4bf.fsf@web.de>
> Content-Type: text/plain; charset="utf-8"
>
Arne writes:
> Eduardo Ochs <eduardoochs@gmail.com> writes:

>> is that I don't know how it would be developed and what its prototypes
>> would look like...
>...
> On distributions that may mean providing meta-packages which install
> required elpa-packages and are started from a script that prepares a
> $HOME/.emacs.d/ for the specific flavor of Emacs if it does not exist
> already.
>
> Best wishes,
> Arne
> --
> Unpolitisch sein
> heißt politisch sein,
> ohne es zu merken.
> draketo.de

Greetings

Isn't that what some Emacs "impersonations" are doing. You clone a git repo
as your $HOME/.emacs.d and there you are.
Look, for example at https://github.com/doomemacs/doomemacs#install

My .02 €cents, /PA

-- 
Fragen sind nicht da, um beantwortet zu werden,
Fragen sind da um gestellt zu werden
Georg Kreisler

Headaches with a Juju log:
unit-basic-16: 09:17:36 WARNING juju.worker.uniter.operation we should run
a leader-deposed hook here, but we can't yet

[-- Attachment #2: Type: text/html, Size: 2270 bytes --]

^ permalink raw reply	[flat|nested] 108+ messages in thread
* Re: An anonymous IRC user's opinion
@ 2024-10-06  7:32 Abraham S.A.H. via Emacs development discussions.
  2024-10-06  8:10 ` Emanuel Berg
  2024-10-06  8:44 ` Dr. Arne Babenhauserheide
  0 siblings, 2 replies; 108+ messages in thread
From: Abraham S.A.H. via Emacs development discussions. @ 2024-10-06  7:32 UTC (permalink / raw)
  To: Arne Bab; +Cc: Emacs Devel

Some thoughts about what have been discussed in this topic:

** The plague of pre-configuration:

Isn't Emacs usable without any pre-configuration, out of the box?
I think it is.  One can install Emacs and use it right away as an
editor without any initial configurations.  Emacs — without any prior
customisation and configuration — already provides much more features
compared to many code/text editors that I know and have worked with.

However, current Emacs' vanilla setup is not all of what make most
Emacs newcomers interested in Emacs and/or discover Emacs.  So they
tend to start customising and tweaking Emacs right away, rather than
using it first.  I'm not sure, but I think this tendency is not
something that Emacs devs or community can prevent.  But at least,
Emacs has to say to it to the user that you can use me without any
prior configuration for most of the simple use cases of a text
editor.

Another problem is that most of those newcomers start doing that
without reading Emacs' manual.  Now, that one has to be clearly
discouraged.  Doesn't matter how intuitive an interface is designed,
it's always good to come with a manual, and Emacs comes with a very
good one.  And it's always advised to use a tool after or alongside
reading its documentation.

\f

** The audience of Doom:

I think, Doom and Spacemacs were and are (at least, partially)
successful in attracting:

1. Previous vi, vim, or neovim users;
2. Anyone who likes VI and VIM key bindings.

Amongst whom are beginners or those who don't like to do the required
configuration to achieve a similar look and feel to Doom
and Spacemacs.

However, it is not as much attractive for other people than those.  But still
there are people using Doom/Spacemacs not being from those two groups.

\f

** A wizard to do the magic work:

What about an initial interactive wizard buffer?  Many complicated
software actually come with that.  Prompting user to choose some 
important options and to declare his/her use case and to notify him
about some important tips.

An initial interactive wizard will force a beginner to pay attention
to notes, tips, suggestions, and warning along helping him/her to
interactively configure and prepare his/her Emacs for its first use.

The interface would use a mechanism much like Emacs' Custom buffers.

That would just open for the first time Emacs is opened or such thing.

--
Best Regards,
Abraham
Sent with Tutanota; https://tuta.com



^ permalink raw reply	[flat|nested] 108+ messages in thread

end of thread, other threads:[~2024-11-19  2:44 UTC | newest]

Thread overview: 108+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-01 20:09 An anonymous IRC user's opinion Jordi Gutiérrez Hermoso
2024-10-04 16:25 ` Eduardo Ochs
2024-10-04 18:10   ` Dr. Arne Babenhauserheide
2024-10-04 18:30     ` Eduardo Ochs
2024-10-04 19:24       ` Dr. Arne Babenhauserheide
2024-10-04 20:37         ` Eduardo Ochs
2024-10-05  8:41           ` Dr. Arne Babenhauserheide
2024-10-05 12:57             ` Eduardo Ochs
2024-10-05 13:21               ` Emanuel Berg
2024-10-05 15:57               ` Dr. Arne Babenhauserheide
2024-10-09  3:30               ` Richard Stallman
2024-10-09  7:04                 ` Eduardo Ochs
2024-10-07  3:54     ` Richard Stallman
2024-10-07  4:14       ` Emanuel Berg
2024-10-07 14:27         ` Ship Mints
2024-10-07 14:46           ` Emanuel Berg
2024-10-07 10:31       ` Dr. Arne Babenhauserheide
2024-10-10  0:22 ` chad
  -- strict thread matches above, loose matches on Subject: below --
2024-10-06  5:31 Pedro Andres Aranda Gutierrez
2024-10-06  6:04 ` Emanuel Berg
2024-10-06  9:06 ` Dr. Arne Babenhauserheide
2024-10-06  9:10   ` Emanuel Berg
2024-10-06 10:31   ` Pedro Andres Aranda Gutierrez
2024-10-07 21:17     ` John ff
2024-10-13  3:29   ` Richard Stallman
2024-10-06  7:32 Abraham S.A.H. via Emacs development discussions.
2024-10-06  8:10 ` Emanuel Berg
2024-10-06  8:44 ` Dr. Arne Babenhauserheide
2024-10-06  9:01   ` Emanuel Berg
2024-10-06  9:09   ` Emanuel Berg
2024-10-06  9:32   ` Abraham S.A.H. via Emacs development discussions.
2024-10-06 11:28     ` Dr. Arne Babenhauserheide
2024-10-06 13:10       ` Emanuel Berg
2024-10-06 12:55     ` Emanuel Berg
2024-10-09  3:29       ` Richard Stallman
2024-10-09 20:20         ` Emanuel Berg
2024-10-10  8:57           ` Dr. Arne Babenhauserheide
2024-10-09  3:30   ` Richard Stallman
2024-10-09  6:48     ` Dr. Arne Babenhauserheide
2024-10-09 20:22       ` Emanuel Berg
2024-10-09 11:09     ` Johan Myréen
2024-10-09 13:13       ` Eli Zaretskii
2024-10-09 13:38         ` tomas
2024-10-09 16:02         ` Dr. Arne Babenhauserheide
2024-10-09 16:22           ` Eli Zaretskii
2024-10-09 21:55           ` Emanuel Berg
2024-10-10  7:25             ` Eli Zaretskii
2024-10-10  9:35               ` Dr. Arne Babenhauserheide
2024-10-10 10:42                 ` Eli Zaretskii
2024-10-13  3:29               ` Richard Stallman
2024-10-10  6:07           ` Emanuel Berg
2024-10-09 16:06         ` Johan Myréen
2024-10-09 16:12           ` Ship Mints
2024-10-09 16:25           ` Eli Zaretskii
2024-10-09 21:25         ` Dmitry Gutov
2024-10-10  4:56           ` Eli Zaretskii
2024-10-10  5:14             ` Xiyue Deng
2024-10-10  6:36               ` Eli Zaretskii
2024-10-10  6:59                 ` Xiyue Deng
2024-10-11 20:30             ` Dmitry Gutov
2024-10-12  7:34               ` Eli Zaretskii
2024-10-12 20:27                 ` Dmitry Gutov
2024-10-12 21:00                   ` Dr. Arne Babenhauserheide
2024-10-13  4:53                     ` Eli Zaretskii
2024-10-13  6:28                       ` Dr. Arne Babenhauserheide
2024-10-13  4:41                   ` Eli Zaretskii
2024-10-13  9:37                     ` Dmitry Gutov
2024-10-13 10:39                       ` Eli Zaretskii
2024-10-13 15:31                         ` Dmitry Gutov
2024-10-13 15:53                           ` Eli Zaretskii
2024-10-14  9:32                             ` Dmitry Gutov
2024-10-14 11:09                               ` Alan Mackenzie
2024-10-15  1:41                                 ` Dmitry Gutov
2024-10-14 14:16                               ` Eli Zaretskii
2024-10-15  1:36                                 ` Dmitry Gutov
2024-10-15 12:03                                   ` Eli Zaretskii
2024-11-03  3:10                                     ` Dmitry Gutov
2024-11-03  6:37                                       ` Eli Zaretskii
2024-11-03 19:24                                         ` Dmitry Gutov
2024-11-04 12:04                                           ` Eli Zaretskii
2024-11-04 12:11                                           ` Eli Zaretskii
2024-11-04 17:41                                             ` Dmitry Gutov
2024-11-04 19:18                                               ` Eli Zaretskii
2024-11-04 20:59                                                 ` Dmitry Gutov
2024-11-05 12:11                                                   ` Eli Zaretskii
2024-11-05 17:05                                                     ` Dmitry Gutov
2024-11-05 17:28                                                       ` Eli Zaretskii
2024-11-05 19:40                                                         ` Dmitry Gutov
2024-11-05 19:53                                                           ` Eli Zaretskii
2024-11-05 20:59                                                             ` Dmitry Gutov
2024-11-06 12:15                                                               ` Eli Zaretskii
2024-11-06 12:46                                                                 ` Dmitry Gutov
2024-11-06 13:25                                                                   ` Eli Zaretskii
2024-11-06 16:07                                                                     ` Dmitry Gutov
2024-11-06 17:14                                                                       ` Eli Zaretskii
2024-11-19  2:44                                                                         ` Dmitry Gutov
2024-11-05 13:21                                                 ` Dr. Arne Babenhauserheide
2024-11-05 13:47                                                   ` Eli Zaretskii
2024-11-05 16:52                                                     ` Dr. Arne Babenhauserheide
2024-11-05 17:22                                                       ` Eli Zaretskii
2024-11-05 17:49                                                         ` Philip Kaludercic
2024-11-05 19:23                                                           ` Dr. Arne Babenhauserheide
2024-11-06  0:09                                                             ` Philip Kaludercic
2024-11-06  9:35                                                               ` Dr. Arne Babenhauserheide
2024-11-06  9:59                                                                 ` Philip Kaludercic
2024-10-13 10:52                       ` Dr. Arne Babenhauserheide
2024-10-10 13:58     ` Richard Stallman
2024-10-10 14:45       ` Dr. Arne Babenhauserheide
2024-10-12  3:19         ` Richard Stallman

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).