summaryrefslogtreecommitdiffstats
path: root/2022/info/rms-after.md
blob: 455bdfbc746e8d1ca33aec713ca130f6a9690042 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
<!-- Automatically generated by emacsconf-publish-after-page -->


<a name="rms-mainVideo-transcript"></a>
# Transcript

[[!template new="1" text="""Hello! I'm going to talk about what I would like to see""" start="00:00:00.000" video="mainVideo-rms" id="subtitle"]]
[[!template text="""in GNU Emacs in the future,""" start="00:00:08.960" video="mainVideo-rms" id="subtitle"]]
[[!template text="""and what I would prefer not to find there.""" start="00:00:11.240" video="mainVideo-rms" id="subtitle"]]
[[!template text="""This is all within the context""" start="00:00:17.600" video="mainVideo-rms" id="subtitle"]]
[[!template text="""of GNU Emacs and its purpose.""" start="00:00:22.080" video="mainVideo-rms" id="subtitle"]]
[[!template text="""GNU Emacs is a part of the GNU operating system,""" start="00:00:25.360" video="mainVideo-rms" id="subtitle"]]
[[!template text="""and the purpose of the GNU operating system""" start="00:00:30.600" video="mainVideo-rms" id="subtitle"]]
[[!template text="""is not simply to do a good job technically,""" start="00:00:33.400" video="mainVideo-rms" id="subtitle"]]
[[!template text="""not simply to be good to use.""" start="00:00:38.840" video="mainVideo-rms" id="subtitle"]]
[[!template text="""Its main purpose, its overall purpose,""" start="00:00:42.640" video="mainVideo-rms" id="subtitle"]]
[[!template text="""is to give people freedom,""" start="00:00:45.760" video="mainVideo-rms" id="subtitle"]]
[[!template text="""and to help them value and defend that freedom.""" start="00:00:48.560" video="mainVideo-rms" id="subtitle"]]
[[!template text="""A GNU package, by being a convenient, well-written program,""" start="00:00:54.760" video="mainVideo-rms" id="subtitle"]]
[[!template text="""should contribute to that overall ethical and social goal,""" start="00:01:00.160" video="mainVideo-rms" id="subtitle"]]
[[!template text="""and not only to the usefulness of our software.""" start="00:01:06.000" video="mainVideo-rms" id="subtitle"]]
[[!template text="""This is true for GNU Emacs""" start="00:01:10.440" video="mainVideo-rms" id="subtitle"]]
[[!template text="""as much as it is for any other free program we’ve developed.""" start="00:01:14.080" video="mainVideo-rms" id="subtitle"]]
[[!template text="""In fact, GNU Emacs is the first GNU program that I released.""" start="00:01:18.720" video="mainVideo-rms" id="subtitle"]]
[[!template text="""I had written some other things before that,""" start="00:01:25.320" video="mainVideo-rms" id="subtitle"]]
[[!template text="""but didn't release them at that time.""" start="00:01:28.800" video="mainVideo-rms" id="subtitle"]]
[[!template text="""There was no particular use in doing so.""" start="00:01:30.600" video="mainVideo-rms" id="subtitle"]]
[[!template text="""So it was through GNU Emacs""" start="00:01:34.200" video="mainVideo-rms" id="subtitle"]]
[[!template text="""that I learned about various things""" start="00:01:36.107" video="mainVideo-rms" id="subtitle"]]
[[!template text="""such as software licenses and how to defend freedom.""" start="00:01:38.407" video="mainVideo-rms" id="subtitle"]]
[[!template text="""You're of course familiar with what GNU Emacs is today,""" start="00:01:44.240" video="mainVideo-rms" id="subtitle"]]
[[!template text="""thanks to the contributions of thousands of other people""" start="00:01:50.507" video="mainVideo-rms" id="subtitle"]]
[[!template text="""who came after me.""" start="00:01:54.340" video="mainVideo-rms" id="subtitle"]]
[[!template text="""What would I like?""" start="00:01:57.067" video="mainVideo-rms" id="subtitle"]]
[[!template text="""What would other people like?""" start="00:01:58.880" video="mainVideo-rms" id="subtitle"]]
[[!template text="""Lots of people come to Emacs familiar with VS Code,""" start="00:02:01.533" video="mainVideo-rms" id="subtitle"]]
[[!template text="""and they say, &quot;Please make Emacs more like VS Code.""" start="00:02:06.480" video="mainVideo-rms" id="subtitle"]]
[[!template text="""Change everything that you did in the 1980s and 90s""" start="00:02:10.520" video="mainVideo-rms" id="subtitle"]]
[[!template text="""to be like that other thing.&quot;""" start="00:02:15.840" video="mainVideo-rms" id="subtitle"]]
[[!template text="""That wouldn't be feasible even if we wanted to.""" start="00:02:18.320" video="mainVideo-rms" id="subtitle"]]
[[!template text="""Our goal is not to be... not resembling VS Code.""" start="00:02:24.200" video="mainVideo-rms" id="subtitle"]]
[[!template text="""Any resemblance is coincidental.""" start="00:02:30.440" video="mainVideo-rms" id="subtitle"]]
[[!template new="1" text="""But in particular,""" start="00:02:33.640" video="mainVideo-rms" id="subtitle"]]
[[!template text="""we do not want to have extension languages other than Lisp.""" start="00:02:38.040" video="mainVideo-rms" id="subtitle"]]
[[!template text="""Emacs Lisp is the variant of Lisp""" start="00:02:43.874" video="mainVideo-rms" id="subtitle"]]
[[!template text="""that we've always supported,""" start="00:02:47.574" video="mainVideo-rms" id="subtitle"]]
[[!template text="""which has evolved along with Emacs.""" start="00:02:49.574" video="mainVideo-rms" id="subtitle"]]
[[!template text="""We can conceivably have Scheme as well,""" start="00:02:52.960" video="mainVideo-rms" id="subtitle"]]
[[!template text="""if we can sufficiently solve the problems,""" start="00:02:57.400" video="mainVideo-rms" id="subtitle"]]
[[!template text="""the technical problems of making Scheme""" start="00:03:01.140" video="mainVideo-rms" id="subtitle"]]
[[!template text="""and Emacs Lisp interoperate.""" start="00:03:03.760" video="mainVideo-rms" id="subtitle"]]
[[!template text="""We did some design work, I think that was with Tom Lord,""" start="00:03:06.480" video="mainVideo-rms" id="subtitle"]]
[[!template text="""whom the community will greatly miss.""" start="00:03:11.600" video="mainVideo-rms" id="subtitle"]]
[[!template text="""In the 1990s, there are challenges that remain;""" start="00:03:15.880" video="mainVideo-rms" id="subtitle"]]
[[!template text="""maybe it can be done.""" start="00:03:19.340" video="mainVideo-rms" id="subtitle"]]
[[!template text="""But a non-Lispy language would be a mistake.""" start="00:03:21.360" video="mainVideo-rms" id="subtitle"]]
[[!template text="""It would divert our development focus into areas""" start="00:03:27.960" video="mainVideo-rms" id="subtitle"]]
[[!template text="""that we don't need, languages that are less powerful,""" start="00:03:33.000" video="mainVideo-rms" id="subtitle"]]
[[!template text="""less beautiful, and less desirable for the purpose.""" start="00:03:37.480" video="mainVideo-rms" id="subtitle"]]
[[!template new="1" text="""However, the language that we above all shouldn't support""" start="00:03:46.280" video="mainVideo-rms" id="subtitle"]]
[[!template text="""is JavaScript. That's not because of the language itself.""" start="00:03:52.120" video="mainVideo-rms" id="subtitle"]]
[[!template text="""I don't know the JavaScript language,""" start="00:03:57.333" video="mainVideo-rms" id="subtitle"]]
[[!template text="""I've heard people say it's rather clumsy""" start="00:04:00.480" video="mainVideo-rms" id="subtitle"]]
[[!template text="""and not well designed, but I don't know this.""" start="00:04:04.200" video="mainVideo-rms" id="subtitle"]]
[[!template text="""In any case, it's not what my views are based on.""" start="00:04:07.520" video="mainVideo-rms" id="subtitle"]]
[[!template text="""There's something much worse about JavaScript,""" start="00:04:12.400" video="mainVideo-rms" id="subtitle"]]
[[!template text="""which is not the language itself, but how people use it.""" start="00:04:14.840" video="mainVideo-rms" id="subtitle"]]
[[!template text="""Namely, it's been adopted as a way for a network server""" start="00:04:18.800" video="mainVideo-rms" id="subtitle"]]
[[!template text="""to send a program to your machine""" start="00:04:23.640" video="mainVideo-rms" id="subtitle"]]
[[!template text="""without your even noticing, so that this program,""" start="00:04:26.120" video="mainVideo-rms" id="subtitle"]]
[[!template text="""written by you don't know who, will run on your computer""" start="00:04:30.120" video="mainVideo-rms" id="subtitle"]]
[[!template text="""and do you don't know what.""" start="00:04:35.107" video="mainVideo-rms" id="subtitle"]]
[[!template text="""And you're supposed to just trust""" start="00:04:37.200" video="mainVideo-rms" id="subtitle"]]
[[!template text="""all and sundry developers of software""" start="00:04:39.774" video="mainVideo-rms" id="subtitle"]]
[[!template text="""for the sites you visit,""" start="00:04:43.640" video="mainVideo-rms" id="subtitle"]]
[[!template text="""which very commonly do malicious things, often unknown""" start="00:04:45.840" video="mainVideo-rms" id="subtitle"]]
[[!template text="""to the people who are running the server itself.""" start="00:04:51.320" video="mainVideo-rms" id="subtitle"]]
[[!template text="""They paid someone else to design a website""" start="00:04:55.680" video="mainVideo-rms" id="subtitle"]]
[[!template text="""and they probably said, oh,""" start="00:04:59.320" video="mainVideo-rms" id="subtitle"]]
[[!template text="""make it fashionable and attractive.""" start="00:05:01.407" video="mainVideo-rms" id="subtitle"]]
[[!template text="""And they didn't insist, don't snoop on the visitors,""" start="00:05:04.440" video="mainVideo-rms" id="subtitle"]]
[[!template text="""even if they understood what the issue was.""" start="00:05:09.760" video="mainVideo-rms" id="subtitle"]]
[[!template text="""So these sites snoop. It's a serious problem.""" start="00:05:12.840" video="mainVideo-rms" id="subtitle"]]
[[!template text="""The problem comes not from the language JavaScript,""" start="00:05:20.480" video="mainVideo-rms" id="subtitle"]]
[[!template text="""but from the fact that browsers, by default,""" start="00:05:24.080" video="mainVideo-rms" id="subtitle"]]
[[!template text="""will pull in JavaScript code that gets sent to them""" start="00:05:28.680" video="mainVideo-rms" id="subtitle"]]
[[!template text="""and run it to do anything at all.""" start="00:05:32.440" video="mainVideo-rms" id="subtitle"]]
[[!template text="""Emacs is supposed to defend your freedom.""" start="00:05:35.933" video="mainVideo-rms" id="subtitle"]]
[[!template text="""It's supposed to help you to defend your freedom,""" start="00:05:39.320" video="mainVideo-rms" id="subtitle"]]
[[!template text="""and lead you to defend your freedom,""" start="00:05:42.520" video="mainVideo-rms" id="subtitle"]]
[[!template text="""which means it shouldn't lead you""" start="00:05:45.640" video="mainVideo-rms" id="subtitle"]]
[[!template text="""to throw your freedom away as soon as you visit a site""" start="00:05:47.200" video="mainVideo-rms" id="subtitle"]]
[[!template text="""that tries to send you a non-free program""" start="00:05:50.960" video="mainVideo-rms" id="subtitle"]]
[[!template text="""to run straight off of that other machine.""" start="00:05:53.920" video="mainVideo-rms" id="subtitle"]]
[[!template text="""So it's important not to lead users""" start="00:05:58.280" video="mainVideo-rms" id="subtitle"]]
[[!template text="""to do computing this way.""" start="00:06:04.080" video="mainVideo-rms" id="subtitle"]]
[[!template text="""So what are some good things""" start="00:06:06.520" video="mainVideo-rms" id="subtitle"]]
[[!template text="""that we would want instead of this?""" start="00:06:10.800" video="mainVideo-rms" id="subtitle"]]
[[!template new="1" text="""One thing we want""" start="00:06:14.640" video="mainVideo-rms" id="subtitle"]]
[[!template text="""is to update the &quot;Introduction to Emacs Lisp Programming&quot;""" start="00:06:19.874" video="mainVideo-rms" id="subtitle"]]
[[!template text="""by the late Bob Chassell.""" start="00:06:26.574" video="mainVideo-rms" id="subtitle"]]
[[!template text="""It's a book that makes it easy for even non-programmers""" start="00:06:29.480" video="mainVideo-rms" id="subtitle"]]
[[!template text="""to learn to write simple programs in Emacs Lisp.""" start="00:06:34.720" video="mainVideo-rms" id="subtitle"]]
[[!template text="""And from there, they can go on to do better.""" start="00:06:38.000" video="mainVideo-rms" id="subtitle"]]
[[!template text="""We made a pretty big change in Emacs Lisp""" start="00:06:41.200" video="mainVideo-rms" id="subtitle"]]
[[!template text="""a few years ago, implementing lexical scoping by default.""" start="00:06:44.800" video="mainVideo-rms" id="subtitle"]]
[[!template text="""Originally, Emacs Lisp used to be entirely dynamic scoping,""" start="00:06:49.480" video="mainVideo-rms" id="subtitle"]]
[[!template text="""like some of the earliest Lisp interpreters.""" start="00:06:57.360" video="mainVideo-rms" id="subtitle"]]
[[!template text="""This is a change that should have a careful job""" start="00:07:01.960" video="mainVideo-rms" id="subtitle"]]
[[!template text="""of updating for the introduction.""" start="00:07:06.520" video="mainVideo-rms" id="subtitle"]]
[[!template text="""I'm sure we've made it clear in the reference manual,""" start="00:07:10.560" video="mainVideo-rms" id="subtitle"]]
[[!template text="""but that's not what beginners read first.""" start="00:07:14.600" video="mainVideo-rms" id="subtitle"]]
[[!template text="""We need something to teach them in lexical scoping.""" start="00:07:18.400" video="mainVideo-rms" id="subtitle"]]
[[!template new="1" text="""Another thing we could use is to make it easier""" start="00:07:23.407" video="mainVideo-rms" id="subtitle"]]
[[!template text="""to understand the facilities that we have.""" start="00:07:30.440" video="mainVideo-rms" id="subtitle"]]
[[!template text="""For instance, I think every package""" start="00:07:33.880" video="mainVideo-rms" id="subtitle"]]
[[!template text="""that you might load into your Emacs and run""" start="00:07:38.560" video="mainVideo-rms" id="subtitle"]]
[[!template text="""should have a name that helps you remember what job it does.""" start="00:07:42.200" video="mainVideo-rms" id="subtitle"]]
[[!template text="""It doesn't have to be super long to tell you""" start="00:07:47.680" video="mainVideo-rms" id="subtitle"]]
[[!template text="""what job that package does.""" start="00:07:51.374" video="mainVideo-rms" id="subtitle"]]
[[!template text="""You can read the description to learn that.""" start="00:07:53.607" video="mainVideo-rms" id="subtitle"]]
[[!template text="""But once you've read the description,""" start="00:07:56.874" video="mainVideo-rms" id="subtitle"]]
[[!template text="""it should be memorable. When you see that name again,""" start="00:07:59.600" video="mainVideo-rms" id="subtitle"]]
[[!template text="""you should realize, oh, that's the package I could use""" start="00:08:03.074" video="mainVideo-rms" id="subtitle"]]
[[!template text="""to do &quot;less&quot; and so. We've had a tendency""" start="00:08:06.607" video="mainVideo-rms" id="subtitle"]]
[[!template text="""to give packages names for the sake of pure wordplay""" start="00:08:11.880" video="mainVideo-rms" id="subtitle"]]
[[!template text="""or lack of obvious meaning,""" start="00:08:17.940" video="mainVideo-rms" id="subtitle"]]
[[!template text="""and I think we should add on, to those packages,""" start="00:08:23.574" video="mainVideo-rms" id="subtitle"]]
[[!template text="""names that people will remember.""" start="00:08:28.189" video="mainVideo-rms" id="subtitle"]]
[[!template new="1" text="""Also, there are ways we can simplify the command interface""" start="00:08:31.807" video="mainVideo-rms" id="subtitle"]]
[[!template text="""of Emacs. For instance, there are many different parameters""" start="00:08:39.200" video="mainVideo-rms" id="subtitle"]]
[[!template text="""users can specify that can have several values,""" start="00:08:43.760" video="mainVideo-rms" id="subtitle"]]
[[!template text="""and sometimes you do various kinds of editing""" start="00:08:48.000" video="mainVideo-rms" id="subtitle"]]
[[!template text="""in one session. That's normal in Emacs,""" start="00:08:51.807" video="mainVideo-rms" id="subtitle"]]
[[!template text="""and you might want different parameter settings""" start="00:08:54.440" video="mainVideo-rms" id="subtitle"]]
[[!template text="""for different kinds of editing.""" start="00:08:57.840" video="mainVideo-rms" id="subtitle"]]
[[!template text="""So you specify parameter value A, do some editing,""" start="00:09:00.407" video="mainVideo-rms" id="subtitle"]]
[[!template text="""you specify parameter value B, and do some editing,""" start="00:09:06.200" video="mainVideo-rms" id="subtitle"]]
[[!template text="""and you'd switch back and forth, so you want""" start="00:09:10.240" video="mainVideo-rms" id="subtitle"]]
[[!template text="""to switch back and forth between these parameters.""" start="00:09:13.720" video="mainVideo-rms" id="subtitle"]]
[[!template text="""I think we should aim ...""" start="00:09:17.440" video="mainVideo-rms" id="subtitle"]]
[[!template text="""People have added various commands to switch""" start="00:09:22.707" video="mainVideo-rms" id="subtitle"]]
[[!template text="""between the last two or n values of this parameter,""" start="00:09:26.740" video="mainVideo-rms" id="subtitle"]]
[[!template text="""and another command to switch""" start="00:09:30.500" video="mainVideo-rms" id="subtitle"]]
[[!template text="""between the last two or n values of this [other] parameter,""" start="00:09:32.774" video="mainVideo-rms" id="subtitle"]]
[[!template text="""and then that parameter, you know, and that parameter.""" start="00:09:36.840" video="mainVideo-rms" id="subtitle"]]
[[!template text="""I think we should be able to have""" start="00:09:41.360" video="mainVideo-rms" id="subtitle"]]
[[!template text="""a switch between the last n values command""" start="00:09:44.767" video="mainVideo-rms" id="subtitle"]]
[[!template text="""that works on various different parameters,""" start="00:09:49.120" video="mainVideo-rms" id="subtitle"]]
[[!template text="""and thus makes it easy to remember""" start="00:09:54.320" video="mainVideo-rms" id="subtitle"]]
[[!template text="""that there is this facility.""" start="00:09:57.040" video="mainVideo-rms" id="subtitle"]]
[[!template text="""Because right now the commands to do that are all ad-hoc,""" start="00:09:59.340" video="mainVideo-rms" id="subtitle"]]
[[!template text="""and if you don't use a toggling among the last n values""" start="00:10:03.874" video="mainVideo-rms" id="subtitle"]]
[[!template text="""of a given parameter, you won't know how to do it.""" start="00:10:08.640" video="mainVideo-rms" id="subtitle"]]
[[!template text="""It won't be obvious that there is a way,""" start="00:10:11.840" video="mainVideo-rms" id="subtitle"]]
[[!template text="""so you'd have to go to a suitable manual""" start="00:10:15.367" video="mainVideo-rms" id="subtitle"]]
[[!template text="""and study for a while to think of that.""" start="00:10:17.767" video="mainVideo-rms" id="subtitle"]]
[[!template text="""We could make this easily discoverable.""" start="00:10:20.100" video="mainVideo-rms" id="subtitle"]]
[[!template new="1" text="""There is another kind of modularity that's important,""" start="00:10:23.620" video="mainVideo-rms" id="subtitle"]]
[[!template text="""and that is modularity at the level of maintenance.""" start="00:10:30.140" video="mainVideo-rms" id="subtitle"]]
[[!template text="""This is something all programmers know about, of course,""" start="00:10:34.100" video="mainVideo-rms" id="subtitle"]]
[[!template text="""but in Emacs, various parts interact with other parts,""" start="00:10:38.307" video="mainVideo-rms" id="subtitle"]]
[[!template text="""and we've tried to make them modular in design""" start="00:10:43.300" video="mainVideo-rms" id="subtitle"]]
[[!template text="""by using lots of hooks,""" start="00:10:47.980" video="mainVideo-rms" id="subtitle"]]
[[!template text="""but we haven't gone as far as we could.""" start="00:10:50.380" video="mainVideo-rms" id="subtitle"]]
[[!template text="""With some effort, we could find calls""" start="00:10:54.380" video="mainVideo-rms" id="subtitle"]]
[[!template text="""from over here to over there""" start="00:10:58.060" video="mainVideo-rms" id="subtitle"]]
[[!template text="""that could be replaced by use of hooks,""" start="00:11:00.220" video="mainVideo-rms" id="subtitle"]]
[[!template text="""so that we could reduce the extent""" start="00:11:03.140" video="mainVideo-rms" id="subtitle"]]
[[!template text="""to which you need to know about one part of Emacs""" start="00:11:05.940" video="mainVideo-rms" id="subtitle"]]
[[!template text="""to maintain another part of Emacs,""" start="00:11:09.974" video="mainVideo-rms" id="subtitle"]]
[[!template text="""and I think that as we keep adding more facilities to Emacs,""" start="00:11:12.707" video="mainVideo-rms" id="subtitle"]]
[[!template text="""this kind of modularity will be an investment that pays off.""" start="00:11:17.580" video="mainVideo-rms" id="subtitle"]]
[[!template new="1" text="""There’s one big area of features""" start="00:11:22.220" video="mainVideo-rms" id="subtitle"]]
[[!template text="""that I would like to see in Emacs,""" start="00:11:27.240" video="mainVideo-rms" id="subtitle"]]
[[!template text="""and that's the ability to edit""" start="00:11:30.800" video="mainVideo-rms" id="subtitle"]]
[[!template text="""formatted documents in WYSIWYG, to be able to edit""" start="00:11:33.180" video="mainVideo-rms" id="subtitle"]]
[[!template text="""a letter or a scientific mathematical paper with formulas""" start="00:11:40.340" video="mainVideo-rms" id="subtitle"]]
[[!template text="""or a nicely laid out manual,""" start="00:11:47.940" video="mainVideo-rms" id="subtitle"]]
[[!template text="""looking at what it's really going to look like.""" start="00:11:52.900" video="mainVideo-rms" id="subtitle"]]
[[!template text="""Now we have free software to do this.""" start="00:11:56.660" video="mainVideo-rms" id="subtitle"]]
[[!template text="""For instance, I use LibreOffice some of the time.""" start="00:12:00.460" video="mainVideo-rms" id="subtitle"]]
[[!template text="""Sometimes it's faster than writing something""" start="00:12:04.660" video="mainVideo-rms" id="subtitle"]]
[[!template text="""to be formatted with a text formatter""" start="00:12:08.100" video="mainVideo-rms" id="subtitle"]]
[[!template text="""and then formatting it. But when I use LibreOffice,""" start="00:12:11.860" video="mainVideo-rms" id="subtitle"]]
[[!template text="""I always miss the commands and facilities,""" start="00:12:16.180" video="mainVideo-rms" id="subtitle"]]
[[!template text="""the editing facilities of Emacs.""" start="00:12:19.220" video="mainVideo-rms" id="subtitle"]]
[[!template text="""I'd like to have them both together, something with""" start="00:12:22.674" video="mainVideo-rms" id="subtitle"]]
[[!template text="""the text formatting capabilities of LibreOffice""" start="00:12:26.500" video="mainVideo-rms" id="subtitle"]]
[[!template text="""or even better of TeX, but the editing commands""" start="00:12:30.340" video="mainVideo-rms" id="subtitle"]]
[[!template text="""and facilities of Emacs. This would be a big job,""" start="00:12:36.060" video="mainVideo-rms" id="subtitle"]]
[[!template text="""but it can be made up of a lot of medium-sized jobs.""" start="00:12:40.300" video="mainVideo-rms" id="subtitle"]]
[[!template text="""If people start working on those medium-sized jobs,""" start="00:12:45.980" video="mainVideo-rms" id="subtitle"]]
[[!template text="""then in a number of years""" start="00:12:50.020" video="mainVideo-rms" id="subtitle"]]
[[!template text="""we'll have something absolutely amazing.""" start="00:12:52.060" video="mainVideo-rms" id="subtitle"]]
[[!template new="1" text="""But one thing I think we really shouldn't have""" start="00:12:55.460" video="mainVideo-rms" id="subtitle"]]
[[!template text="""is the equivalent of a modern web browser.""" start="00:13:01.140" video="mainVideo-rms" id="subtitle"]]
[[!template text="""The World Wide Web started out in the 1990s""" start="00:13:06.500" video="mainVideo-rms" id="subtitle"]]
[[!template text="""in a much simpler form,""" start="00:13:10.940" video="mainVideo-rms" id="subtitle"]]
[[!template text="""where a web page described its contents,""" start="00:13:13.874" video="mainVideo-rms" id="subtitle"]]
[[!template text="""and the web browser laid them out,""" start="00:13:17.820" video="mainVideo-rms" id="subtitle"]]
[[!template text="""and the user could parameterize""" start="00:13:21.180" video="mainVideo-rms" id="subtitle"]]
[[!template text="""how to lay out various kinds of situations.""" start="00:13:23.807" video="mainVideo-rms" id="subtitle"]]
[[!template text="""This was not only convenient for users""" start="00:13:27.140" video="mainVideo-rms" id="subtitle"]]
[[!template text="""who wanted to control things and understand things,""" start="00:13:31.807" video="mainVideo-rms" id="subtitle"]]
[[!template text="""it was also freedom-respecting""" start="00:13:35.974" video="mainVideo-rms" id="subtitle"]]
[[!template text="""because the layout was done by your browser.""" start="00:13:39.740" video="mainVideo-rms" id="subtitle"]]
[[!template text="""If you had a free browser, you were in control,""" start="00:13:43.020" video="mainVideo-rms" id="subtitle"]]
[[!template text="""even though the browser was complicated already.""" start="00:13:48.100" video="mainVideo-rms" id="subtitle"]]
[[!template text="""But starting around two decades ago,""" start="00:13:51.620" video="mainVideo-rms" id="subtitle"]]
[[!template text="""there was an explosion in the complexity of browsers""" start="00:13:54.807" video="mainVideo-rms" id="subtitle"]]
[[!template text="""as companies wanted to have more and more control""" start="00:13:58.820" video="mainVideo-rms" id="subtitle"]]
[[!template text="""over exactly what would appear on a user's screen.""" start="00:14:02.780" video="mainVideo-rms" id="subtitle"]]
[[!template text="""So they invented lots of features to control that,""" start="00:14:07.700" video="mainVideo-rms" id="subtitle"]]
[[!template text="""features where the user couldn't really customize""" start="00:14:12.474" video="mainVideo-rms" id="subtitle"]]
[[!template text="""how something would actually appear""" start="00:14:16.007" video="mainVideo-rms" id="subtitle"]]
[[!template text="""because the whole point was that""" start="00:14:18.407" video="mainVideo-rms" id="subtitle"]]
[[!template text="""the company could control that.""" start="00:14:21.307" video="mainVideo-rms" id="subtitle"]]
[[!template text="""And JavaScript was sort of the ultimate level""" start="00:14:23.807" video="mainVideo-rms" id="subtitle"]]
[[!template text="""of &quot;the company controls everything.&quot;""" start="00:14:27.020" video="mainVideo-rms" id="subtitle"]]
[[!template text="""Because of this, going beyond the simple level""" start="00:14:32.107" video="mainVideo-rms" id="subtitle"]]
[[!template text="""of web page formatting features in Emacs""" start="00:14:38.500" video="mainVideo-rms" id="subtitle"]]
[[!template text="""is basically heading down a path that leads to subjugation.""" start="00:14:43.540" video="mainVideo-rms" id="subtitle"]]
[[!template text="""It's a path that we need to stay away from.""" start="00:14:50.940" video="mainVideo-rms" id="subtitle"]]
[[!template text="""It's a path to an unjust world of computing""" start="00:14:54.740" video="mainVideo-rms" id="subtitle"]]
[[!template text="""that you can easily see around you.""" start="00:15:00.407" video="mainVideo-rms" id="subtitle"]]
[[!template text="""Web browsers nowadays are designed to display ads""" start="00:15:03.420" video="mainVideo-rms" id="subtitle"]]
[[!template text="""that you may not want to see.""" start="00:15:08.700" video="mainVideo-rms" id="subtitle"]]
[[!template text="""They're designed for DRM.""" start="00:15:11.667" video="mainVideo-rms" id="subtitle"]]
[[!template text="""They're designed for companies to snoop on you""" start="00:15:17.900" video="mainVideo-rms" id="subtitle"]]
[[!template text="""in unobvious ways. And all of that""" start="00:15:22.420" video="mainVideo-rms" id="subtitle"]]
[[!template text="""we should protect ourselves from,""" start="00:15:26.300" video="mainVideo-rms" id="subtitle"]]
[[!template text="""protect our users from.""" start="00:15:28.980" video="mainVideo-rms" id="subtitle"]]
[[!template new="1" text="""So I hope that some of you will be enthusiastic""" start="00:15:31.300" video="mainVideo-rms" id="subtitle"]]
[[!template text="""about some of these changes,""" start="00:15:39.980" video="mainVideo-rms" id="subtitle"]]
[[!template text="""especially towards editing formatted text.""" start="00:15:42.060" video="mainVideo-rms" id="subtitle"]]
[[!template text="""If you want to get involved, we have""" start="00:15:46.940" video="mainVideo-rms" id="subtitle"]]
[[!template text="""a development discussion list called emacs-devel@gnu.org.""" start="00:15:51.980" video="mainVideo-rms" id="subtitle"]]
[[!template text="""You can join that. You can also,""" start="00:15:57.820" video="mainVideo-rms" id="subtitle"]]
[[!template text="""if you get interested in working on a package""" start="00:16:02.380" video="mainVideo-rms" id="subtitle"]]
[[!template text="""and you're not an experienced Emacs Lisp developer,""" start="00:16:05.740" video="mainVideo-rms" id="subtitle"]]
[[!template text="""it's a very good idea to look for an experienced developer""" start="00:16:09.500" video="mainVideo-rms" id="subtitle"]]
[[!template text="""to talk with.""" start="00:16:13.740" video="mainVideo-rms" id="subtitle"]]
[[!template text="""Make sure you can write programs in Emacs Lisp first.""" start="00:16:14.980" video="mainVideo-rms" id="subtitle"]]
[[!template text="""It's not useful to take up the expert’s time learning that.""" start="00:16:19.220" video="mainVideo-rms" id="subtitle"]]
[[!template text="""You can still learn it from the introduction.""" start="00:16:24.260" video="mainVideo-rms" id="subtitle"]]
[[!template text="""But after that, when it's a matter of how to design""" start="00:16:27.407" video="mainVideo-rms" id="subtitle"]]
[[!template text="""your favorite package, do have a discussion with developers.""" start="00:16:31.660" video="mainVideo-rms" id="subtitle"]]
[[!template text="""They'll give you design ideas""" start="00:16:36.180" video="mainVideo-rms" id="subtitle"]]
[[!template text="""that will help you make a package that we put into Emacs.""" start="00:16:39.060" video="mainVideo-rms" id="subtitle"]]
[[!template text="""Now it's time for questions.""" start="00:16:43.180" video="mainVideo-rms" id="subtitle"]]



Captioner: anush

Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202022%20rms%3A%20What%20I%27d%20like%20to%20see%20in%20Emacs)


<!-- End of emacsconf-publish-after-page -->