From: Stefan Monnier <monnier@iro.umontreal.ca>
To: emacs-devel@gnu.org
Subject: Re: Android port of Emacs
Date: Fri, 30 Jun 2023 17:40:12 -0400 [thread overview]
Message-ID: <jwvilb4d5wc.fsf-monnier+emacs@gnu.org> (raw)
In-Reply-To: <83v8fnslfz.fsf@gnu.org> (Eli Zaretskii's message of "Fri, 16 Jun 2023 14:20:16 +0300")
[ Yes, I know, I'm coming late to this discussion, sorry.
I don't intend to say much more about it. ]
> I wonder whether the Android port of Emacs, which is being developed
> by Po Lu for the past few months, should be part of the upstream Emacs
> and whether it should be distributed as part of the Emacs release
> tarballs.
I have not looked closely at the branch itself, so take my opinion with
a grain of salt, but here it goes:
I don't think Emacs is currently very usable on Android because Emacs
evolved in a context of machines where the main input device is
a keyboard, with a mouse as secondary input device, and Android devices
that fit this description are basically limited to Chromebooks.
But for the same reason I think it's important to invest efforts in this
Android port: machines whose main input device is a touchscreen are not
going anywhere, so taking a longer-term perspective we should try and
make Emacs more usable on those machines, and currently that mostly
means Android machines.
> However, Android is a proprietary platform, so it isn't one
> of the systems that we are required to target.
I don't think we're required to target any platform at all, anyway :-)
[ I personally use LineageOS on my Android devices, and I don't consider
it "proprietary" (tho I don't consider it fully Free either). ]
> I also don't think Android (and smartphones in general) will become
> the main, or even important, platform for Emacs any time soon.
Agreed. But I think it has the potential to become an important
platform in the long run (probably not to edit source code, but to run
things like Org mode).
> . it makes the Emacs distribution significantly larger (I think no
> other port, not even the MS-Windows or macOS ports, add so much
> stuff to the distribution)
FWIW, I'm not sure how useful/important it would be to include the
Android port in the Emacs tarball: I'd expect that anyone dedicated
enough to build his own Emacs-on-Android (that requires a fair bit more
effort than for other platforms, in my experience) would do so from Git.
> . significant portions of the Android support are (and AFAIU must
> be) implemented in Java, which is not used anywhere else in Emacs;
> Emacs developers are therefore not expected to be Java experts,
> and we have no Java-oriented coding conventions in Emacs
> . it requires non-trivial knowledge of the Android platform,
> including its unique requirements and limitations
I think we should treat this the same way we do for the macOS or
MS-DOS support: there's always the threat that we'll remove that support
if noone steps up to combat bitrot.
> . its integration adds some non-trivial hair to many existing Emacs
> APIs and processing, whose purpose is only clear if one considers
> the special Android quirks
This is the real issue, IMO.
We need to take a hard look here to see how to solve those problems.
Is there a set of bugs opened for those integration issues?
Or some place where we keep track of them?
That's not a deal breaker, I believe (after all, we have similar quirks
introduced by other ports, such as the /-vs-\ in file names, or the
fact that we resist the introduction of a `fork` primitive in ELisp
because of the problems implementing it on the w32 platform), but we
need to keep this as much as possible under control.
> . currently, we have a single developer who understands the
> specifics of the Android port and works on developing it; it is
> not good for Emacs to depend on a single individual for a port
> that should be kept alive and up-to-date for the observable future
While I don't foresee hordes of people contributing to the port in the
future, no matter what we do, I suspect that if it becomes an "official"
port (with a usable release on F-Droid), we'll start seeing more people
contribute patches to improve Android support.
Probably not many patches to src/android*.c, but patches to things like
lisp/org/*.el, as well as new Android-specific *ELPA packages.
> An alternative would be for the Android support to be a separate
> project on Savannah. Maybe in the long run this would be better?
The "mac port" experience is an anecdotal proof that it can be a valid
option, but Aquamacs is the other anecdotal proof that this tends to
have trouble keeping up with Emacs development and ends up forking and
then dying.
I'd rather include it in the main branch, to encourage its maintenance
and hope for mutual long term benefit, while making it clear that
if/when we have to choose between breaking this code or improving Emacs
for GNU/Linux, we'll choose the latter.
IOW, just as is already the case for Haiku, MS-DOS, ...
Stefan
next prev parent reply other threads:[~2023-06-30 21:40 UTC|newest]
Thread overview: 334+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-06-16 11:20 Android port of Emacs Eli Zaretskii
2023-06-16 13:03 ` Po Lu
2023-06-16 13:17 ` Po Lu
2023-06-16 15:16 ` Dr. Arne Babenhauserheide
2023-06-16 15:32 ` Eli Zaretskii
2023-06-16 16:34 ` Dr. Arne Babenhauserheide
2023-06-16 19:34 ` Bob Rogers
2023-06-16 23:46 ` Po Lu
2023-06-18 2:10 ` Richard Stallman
2023-06-17 0:49 ` Konstantin Kharlamov
2023-06-17 6:20 ` Eli Zaretskii
2023-06-17 9:28 ` Dr. Arne Babenhauserheide
2023-06-17 13:34 ` Konstantin Kharlamov
2023-06-17 16:47 ` Alfred M. Szmidt
2023-06-17 18:11 ` contributing to Emacs Konstantin Kharlamov
2023-06-17 18:36 ` Alfred M. Szmidt
2023-06-17 19:39 ` Konstantin Kharlamov
2023-06-17 21:00 ` Alfred M. Szmidt
2023-06-17 21:10 ` Konstantin Kharlamov
2023-06-17 21:19 ` Alfred M. Szmidt
2023-06-17 21:26 ` Konstantin Kharlamov
2023-06-17 22:25 ` Alfred M. Szmidt
2023-06-17 22:39 ` Konstantin Kharlamov
2023-06-18 5:20 ` Eli Zaretskii
2023-06-18 8:53 ` Konstantin Kharlamov
2023-06-18 9:01 ` Po Lu
2023-06-18 9:23 ` Konstantin Kharlamov
2023-06-18 9:25 ` Po Lu
2023-06-18 10:04 ` Konstantin Kharlamov
2023-06-18 10:07 ` Po Lu
2023-06-18 9:57 ` Alfred M. Szmidt
2023-06-18 9:01 ` Eli Zaretskii
2023-06-18 9:06 ` Eli Zaretskii
2023-06-18 9:21 ` Konstantin Kharlamov
2023-06-18 12:00 ` Michael Albinus
2023-06-18 13:29 ` [External] : " Drew Adams
2023-06-18 22:46 ` Konstantin Kharlamov
2023-06-19 2:30 ` Eli Zaretskii
2023-06-18 9:18 ` Konstantin Kharlamov
2023-06-18 9:35 ` Eli Zaretskii
2023-06-18 21:16 ` Dmitry Gutov
2023-06-18 10:00 ` Philip Kaludercic
2023-06-18 10:15 ` Konstantin Kharlamov
2023-06-18 10:22 ` Philip Kaludercic
2023-06-23 6:49 ` Sean Whitton
2023-06-24 15:37 ` Philip Kaludercic
2023-06-25 7:40 ` Sean Whitton
2023-06-25 11:32 ` Setting 'vc-default-patch-addressee' in .dir-locals.el Philip Kaludercic
2023-06-18 12:13 ` contributing to Emacs Po Lu
2023-06-18 12:26 ` Konstantin Kharlamov
2023-06-18 13:43 ` Alfred M. Szmidt
2023-06-18 14:57 ` Dr. Arne Babenhauserheide
2023-06-18 16:29 ` Eli Zaretskii
2023-06-18 18:52 ` Dr. Arne Babenhauserheide
2023-06-18 19:10 ` Alfred M. Szmidt
2023-06-18 19:11 ` Eli Zaretskii
2023-06-18 20:10 ` Konstantin Kharlamov
2023-06-19 2:24 ` Eli Zaretskii
2023-06-19 6:05 ` Dr. Arne Babenhauserheide
2023-06-19 18:07 ` David Masterson
2023-06-19 18:50 ` Eli Zaretskii
2023-06-19 21:29 ` Konstantin Kharlamov
2023-06-19 22:49 ` David Masterson
2023-06-20 11:14 ` Eli Zaretskii
2023-06-20 15:45 ` Konstantin Kharlamov
2023-06-20 16:14 ` Eli Zaretskii
2023-06-20 16:32 ` Lynn Winebarger
2023-06-20 16:42 ` Eli Zaretskii
2023-06-20 19:49 ` Konstantin Kharlamov
2023-06-24 1:44 ` Björn Bidar
2023-06-24 3:10 ` Po Lu
2023-06-24 7:00 ` Eli Zaretskii
2023-06-24 7:54 ` Michael Albinus
2023-06-25 2:25 ` Richard Stallman
2023-06-25 16:41 ` Corwin Brust
2023-06-25 23:31 ` Björn Bidar
2023-06-26 16:47 ` Ian Kelling
2023-06-27 11:08 ` Yuchen Pei
2023-06-27 13:52 ` Corwin Brust
2023-06-28 4:33 ` Björn Bidar
2023-06-29 3:03 ` Richard Stallman
2023-07-03 2:32 ` Björn Bidar
2023-07-03 4:25 ` Dr. Arne Babenhauserheide
2023-07-05 2:07 ` Richard Stallman
2023-07-04 1:58 ` Richard Stallman
2023-07-05 13:19 ` Yuchen Pei
2023-07-09 2:53 ` Richard Stallman
2023-06-27 1:05 ` Richard Stallman
2023-06-28 2:18 ` Richard Stallman
2023-06-20 16:24 ` Alfred M. Szmidt
2023-06-20 16:33 ` Dr. Arne Babenhauserheide
2023-06-19 22:47 ` David Masterson
2023-06-20 1:17 ` Po Lu
2023-06-20 2:24 ` David Masterson
2023-06-20 7:01 ` Alfred M. Szmidt
2023-06-21 0:51 ` Richard Stallman
2023-06-21 4:13 ` Po Lu
2023-06-21 4:23 ` David Masterson
2023-06-23 1:47 ` Richard Stallman
2023-06-23 2:28 ` Po Lu
2023-06-25 2:25 ` Richard Stallman
2023-06-20 11:20 ` Eli Zaretskii
2023-06-18 8:34 ` Alfred M. Szmidt
2023-06-18 8:58 ` Konstantin Kharlamov
2023-06-18 0:50 ` Po Lu
2023-06-20 2:55 ` Richard Stallman
2023-06-20 3:39 ` Po Lu
2023-06-21 9:20 ` Gregory Heytings
2023-06-22 1:56 ` Richard Stallman
2023-06-22 2:23 ` Po Lu
2023-06-22 7:47 ` Philip Kaludercic
2023-06-22 7:59 ` Po Lu
2023-06-22 8:38 ` Dr. Arne Babenhauserheide
2023-06-20 11:30 ` Eli Zaretskii
2023-06-17 21:44 ` chad
2023-06-18 9:26 ` Dr. Arne Babenhauserheide
2023-06-18 10:05 ` Eli Zaretskii
2023-06-18 10:30 ` Dr. Arne Babenhauserheide
2023-06-18 10:52 ` Eli Zaretskii
2023-06-18 11:00 ` Dr. Arne Babenhauserheide
2023-06-18 10:57 ` Konstantin Kharlamov
2023-06-18 8:59 ` Dr. Arne Babenhauserheide
2023-06-18 9:30 ` Konstantin Kharlamov
2023-06-18 9:34 ` Konstantin Kharlamov
2023-06-18 9:56 ` Konstantin Kharlamov
2023-06-18 10:02 ` Eli Zaretskii
2023-06-18 10:13 ` Konstantin Kharlamov
2023-06-18 10:22 ` Eli Zaretskii
2023-06-18 10:27 ` Konstantin Kharlamov
2023-06-18 10:36 ` Eli Zaretskii
2023-06-18 10:44 ` Konstantin Kharlamov
2023-06-18 10:59 ` Eli Zaretskii
2023-06-18 11:14 ` Konstantin Kharlamov
2023-06-18 11:32 ` Eli Zaretskii
2023-06-18 11:54 ` Konstantin Kharlamov
2023-06-18 12:18 ` Eli Zaretskii
2023-06-18 12:24 ` Konstantin Kharlamov
2023-06-18 15:20 ` Dr. Arne Babenhauserheide
2023-06-18 10:54 ` Dr. Arne Babenhauserheide
2023-06-18 11:11 ` Konstantin Kharlamov
2023-06-18 12:10 ` Po Lu
2023-06-18 12:28 ` Konstantin Kharlamov
2023-06-18 12:51 ` Eli Zaretskii
2023-06-18 13:02 ` Konstantin Kharlamov
2023-06-18 13:13 ` Eli Zaretskii
2023-06-18 13:32 ` Po Lu
2023-06-18 13:50 ` Konstantin Kharlamov
2023-06-18 10:12 ` Po Lu
2023-06-18 10:22 ` Konstantin Kharlamov
2023-06-18 12:09 ` Po Lu
2023-06-18 12:30 ` Konstantin Kharlamov
2023-06-18 13:29 ` Po Lu
2023-06-18 13:55 ` Konstantin Kharlamov
2023-06-18 12:33 ` Konstantin Kharlamov
2023-06-18 13:30 ` Po Lu
2023-06-18 13:57 ` Konstantin Kharlamov
2023-06-23 6:51 ` Sean Whitton
2023-06-23 7:06 ` Po Lu
2023-06-23 7:14 ` Sean Whitton
2023-06-23 7:17 ` Eli Zaretskii
2023-06-24 7:21 ` Sean Whitton
2023-06-24 7:43 ` Eli Zaretskii
2023-06-24 12:36 ` Konstantin Kharlamov
2023-06-24 14:44 ` Eli Zaretskii
2023-06-24 16:17 ` Konstantin Kharlamov
2023-06-24 17:13 ` Eli Zaretskii
2023-06-25 7:39 ` Sean Whitton
2023-06-18 9:43 ` Eli Zaretskii
2023-06-18 10:19 ` Dr. Arne Babenhauserheide
2023-06-18 10:31 ` Eli Zaretskii
2023-06-18 10:50 ` Dr. Arne Babenhauserheide
2023-06-18 11:29 ` Eli Zaretskii
2023-06-16 15:49 ` Android port of Emacs Thomas Fitzsimmons
2023-06-16 16:28 ` Eli Zaretskii
2023-06-16 23:45 ` Po Lu
2023-06-16 21:19 ` chad
2023-06-17 0:11 ` Po Lu
2023-06-17 6:18 ` Eli Zaretskii
2023-06-17 6:38 ` Po Lu
2023-06-17 6:47 ` Eli Zaretskii
2023-06-17 7:08 ` Po Lu
2023-06-17 7:27 ` Eli Zaretskii
2023-06-17 7:41 ` Po Lu
2023-06-17 8:47 ` Eli Zaretskii
2023-06-17 9:36 ` Dr. Arne Babenhauserheide
2023-06-17 9:57 ` Po Lu
2023-06-18 7:33 ` Sean Whitton
2023-06-30 22:09 ` Stefan Monnier via Emacs development discussions.
2023-06-17 6:00 ` Eli Zaretskii
2023-06-17 6:57 ` Po Lu
2023-06-17 7:10 ` Po Lu
2023-06-17 7:21 ` Eli Zaretskii
2023-06-17 7:33 ` Po Lu
2023-06-17 7:54 ` Alfred M. Szmidt
2023-06-17 8:02 ` Po Lu
2023-06-17 8:43 ` Eli Zaretskii
2023-06-17 16:47 ` Alfred M. Szmidt
2023-06-18 0:36 ` Po Lu
2023-06-19 2:13 ` Richard Stallman
2023-06-19 7:51 ` Manuel Giraud via Emacs development discussions.
2023-06-19 8:22 ` Po Lu
2023-06-19 16:42 ` Eli Zaretskii
2023-06-19 17:54 ` Eli Zaretskii
2023-06-18 1:10 ` Dmitry Gutov
2023-06-18 1:24 ` Po Lu
2023-06-18 2:07 ` Óscar Fuentes
2023-06-20 13:29 ` Po Lu
2023-06-22 22:49 ` Gregory Heytings
2023-06-23 0:22 ` Po Lu
2023-06-23 7:37 ` Gregory Heytings
2023-06-23 8:52 ` Po Lu
2023-06-26 15:18 ` Gregory Heytings
2023-06-27 0:39 ` Po Lu
2023-07-01 14:13 ` Gregory Heytings
2023-06-24 12:17 ` Óscar Fuentes
2023-06-24 13:01 ` Po Lu
2023-06-24 13:57 ` Óscar Fuentes
2023-06-25 0:07 ` Po Lu
2023-06-25 2:02 ` Óscar Fuentes
2023-06-25 4:04 ` Po Lu
2023-07-01 19:02 ` Spencer Baugh
2023-07-02 5:09 ` Po Lu
2023-07-02 12:50 ` Dmitry Gutov
2023-07-02 12:59 ` Po Lu
2023-07-02 13:15 ` Eli Zaretskii
2023-07-13 13:54 ` Gregory Heytings
2023-07-13 23:56 ` Po Lu
2023-07-02 13:16 ` Dmitry Gutov
2023-07-02 15:45 ` Spencer Baugh
2023-07-02 16:29 ` Dmitry Gutov
2023-07-02 17:28 ` Dmitry Gutov
2023-07-02 18:48 ` Spencer Baugh
2023-07-02 23:53 ` Po Lu
2023-07-02 23:51 ` Po Lu
2023-07-04 12:34 ` Jean Louis
2023-07-04 15:46 ` Dmitry Gutov
2023-07-05 0:18 ` Jean Louis
2023-07-11 20:53 ` Bryce
2023-07-02 9:31 ` Arsen Arsenović
2023-07-02 11:29 ` Po Lu
2023-07-02 14:52 ` Dr. Arne Babenhauserheide
2023-07-02 15:26 ` Arsen Arsenović
2023-07-03 0:03 ` Po Lu
2023-07-04 18:59 ` Arsen Arsenović
2023-06-25 4:45 ` Takesi Ayanokoji
2023-06-25 5:56 ` Po Lu
2023-06-25 10:07 ` Takesi Ayanokoji
2023-06-25 10:21 ` Po Lu
2023-06-25 11:35 ` Eli Zaretskii
2023-06-26 6:11 ` Takesi Ayanokoji
2023-06-18 2:46 ` Dmitry Gutov
2023-06-18 3:05 ` Po Lu
2023-06-18 22:35 ` Dmitry Gutov
2023-06-19 0:39 ` Po Lu
2023-06-19 12:04 ` Dmitry Gutov
2023-06-18 5:31 ` Eli Zaretskii
2023-06-18 5:48 ` Po Lu
2023-06-18 7:33 ` Eli Zaretskii
2023-06-18 22:26 ` Dmitry Gutov
2023-06-21 0:50 ` Richard Stallman
2023-06-21 11:32 ` Eli Zaretskii
2023-06-23 1:47 ` Richard Stallman
2023-06-23 7:04 ` Eli Zaretskii
2023-06-23 9:05 ` Po Lu
2023-06-23 10:23 ` Eli Zaretskii
2023-06-23 11:38 ` Po Lu
2023-06-23 12:08 ` Eli Zaretskii
2023-06-24 1:19 ` Po Lu
2023-06-24 6:54 ` Eli Zaretskii
2023-06-24 15:19 ` Robert Pluim
2023-06-24 18:56 ` Alan Mackenzie
2023-06-25 0:12 ` Po Lu
2023-06-29 20:34 ` Filipp Gunbin
2023-06-30 0:35 ` Po Lu
2023-06-30 3:21 ` Takesi Ayanokoji
2023-06-30 4:54 ` Jean Louis
2023-06-24 1:39 ` Dmitry Gutov
2023-06-24 7:06 ` Eli Zaretskii
2023-06-24 22:23 ` Dmitry Gutov
2023-06-25 0:10 ` Po Lu
2023-06-25 2:26 ` Dmitry Gutov
2023-06-25 4:15 ` Po Lu
2023-06-25 5:10 ` Jean Louis
2023-06-25 5:57 ` Po Lu
2023-06-30 4:57 ` Jean Louis
2023-06-30 5:12 ` Po Lu
2023-07-04 12:27 ` Jean Louis
2023-06-26 2:12 ` Richard Stallman
2023-06-23 12:33 ` Dr. Arne Babenhauserheide
2023-06-24 7:30 ` Sean Whitton
2023-06-25 2:25 ` Richard Stallman
2023-06-25 2:40 ` Po Lu
2023-06-27 1:07 ` Richard Stallman
2023-06-25 5:38 ` Eli Zaretskii
2023-06-27 1:07 ` Richard Stallman
2023-06-17 23:16 ` Gregory Heytings
2023-06-18 0:42 ` Po Lu
2023-06-18 6:20 ` Gregory Heytings
2023-06-18 6:56 ` Po Lu
2023-06-18 22:53 ` Gregory Heytings
2023-06-19 0:34 ` Po Lu
2023-06-19 14:27 ` Gregory Heytings
2023-06-21 0:52 ` Richard Stallman
2023-06-21 9:20 ` Gregory Heytings
[not found] ` <87r0q53vi7.fsf@dick>
2023-06-23 1:47 ` Richard Stallman
2023-06-19 16:19 ` Eli Zaretskii
2023-06-20 1:13 ` Po Lu
2023-06-20 5:57 ` chad
2023-06-20 11:25 ` Eli Zaretskii
2023-06-21 9:19 ` Gregory Heytings
2023-06-18 0:57 ` Po Lu
2023-06-30 21:53 ` Stefan Monnier via Emacs development discussions.
2023-07-01 14:13 ` Gregory Heytings
2023-07-01 14:35 ` Stefan Monnier
2023-07-01 15:09 ` Gregory Heytings
2023-07-02 15:43 ` Stefan Monnier
2023-07-13 13:55 ` Gregory Heytings
2023-07-13 16:53 ` Stefan Monnier
2023-07-13 23:55 ` Po Lu
2023-07-17 1:50 ` Po Lu
2023-08-10 11:28 ` Gregory Heytings
2023-08-10 12:50 ` Po Lu
2023-08-10 13:26 ` Eric S Fraga
2023-08-10 13:45 ` Eli Zaretskii
2023-08-10 13:33 ` Stefan Monnier
2023-07-02 9:00 ` Dr. Arne Babenhauserheide
2023-06-18 20:39 ` Thanos Apollo
2023-06-19 16:08 ` Eli Zaretskii
2023-06-30 21:44 ` Stefan Monnier via Emacs development discussions.
2023-06-25 23:37 ` Björn Bidar
2023-06-30 21:40 ` Stefan Monnier [this message]
-- strict thread matches above, loose matches on Subject: below --
2023-07-02 14:53 Ant
2023-07-06 15:48 Ant
2023-07-07 2:46 ` Po Lu
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=jwvilb4d5wc.fsf-monnier+emacs@gnu.org \
--to=monnier@iro.umontreal.ca \
--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.