all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: "Óscar Fuentes" <ofv@wanadoo.es>
To: emacs-devel@gnu.org
Subject: Re: Emacs rewrite in a maintainable language
Date: Sun, 11 Oct 2015 20:32:59 +0200	[thread overview]
Message-ID: <87io6dl0h0.fsf@wanadoo.es> (raw)
In-Reply-To: m2a8rpe2qr.fsf@newartisans.com

"John Wiegley" <johnw@newartisans.com> writes:

>>>>>> Przemysław Wojnowski <esperanto@cumego.com> writes:
>
>> Recently I was going through Emacs C code and immediately one thing come to
>> my mind: "Did anyone consider rewrite it a more maintainable language?" :-)
>
> Hi Przemysław,
>
> There is one reason I can think of not to rewrite Emacs in another language:
> Because the language it's written in is working for us.
>
> If C presented difficulties in terms of capability, efficiency, contribution,
> debugging, etc., that would naturally drive us toward another language. But as
> it stands, C is well understood, easy to resolve performance issues, there are
> superb debugging and analysis tools available, and the runtime is exceedingly
> mature.
>
> And, as some have said, C code represents only a fraction of what Emacs is to
> the user. Switching from Emacs Lisp to another high-level language might be a
> more interesting discussion, which you could take up with the people working
> on such projects, like Guile Emacs. If someone can prove to me that we gain a
> lot and lose a little from such a switch, it's definitely worth considering!

We have plenty of people writing Elisp code, either for the Emacs core,
packages distributed with the core or ELPA, or external packages.
However, the number of people able of doing significant work on the C
core is tiny. By your depiction of C, this is backwards: the popular
language has a few contributors, the application-specific language is
well populated.

The truth is that the C core is an obfuscated mess (ok ok, now someone
will come saying that the Emacs C code base is very well and all;
someone who surely has at least 10 years of experience with the C core.)

I wouldn't touch the C core with a ten foot pole, except for something
that is an obvious change, and then request a review by a veteran. I
know C, I have many years of C++ experience, but the Emacs C core is a
pseudo-language on itself, because C sucks at abstracting things. It
sucks too at helping the hacker to not shoot himself on the foot.

In large part because that reason, there are key are parts of the C core
that are only understood by one active hacker (being optimistic here).
This is a huge liability for Emacs. I don't know how this fact fits the
"C is working for us" stance.

Replacing C with a language that helps people to write readable, safe,
efficient and maintainable code without having to study the existing
code base for months looks quite appealing to me. That replacement could
be gradual (no "stopping the world while The Big Rewrite is underway.")
If that language is not so popular as C, that's no big problem as long
as it makes things less daunting for those willing to work on the Emacs
core. As already said, there is no dramatic shortage of people who learn
Elisp just for hacking Emacs.




  reply	other threads:[~2015-10-11 18:32 UTC|newest]

Thread overview: 250+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-10-11  8:11 Emacs rewrite in a maintainable language Przemysław Wojnowski
2015-10-11  8:17 ` David Kastrup
2015-10-11 22:02   ` Marcin Borkowski
2015-10-11 22:14     ` John Wiegley
2015-10-11 22:37       ` Óscar Fuentes
2015-10-11 22:37       ` Marcin Borkowski
2015-10-11 22:49         ` John Wiegley
2015-10-11 22:51         ` Óscar Fuentes
2015-10-11 23:12         ` Drew Adams
2015-10-12  2:43     ` Eli Zaretskii
2015-10-12 15:35       ` Eli Zaretskii
2015-10-12 21:30         ` Daniel Colascione
2015-10-12 20:01     ` Richard Stallman
2015-10-11  8:54 ` Alexis
2015-10-11 10:53   ` Przemysław Wojnowski
2015-10-11 11:23 ` Thomas Koch
2015-10-11 13:11   ` Dmitry Gutov
2015-10-11 13:36     ` David Kastrup
2015-10-11 13:39       ` Dmitry Gutov
2015-10-11 13:55         ` David Kastrup
2015-10-11 14:03           ` Dmitry Gutov
2015-10-11 12:52 ` Daniel Colascione
2015-10-11 12:59 ` Fabrice Popineau
2015-10-11 17:25 ` John Wiegley
2015-10-11 18:32   ` Óscar Fuentes [this message]
2015-10-11 19:14     ` Eli Zaretskii
2015-10-11 19:43       ` Óscar Fuentes
2015-10-11 19:53         ` Eli Zaretskii
2015-10-11 20:13           ` Óscar Fuentes
2015-10-12  2:33             ` Eli Zaretskii
2015-10-12  3:59               ` Paul Eggert
2015-10-12  8:12                 ` Steinar Bang
2015-10-12  9:36                   ` Marcin Borkowski
2015-10-12 10:20                     ` David Kastrup
2015-10-12 12:23               ` Óscar Fuentes
2015-10-12 16:08                 ` Eli Zaretskii
2015-10-12 20:00         ` Richard Stallman
2015-10-13  2:36           ` Rustom Mody
2015-10-12 10:56       ` Michael Heerdegen
2015-10-11 21:52     ` John Wiegley
2015-10-12  7:14       ` David Kastrup
2015-10-12 12:48     ` Oleh Krehel
2015-10-12 13:22       ` Óscar Fuentes
2015-10-12 14:18         ` Oleh Krehel
2015-10-12 15:04           ` David Kastrup
2015-10-12 18:24         ` John Wiegley
2015-10-12 19:21           ` Óscar Fuentes
2015-10-12 19:39             ` John Wiegley
2015-10-12 19:46               ` Eli Zaretskii
2015-10-12 19:58                 ` Eli Zaretskii
2015-10-12 20:11                   ` John Wiegley
2015-10-12 20:42                     ` Marcin Borkowski
2015-10-12 20:46                     ` Óscar Fuentes
2015-10-13 14:57                     ` Eli Zaretskii
2015-10-13 16:22                       ` John Wiegley
2015-10-13 16:40                         ` Drew Adams
2015-10-13 16:49                           ` John Wiegley
2015-10-12 20:40               ` Drew Adams
2015-10-13  4:18                 ` John Wiegley
2015-10-13  6:00                   ` immerrr again
2015-10-13 14:59                     ` Eli Zaretskii
2015-10-13  1:12               ` Óscar Fuentes
2015-10-13 10:01               ` David Kastrup
2015-10-13 15:12                 ` Eli Zaretskii
2015-10-13 15:20                   ` David Kastrup
2015-10-14 15:04                     ` Chris Patti
2015-10-14 15:34                       ` Jay Belanger
2015-10-16 12:25                   ` Guile-Emacs Ludovic Courtès
2015-10-16 12:03                 ` Emacs rewrite in a maintainable language Ludovic Courtès
2015-10-16 13:30                   ` Eli Zaretskii
2015-10-16 14:55                     ` Wolfgang Jenkner
2015-10-16 15:14                       ` Eli Zaretskii
2015-10-16 15:25                     ` Ludovic Courtès
2015-10-16 15:51                       ` David Kastrup
2015-10-16 14:29                   ` David Kastrup
2015-10-16 15:08                     ` Eli Zaretskii
2015-10-16 15:28                       ` David Kastrup
2015-10-16 16:05                         ` Eli Zaretskii
2015-10-16 15:31                       ` Ludovic Courtès
2015-10-16 16:11                         ` Eli Zaretskii
2015-10-16 19:34                           ` Przemysław Wojnowski
2015-10-16 19:51                             ` David Kastrup
2015-10-16 19:52                             ` Eli Zaretskii
2015-10-16 20:51                           ` Ludovic Courtès
2015-10-17  5:27                             ` David Kastrup
2015-10-17  7:20                             ` Eli Zaretskii
2015-10-17  9:44                               ` Ludovic Courtès
2015-10-17 10:24                                 ` Eli Zaretskii
2015-10-18 10:22                                   ` Ludovic Courtès
2015-10-18 11:33                                     ` David Kastrup
2015-10-18 12:54                                       ` Taylan Ulrich Bayırlı/Kammer
2015-10-18 13:17                                         ` David Kastrup
2015-10-18 14:40                                           ` Taylan Ulrich Bayırlı/Kammer
2015-10-18 15:31                                             ` David Kastrup
2015-10-18 16:19                                         ` Eli Zaretskii
2015-10-18 16:37                                           ` Taylan Ulrich Bayırlı/Kammer
2015-10-18 16:44                                             ` Eli Zaretskii
2015-10-18 17:06                                               ` Taylan Ulrich Bayırlı/Kammer
2015-10-18 17:11                                                 ` David Kastrup
2015-10-18 17:36                                                 ` Eli Zaretskii
2015-10-18 17:52                                                   ` John Wiegley
2015-10-18 18:23                                                     ` Daniel Colascione
2015-10-18 18:35                                                       ` David Kastrup
2015-10-18 18:53                                                         ` Daniel Colascione
2015-10-18 19:03                                                           ` David Kastrup
2015-10-18 19:13                                                           ` Paul Eggert
2015-10-18 19:35                                                           ` Taylan Ulrich Bayırlı/Kammer
2015-10-18 19:49                                                             ` Daniel Colascione
2015-10-19  7:59                                                               ` Taylan Ulrich Bayırlı/Kammer
2015-10-19 10:50                                                                 ` Stephen J. Turnbull
2015-10-19 10:59                                                                   ` Eli Zaretskii
2015-10-19 11:31                                                                     ` David Kastrup
2015-10-19 12:04                                                                       ` David Kastrup
2015-10-19 11:24                                                                   ` David Kastrup
2015-10-20  4:18                                                                     ` Stephen J. Turnbull
2015-10-20  7:36                                                                       ` David Kastrup
2015-10-20 10:17                                                                         ` Stephen J. Turnbull
2015-10-19 12:26                                                                   ` Taylan Ulrich Bayırlı/Kammer
2015-10-19 12:53                                                                     ` David Kastrup
2015-10-19 17:43                                                                   ` Tom Tromey
2015-10-19 18:06                                                                     ` David Kastrup
2015-10-20  2:46                                                                       ` Tom Tromey
2015-10-19  8:46                                                               ` David Kastrup
2015-10-19  9:39                                                                 ` Przemysław Wojnowski
2015-10-19  5:33                                                           ` Richard Stallman
2015-10-26 11:01                                                             ` Alexis
2015-10-18 19:16                                                       ` Taylan Ulrich Bayırlı/Kammer
2015-10-18 22:38                                                     ` Nicolas Petton
2015-10-20  7:34                                                       ` John Wiegley
2015-10-18 16:40                                           ` John Wiegley
2015-10-18 16:56                                             ` David Kastrup
2015-10-18 17:46                                               ` Stephen J. Turnbull
2015-10-19  7:45                                             ` Gian Uberto Lauri
2015-10-17 15:38                                 ` David Kastrup
2015-10-17 16:25                                   ` Taylan Ulrich Bayırlı/Kammer
2015-10-17 16:43                                     ` David Kastrup
2015-10-17 17:00                                       ` Taylan Ulrich Bayırlı/Kammer
2015-10-17 16:48                                     ` Eli Zaretskii
2015-10-17 17:03                                       ` Taylan Ulrich Bayırlı/Kammer
2015-10-17 17:08                                         ` David Kastrup
2015-10-17 17:10                                         ` Eli Zaretskii
2015-10-17 18:31                                           ` Stephen J. Turnbull
2015-10-17 17:04                                     ` David Kastrup
2015-10-17 17:32                                       ` Taylan Ulrich Bayırlı/Kammer
2015-10-17 17:42                                         ` David Kastrup
2015-10-17 18:34                                           ` Taylan Ulrich Bayırlı/Kammer
2015-10-17 19:15                                             ` Eli Zaretskii
2015-10-17 21:22                                               ` Taylan Ulrich Bayırlı/Kammer
2015-10-18  0:23                                                 ` John Wiegley
2015-10-18 15:53                           ` Richard Stallman
2015-10-18 16:58               ` Tom Tromey
2015-10-18 17:40                 ` John Wiegley
2015-10-18 19:40                   ` Eli Zaretskii
2015-10-18 20:47                     ` David Kastrup
2015-10-19  3:55                   ` Tom Tromey
2015-10-20  7:33                     ` John Wiegley
2015-10-12 19:43             ` Eli Zaretskii
2015-10-13  8:27               ` Przemysław Wojnowski
2015-10-13  8:52                 ` Gian Uberto Lauri
2015-10-13 10:19                 ` Tassilo Horn
2015-10-13 15:14                   ` Eli Zaretskii
2015-10-13 19:45                     ` Tassilo Horn
2015-10-13 15:05                 ` Eli Zaretskii
2015-10-13 16:09                   ` John Wiegley
2015-10-13 20:43                   ` Przemysław Wojnowski
2015-10-13 16:06                 ` John Wiegley
2015-10-13 20:20                   ` Przemysław Wojnowski
2015-10-13 21:22                     ` emacs IDE features (was: Emacs rewrite in a maintainable language) Andrés Ramírez
2015-10-13 22:13                       ` emacs IDE features John Wiegley
2015-10-14 11:11                         ` Phillip Lord
2015-10-16 23:13                           ` John Wiegley
2015-10-17  7:40                             ` Eli Zaretskii
2015-10-17 23:51                               ` John Wiegley
2015-10-18  0:48                                 ` Sacha Chua
2015-10-18  2:34                                   ` Xue Fuqiao
2015-10-18 17:05                                     ` Sacha Chua
2015-10-18 17:31                                       ` John Wiegley
2015-10-18 16:21                                   ` John Wiegley
2015-10-19 16:37                                   ` Christopher Allan Webber
2015-10-18 16:47                                 ` Eli Zaretskii
2015-10-18 17:30                                   ` John Wiegley
2015-10-19 10:30                             ` Phillip Lord
2015-10-20  6:56                               ` John Wiegley
2015-10-13 22:10                     ` Emacs rewrite in a maintainable language John Wiegley
2015-10-12 23:00             ` Camm Maguire
2015-10-13  1:38               ` Alexis
2015-10-13  1:40                 ` Daniel Colascione
2015-10-13 23:34             ` Richard Stallman
2015-10-13 23:55               ` John Wiegley
2015-10-13  5:28           ` Ken Raeburn
2015-10-13  5:39             ` John Wiegley
2015-10-13 10:13               ` David Kastrup
2015-10-14  1:43                 ` Daniel Colascione
2015-10-13  6:49             ` Stephen J. Turnbull
2015-10-12 13:50       ` David Kastrup
2015-10-12 15:17         ` Oleh Krehel
2015-10-12 15:35           ` David Kastrup
2015-10-12 16:29           ` Eli Zaretskii
2015-10-12 22:39           ` Paul Eggert
2015-10-13 11:27             ` Oleh Krehel
2015-10-13 11:46               ` Alan Mackenzie
2015-10-13 12:02                 ` Oleh Krehel
2015-10-13 12:21                   ` Alan Mackenzie
2015-10-13 12:22                   ` Mathieu Lirzin
2015-10-13 13:52                     ` John Yates
2015-10-13 14:30                       ` David Kastrup
2015-10-13 16:26                         ` Andreas Schwab
2015-10-13 16:40                           ` John Wiegley
2015-10-13 14:38                       ` Oleh Krehel
2015-10-13 13:06                   ` Sergey Organov
2015-10-13 14:19                     ` Artur Malabarba
2015-10-13 14:39                       ` David Kastrup
2015-10-13 15:21                         ` Artur Malabarba
2015-10-13 15:53                           ` David Kastrup
2015-10-13 16:09                             ` Oleh Krehel
2015-10-13 16:23                               ` David Kastrup
2015-10-13 16:31                               ` Eli Zaretskii
2015-10-13 16:38                                 ` David Kastrup
2015-10-13 15:21                 ` Eli Zaretskii
2015-10-13 15:42                   ` David Kastrup
2015-10-13 15:32               ` Paul Eggert
2015-10-13 16:13                 ` Oleh Krehel
2015-10-13 21:02                   ` Andy Moreton
2015-10-14  8:15                     ` Oleh Krehel
2015-10-14 13:28                       ` Andy Moreton
2015-10-14 16:18                       ` Eli Zaretskii
2015-10-14 10:22                     ` Przemysław Wojnowski
2015-10-14 10:56                       ` Tassilo Horn
2015-10-14 11:14                         ` Przemysław Wojnowski
2015-10-14 11:33                         ` Oleh Krehel
2015-10-14 12:12                           ` Tassilo Horn
2015-10-14 11:46                         ` David Kastrup
2015-10-14 12:29                           ` Tassilo Horn
2015-10-14 11:21                     ` Mathieu Lirzin
2015-10-14 16:05                     ` John Wiegley
2015-10-13 16:13               ` John Wiegley
2015-10-12 15:09       ` Paul Eggert
2015-10-12 15:24         ` David Kastrup
2015-10-12 15:24         ` Oleh Krehel
2015-10-12 16:31           ` Eli Zaretskii
2015-10-12 17:20         ` Stephen J. Turnbull
2015-10-13 12:02           ` Marcus Harnisch
2015-10-13 23:38             ` Richard Stallman
2015-10-14  1:46             ` Daniel Colascione
2015-10-14 13:08               ` Marcus Harnisch
2015-10-12 16:18       ` Eli Zaretskii
2015-10-12 17:47         ` Steinar Bang
2015-10-12 17:59           ` David Kastrup
2015-10-12 21:28       ` Daniel Colascione
2015-10-11 18:36   ` Przemysław Wojnowski

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

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

  git send-email \
    --in-reply-to=87io6dl0h0.fsf@wanadoo.es \
    --to=ofv@wanadoo.es \
    --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 external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.