summaryrefslogtreecommitdiffstats
path: root/2022/captions/emacsconf-2022-rms--what-id-like-to-see-in-emacs--answers.vtt
diff options
context:
space:
mode:
Diffstat (limited to '2022/captions/emacsconf-2022-rms--what-id-like-to-see-in-emacs--answers.vtt')
-rw-r--r--2022/captions/emacsconf-2022-rms--what-id-like-to-see-in-emacs--answers.vtt2217
1 files changed, 2217 insertions, 0 deletions
diff --git a/2022/captions/emacsconf-2022-rms--what-id-like-to-see-in-emacs--answers.vtt b/2022/captions/emacsconf-2022-rms--what-id-like-to-see-in-emacs--answers.vtt
new file mode 100644
index 00000000..eee7b8cc
--- /dev/null
+++ b/2022/captions/emacsconf-2022-rms--what-id-like-to-see-in-emacs--answers.vtt
@@ -0,0 +1,2217 @@
+WEBVTT
+
+00:00:00.000 --> 00:00:02.492
+[Amin]: Yep, thanks RMS for the great talk.
+
+00:00:02.493 --> 00:00:04.759
+Now it's time for questions and answers.
+
+00:00:04.760 --> 00:00:13.519
+I will paste the questions here and RMS will choose which ones to answer.
+
+00:00:13.520 --> 00:00:17.501
+[Richard]: Please don't post a lot of questions in the Mumble chat
+
+00:00:17.502 --> 00:00:19.239
+and fill up the buffer.
+
+00:00:19.240 --> 00:00:25.359
+There's a limit to what I can see on the screen, so make sure it's visible.
+
+00:00:25.360 --> 00:00:27.159
+Don't get too far ahead.
+
+00:00:27.160 --> 00:00:42.279
+[Amin]: Sure, I will only paste one or two questions at a time.
+
+00:00:42.280 --> 00:00:43.639
+I think it would also be helpful
+
+00:00:43.640 --> 00:00:47.359
+if you read out the questions as you answer them, Richard.
+
+00:00:47.360 --> 00:00:56.799
+[Richard]: Okay.
+
+NOTE Pragmatically, how are people that buy into these ideals, and especially those that build the software, meant to live/thrive, short of renouncing many of the luxuries of modern life, as many have been struggling to reconcile both it appears. Wouldn't it be smarter and more productive longer-term to solve that problem too?
+
+00:00:56.800 --> 00:01:01.079
+Well, this question is a little silly.
+
+00:01:01.080 --> 00:01:05.159
+It's based on sort of all or none thinking.
+
+00:01:05.160 --> 00:01:09.079
+Pragmatically, how are people that buy into these ideals?
+
+00:01:09.080 --> 00:01:11.199
+I find that term offensive.
+
+00:01:11.200 --> 00:01:16.479
+And especially those that build the software meant to live/thrive,
+
+00:01:16.480 --> 00:01:20.839
+short of renouncing many of the luxuries of modern life.
+
+00:01:20.840 --> 00:01:24.239
+It's repackaged standard.
+
+00:01:24.240 --> 00:01:30.319
+You'll die if you don't write proprietary software.
+
+00:01:30.320 --> 00:01:33.839
+But most people in the world don't write proprietary software
+
+00:01:33.840 --> 00:01:36.079
+and that doesn't kill them.
+
+00:01:36.080 --> 00:01:41.799
+Whatever you do to make money, if you're reasonably well paid at it,
+
+00:01:41.800 --> 00:01:44.119
+which if you're working in software, I hope you are,
+
+00:01:44.120 --> 00:01:49.479
+that enables you to have a lot of time to do something else,
+
+00:01:49.480 --> 00:01:53.199
+like write some free software, even supposing you find no way
+
+00:01:53.200 --> 00:02:01.639
+to make any money from the free software world, but that's just the worst case.
+
+00:02:01.640 --> 00:02:08.079
+And for a lot of people, the life they find isn't the worst case.
+
+00:02:08.080 --> 00:02:13.559
+So I think it's basically, the question is an exaggeration.
+
+00:02:13.560 --> 00:02:16.399
+We don't need to worry about it.
+
+00:02:16.400 --> 00:02:22.479
+There are many businesses which do hire people to write free software.
+
+00:02:22.480 --> 00:02:26.079
+So write whatever free program for the business
+
+00:02:26.080 --> 00:02:28.079
+that the business wants you to write.
+
+00:02:28.080 --> 00:02:32.759
+And make sure you get permission to write your own software
+
+00:02:32.760 --> 00:02:34.639
+and release it as free software
+
+00:02:34.640 --> 00:02:38.239
+and contribute it to free software projects,
+
+00:02:38.240 --> 00:02:46.759
+and you'll be able to contribute.
+
+00:02:46.760 --> 00:02:48.439
+How can I help?
+
+00:02:48.440 --> 00:02:52.519
+In addition, one very big part of the software business
+
+00:02:52.520 --> 00:02:56.359
+is custom software development for a client.
+
+00:02:56.360 --> 00:02:59.919
+One client at a time, basically.
+
+00:02:59.920 --> 00:03:05.519
+And if that business is not treating its clients as suckers,
+
+00:03:05.520 --> 00:03:10.719
+it will release the code to them under a free software license.
+
+00:03:10.720 --> 00:03:14.039
+Okay, there you are. You're getting paid to write free software.
+
+00:03:14.040 --> 00:03:24.599
+Perfectly ethical.
+
+NOTE I have been admiring your work for free software for many years now. I am a bit concerned about what will happen to the GNU project when you retire (not soon, I hope!!). Have you planned how to manage the GNU project in the long run?
+
+00:03:24.600 --> 00:03:28.719
+I have been admiring your work for free software for many years now.
+
+00:03:28.720 --> 00:03:33.639
+I'm a bit concerned about what will happen to the GNU project when you retire.
+
+00:03:33.640 --> 00:03:37.359
+Have you planned how to manage the GNU project in the long run?
+
+00:03:37.360 --> 00:03:45.359
+I haven't found a way. I had an idea for what to do.
+
+00:03:45.360 --> 00:03:54.639
+I hoped to train some people who were activists and committed supporters
+
+00:03:54.640 --> 00:04:01.159
+to start making some decisions without me and I would give them feedback.
+
+00:04:01.160 --> 00:04:10.199
+But I didn't succeed in getting them to discuss issues and propose decisions.
+
+00:04:10.200 --> 00:04:11.719
+Well, I guess I'll have to try again. Over.
+
+00:04:11.720 --> 00:04:28.679
+Just a second. I have to go and open the door.
+
+NOTE In response to your aversion to JavaScript support in Emacs: In the same way that to revolt against the nonfree spirit in software development one has to develop software, and that to fight nonfree compilers one has to write a free compiler - can you fairly consider rejection of JavaScript as a tool conducive to improving the state of free JavaScript? A server can send back any MIME type to execute on your machine, JS was just the most convenient.
+
+00:04:52.520 --> 00:04:55.479
+In response to your aversion to JavaScript support in Emacs
+
+00:04:55.480 --> 00:04:58.039
+in the same way that to revolt against
+
+00:04:58.040 --> 00:05:00.479
+the non-free spirit in software development,
+
+00:05:00.480 --> 00:05:04.439
+one has to develop software and that to fight non-free compilers,
+
+00:05:04.440 --> 00:05:05.999
+one has to write a free compiler.
+
+00:05:06.000 --> 00:05:11.199
+Can you fairly consider rejection of JavaScript as a tool conducive
+
+00:05:11.200 --> 00:05:14.159
+to improving the state of free JavaScript?
+
+00:05:14.160 --> 00:05:16.759
+There's a fundamental confusion here.
+
+00:05:16.760 --> 00:05:23.439
+The problem with JavaScript is not comparable to the problem of
+
+00:05:23.440 --> 00:05:31.519
+non-free C compilers or C++ compilers or Java compilers.
+
+00:05:31.520 --> 00:05:36.839
+This is a totally different kind of issue.
+
+00:05:36.840 --> 00:05:40.479
+We have free JavaScript support.
+
+00:05:40.480 --> 00:05:45.839
+Free browsers contain that.
+
+00:05:45.840 --> 00:05:48.519
+That's not the issue.
+
+00:05:48.520 --> 00:05:52.399
+The issue is what about the programs you're going to run?
+
+00:05:52.400 --> 00:05:58.359
+If you're talking about C, well, if you're going to run a C program,
+
+00:05:58.360 --> 00:06:02.799
+it's because at compile at first, it's because you got the source code.
+
+00:06:02.800 --> 00:06:09.039
+Probably it's free software or else it's a private project,
+
+00:06:09.040 --> 00:06:14.919
+internal project, and there's no particular danger in that.
+
+00:06:14.920 --> 00:06:18.399
+If JavaScript were just like that,
+
+00:06:18.400 --> 00:06:21.319
+there'd be no particular danger in JavaScript either.
+
+00:06:21.320 --> 00:06:26.959
+The problem is that hundreds of thousands of websites,
+
+00:06:26.960 --> 00:06:33.199
+or is it millions, are sending JavaScript programs to their visitors
+
+00:06:33.200 --> 00:06:35.919
+who don't even know what JavaScript is,
+
+00:06:35.920 --> 00:06:39.159
+who are not programmers, who have no idea what's going on.
+
+00:06:39.160 --> 00:06:43.439
+So these programs are usually non-free.
+
+00:06:43.440 --> 00:06:48.599
+They end up in the user's browser, they run, many of them are malware.
+
+00:06:48.600 --> 00:06:51.039
+So what's going to happen?
+
+00:06:51.040 --> 00:06:57.679
+Basically, JavaScript is a platform for websites to mistreat users.
+
+00:06:57.680 --> 00:06:59.679
+I know it can be used in other ways,
+
+00:06:59.680 --> 00:07:06.319
+but socially, the existence of those other ways makes little difference.
+
+00:07:06.320 --> 00:07:10.799
+The important thing about JavaScript is the danger that it creates.
+
+NOTE With all the recent additions and optimizations to Emacs Lisp (lexical scoping, native compilation etc.) would you deem Emacs Lisp suitable for general purpose programming outside Emacs (i.e. scripting, running web servers). If not, why?
+
+00:07:27.000 --> 00:07:32.279
+This question is about the idea of using Emacs Lisp
+
+00:07:32.280 --> 00:07:37.919
+for general purpose programming that has nothing to do with Emacs.
+
+00:07:37.920 --> 00:07:44.479
+Well, in theory, I guess, in principle, there's nothing wrong with that.
+
+00:07:44.480 --> 00:07:56.879
+But I think that would be a distraction, and I'd rather we didn't do it.
+
+00:07:56.880 --> 00:08:02.359
+Now, if we had a thousand great programmers ready to do that,
+
+00:08:02.360 --> 00:08:05.999
+and every other thing we could use, sure.
+
+00:08:06.000 --> 00:08:12.639
+But the fact is, we don't. And I'd really rather--
+
+00:08:12.640 --> 00:08:17.479
+There are many platforms that are fine to write programs on.
+
+00:08:17.480 --> 00:08:26.399
+So I'd rather we work on making Emacs better at editing
+
+00:08:26.400 --> 00:08:30.799
+and improving Emacs Lisp in the ways that help that goal,
+
+00:08:30.800 --> 00:08:38.999
+and leave developing general purpose programming platforms to other languages.
+
+NOTE Could you give a few examples of the medium-sized jobs necessary for WYSIWYG-editor support in Emacs?
+
+00:08:44.760 --> 00:08:51.559
+Could I give a list of the specific medium-sized jobs
+
+00:08:51.560 --> 00:08:54.959
+necessary for WYSIWYG editing?
+
+00:08:54.960 --> 00:08:58.999
+Well, I can't really. I don't have a list of one.
+
+00:08:59.000 --> 00:09:04.399
+And I'd really appreciate it if people started putting together such a list.
+
+00:09:04.400 --> 00:09:08.839
+But if you look at every feature that LibreOffice has
+
+00:09:08.840 --> 00:09:14.399
+that Emacs doesn't have, I think you will get a list.
+
+00:09:14.400 --> 00:09:17.679
+Now, maybe some of those are not that important.
+
+00:09:17.680 --> 00:09:23.759
+Maybe only a subset of them would make the list of really important ones.
+
+00:09:23.760 --> 00:09:27.439
+But I think that will give everybody a start.
+
+NOTE Should GNU (or someone else) define a safe-subset of HTML/CSS/JS to make web browsers simpler and safer (e.g. by preventing JS from contacting servers)?
+
+00:09:33.480 --> 00:09:39.159
+Should GNU or someone else define a safe subset of HTML, CSS, JS
+
+00:09:39.160 --> 00:09:41.559
+to make web browsers simpler and safer?
+
+00:09:41.560 --> 00:09:46.519
+You know, that would be an interesting thing to explore.
+
+00:09:46.520 --> 00:09:48.879
+But I don't know whether it can be done.
+
+00:09:48.880 --> 00:09:53.439
+The thing is, one of the dangerous things about JavaScript
+
+00:09:53.440 --> 00:09:55.959
+is browser profiling.
+
+00:09:55.960 --> 00:10:02.559
+Every machine runs a program at a slightly different speed.
+
+00:10:02.560 --> 00:10:09.399
+And the idea of browser profiling is that the website sends a JavaScript program
+
+00:10:09.400 --> 00:10:13.399
+to run on every visitor's browser.
+
+00:10:13.400 --> 00:10:19.999
+And it's actually a collection of benchmarks.
+
+00:10:20.000 --> 00:10:26.079
+And the collection of results is different for each user's computer.
+
+00:10:26.080 --> 00:10:30.919
+And so it enables the website to recognize each one when it comes back
+
+00:10:30.920 --> 00:10:34.799
+even if there's no cookie to help it.
+
+00:10:34.800 --> 00:10:42.719
+So, which features are sufficient to make possible browser profiling?
+
+00:10:42.720 --> 00:10:46.799
+There may be no particular unusual feature that's crucial.
+
+00:10:46.800 --> 00:10:48.639
+But arithmetic might be enough.
+
+NOTE How can we ensure the continuity of an understanding of the more arcane parts of the [Emacs] source code, and increase their evolvability, notably with regards to display, single-threading limitations, etc.?
+
+00:10:57.440 --> 00:11:00.679
+How can we ensure the continuity of an understanding
+
+00:11:00.680 --> 00:11:02.999
+of the more arcane parts of source code
+
+00:11:03.000 --> 00:11:08.279
+and increase their evolvability, notably with regard to display,
+
+00:11:08.280 --> 00:11:14.879
+single-threading limitations, etc.?
+
+00:11:14.880 --> 00:11:19.759
+Well, single-threading is a very specific thing.
+
+00:11:19.760 --> 00:11:26.559
+And the furthest that I've bothered to think about it is
+
+00:11:26.560 --> 00:11:33.799
+how can we enable easily multiple list program threads
+
+00:11:33.800 --> 00:11:35.199
+to be running in parallel.
+
+00:11:35.200 --> 00:11:39.759
+But if you're talking about multi-threading in display,
+
+00:11:39.760 --> 00:11:42.239
+I don't know if that even helps.
+
+00:11:42.240 --> 00:11:48.599
+Of course, my machine doesn't really enable me to run
+
+00:11:48.600 --> 00:11:57.719
+multiple threads in a single program, so it never mattered to me.
+
+00:11:57.720 --> 00:12:06.319
+Basically, now, development of a display code
+
+00:12:06.320 --> 00:12:12.239
+not in regard to threads, well, that's more feasible.
+
+00:12:12.240 --> 00:12:19.279
+But the thing is, generally, any new feature is likely to require
+
+00:12:19.280 --> 00:12:25.799
+changes in the buffer data structure to represent the use of the feature.
+
+00:12:25.800 --> 00:12:29.199
+And I think that's going to be the hard part.
+
+00:12:29.200 --> 00:12:33.479
+So, display won't be the hard part, and it won't be the first part.
+
+00:12:33.480 --> 00:12:37.599
+The first part is figuring out how you're going to represent a buffer
+
+00:12:37.600 --> 00:12:43.519
+with a certain display bell or whistle in it.
+
+00:12:43.520 --> 00:12:47.719
+And once you've worked that out and worked out how it's going to work well
+
+00:12:47.720 --> 00:12:51.359
+in editing, then I think you'll be able to figure out
+
+00:12:51.360 --> 00:12:55.119
+what display has to do to handle it.
+
+00:12:55.120 --> 00:13:01.079
+Of course, you have to decide that data structure,
+
+00:13:01.080 --> 00:13:05.199
+thinking about how display is going to handle it efficiently.
+
+00:13:05.200 --> 00:13:13.119
+If the data structure is bad, it won't be possible to display efficiently.
+
+00:13:13.120 --> 00:13:15.759
+So you need to think about that at that stage.
+
+00:13:15.760 --> 00:13:19.599
+But the actual work is working out the data structure
+
+00:13:19.600 --> 00:13:21.559
+and the editing to handle it.
+
+00:13:21.560 --> 00:13:31.639
+Do you recommend reaching out to schools for volunteers instead of universities
+
+00:13:31.640 --> 00:13:35.639
+because they're more prone to value the objectives of freedom?
+
+00:13:35.640 --> 00:13:38.519
+Well, reaching out for what?
+
+00:13:38.520 --> 00:13:43.719
+Reaching out to try to teach people about freedom?
+
+00:13:43.720 --> 00:13:47.479
+Or reaching out to find more developers?
+
+00:13:47.480 --> 00:13:50.479
+Maybe that person could respond.
+
+NOTE Are there any problems or disadvantages using the GNU AGPL for non-networked software like Emacs packages?
+
+00:13:50.480 --> 00:14:05.199
+Is there any problem or disadvantage in using the GNU AGPL
+
+00:14:05.200 --> 00:14:08.519
+for non-network software like Emacs packages?
+
+00:14:08.520 --> 00:14:10.239
+I don't see one.
+
+00:14:10.240 --> 00:14:17.359
+The reason why I didn't put the AGPL clause into the regular GNU GPL
+
+00:14:17.360 --> 00:14:22.319
+is it seemed a bit radical and I figured the community
+
+00:14:22.320 --> 00:14:27.079
+would be happier if that radical change didn't happen
+
+00:14:27.080 --> 00:14:31.839
+in the GNU general public license itself.
+
+00:14:31.840 --> 00:14:35.839
+I would like the person who asked the previous question
+
+00:14:35.840 --> 00:14:40.719
+to respond to what I said so I can get that answer
+
+00:14:40.720 --> 00:14:43.519
+and finish answering her question.
+
+00:14:43.520 --> 00:14:46.119
+Right.
+
+00:14:46.120 --> 00:14:50.279
+I will let you know if we end up hearing back from you--from per.
+
+NOTE Is there a list of Emacs issues which can be solved by programmers with different levels? For example my level is A, I know basic elisp and C. How can I help?
+
+00:14:50.280 --> 00:15:03.439
+Is there a list of Emacs issues which can be solved by programmers
+
+00:15:03.440 --> 00:15:05.079
+with different levels?
+
+00:15:05.080 --> 00:15:07.319
+I don't know of one.
+
+00:15:07.320 --> 00:15:14.159
+I tend to think that people who know basic programs
+
+00:15:14.160 --> 00:15:20.359
+the basic level of list programming can't contribute yet.
+
+00:15:20.360 --> 00:15:25.919
+They might be able to start debugging problems.
+
+00:15:25.920 --> 00:15:30.359
+It won't be easy but that might be a good first thing to do.
+
+00:15:30.360 --> 00:15:36.359
+Look at bugs that are waiting and see if you can debug one of them
+
+00:15:36.360 --> 00:15:39.519
+and then when you find out what's actually going wrong
+
+00:15:39.520 --> 00:15:44.159
+you can send that to the developers and it will very likely
+
+00:15:44.160 --> 00:15:46.679
+enable them to fix the problem quickly.
+
+00:15:46.680 --> 00:15:52.279
+In the process you'll learn a lot about programs
+
+00:15:52.280 --> 00:15:54.039
+and how programs are actually written
+
+00:15:54.040 --> 00:15:56.959
+and how to understand the code you actually come across.
+
+00:15:56.960 --> 00:16:02.439
+With features like Org mode and enriched mode,
+
+00:16:02.440 --> 00:16:06.759
+it seems that Emacs is getting closer to the goal of WYSIWYG.
+
+00:16:06.760 --> 00:16:10.799
+Well it's got somewhat closer but it has a very long way to go.
+
+00:16:10.800 --> 00:16:15.119
+If you compare it with something like LibreOffice
+
+00:16:15.120 --> 00:16:17.039
+you'll see how long away there is to go.
+
+00:16:17.040 --> 00:16:31.399
+There was an effort called GuileEmacs a while back
+
+00:16:31.400 --> 00:16:36.839
+which was some effort to get Guile to be able to compile and run Emacs Lisp.
+
+NOTE What roadblocks kept some of the other efforts from being used with Emacs?
+
+00:16:36.840 --> 00:16:40.959
+[Amin]: You mentioned there were still some challenges relating to Guile.
+
+00:16:40.960 --> 00:16:45.879
+What roadblocks kept some of the other efforts from being used with Emacs?
+
+00:16:45.880 --> 00:16:50.275
+[Richard]: Well we never finished solving the problem
+
+00:16:50.276 --> 00:16:55.239
+of reconciling Guile data types with Emacs Lisp data types.
+
+00:16:55.240 --> 00:17:02.439
+We got an idea for how to deal with the fact that
+
+00:17:02.440 --> 00:17:08.599
+Scheme handling of nil is different from Lisp handling of nil.
+
+00:17:08.600 --> 00:17:14.679
+The idea was that maybe this would get us close enough it could actually work.
+
+00:17:14.680 --> 00:17:19.359
+But I don't think anyone fully implemented it and made it actually work.
+
+NOTE What do you use emacs for beyond editing?
+
+00:17:36.240 --> 00:17:39.759
+What do you use Emacs for beyond editing?
+
+00:17:39.760 --> 00:17:42.679
+Well I use it for reading and writing email.
+
+00:17:42.680 --> 00:17:44.759
+That's what I mainly do.
+
+00:17:44.760 --> 00:17:47.839
+That's what I do most of the day.
+
+00:17:47.840 --> 00:17:52.559
+I could... I mean should I sing my song?
+
+00:17:52.560 --> 00:17:55.119
+Sure.
+
+NOTE Song about e-mail
+
+00:17:55.120 --> 00:18:02.639
+I've been answering my email all the goddamn day.
+
+00:18:02.640 --> 00:18:10.879
+I've been answering my email 'cause my work gets done that way.
+
+00:18:10.880 --> 00:18:14.879
+Can't you feel the fingers aching?
+
+00:18:14.880 --> 00:18:18.479
+Type until early in the morn.
+
+00:18:18.480 --> 00:18:22.319
+Can't you see the letters blurring?
+
+00:18:22.320 --> 00:18:25.799
+It's just an ad for porn.
+
+00:18:25.800 --> 00:18:30.519
+You can see how out of date that song is 'cause we don't
+
+00:18:30.520 --> 00:18:32.039
+get ads for porn much anymore.
+
+00:18:32.400 --> 00:18:37.279
+[Amin]: Thanks for the performance.
+
+NOTE Emacs is used by a small population relative to the population that could benefit from it. Do you have any thoughts on how to expand the user base more broadly even among software developers?
+
+00:18:49.556 --> 00:18:52.919
+[Richard]: Emacs is used by a small population relative to
+
+00:18:52.920 --> 00:18:54.639
+the population that could benefit from it.
+
+00:18:54.640 --> 00:18:59.519
+Do you have any thoughts on how to expand the user base more broadly,
+
+00:18:59.520 --> 00:19:02.159
+even among software developers?
+
+00:19:02.160 --> 00:19:11.679
+No. Basically, the fact is that on that aspect of things,
+
+00:19:11.680 --> 00:19:20.759
+VS Code has an advantage and the advantage comes from Microsoft.
+
+00:19:20.760 --> 00:19:28.159
+It's pushing that together as part of a large collection
+
+00:19:28.160 --> 00:19:32.839
+of evil proprietary software that subjugates its users.
+
+00:19:32.840 --> 00:19:36.119
+But those users don't understand that issue.
+
+00:19:36.120 --> 00:19:40.639
+So, I mean, I sure wish I could come up with an idea
+
+00:19:40.640 --> 00:19:44.279
+for how to spread awareness of free software
+
+00:19:44.280 --> 00:19:46.599
+and the injustice of non-free software.
+
+00:19:46.600 --> 00:19:52.879
+The best one that I know of is to show them the TEDx talk that you saw.
+
+00:19:52.880 --> 00:19:57.239
+If you show that to people, they'll get at least a basic idea
+
+00:19:57.240 --> 00:19:59.039
+of what's at stake here and why.
+
+NOTE Would a namespace system similar to Common Lisp packages but without :USE work in Emacs? Modern CL implementations have package local nicknames to create package local prefixes.
+
+00:20:05.760 --> 00:20:10.719
+Would a namespace system similar to Common Lisp packages but without :USE
+
+00:20:10.720 --> 00:20:12.199
+work in Emacs?
+
+00:20:12.200 --> 00:20:14.319
+I suppose it would.
+
+00:20:14.320 --> 00:20:18.399
+I mean, basically, the thing that's really broken about
+
+00:20:18.400 --> 00:20:21.599
+Common Lisp packages is use.
+
+00:20:21.600 --> 00:20:29.999
+But it's not crucial, or at least it's not crucial to allow that to exist
+
+00:20:30.000 --> 00:20:32.119
+for arbitrary use.
+
+00:20:32.120 --> 00:20:37.079
+Maybe you want to have something saying where a package can specify
+
+00:20:37.080 --> 00:20:42.759
+whether to use the standard system functions and variables and so on.
+
+00:20:42.760 --> 00:20:49.679
+But there is a drawback to Common Lisp packages,
+
+00:20:49.680 --> 00:21:01.719
+which is that all of the aspects of any given symbol have to go together.
+
+00:21:01.720 --> 00:21:07.319
+So if compile-foo is a variable and it's also a function,
+
+00:21:07.320 --> 00:21:09.999
+and it's also a property name,
+
+00:21:10.000 --> 00:21:15.359
+then if your symbol foo is aliased to compile-foo,
+
+00:21:15.360 --> 00:21:21.839
+that means it's aliased as a function, aliased as a variable,
+
+00:21:21.840 --> 00:21:23.959
+and aliased as a property name.
+
+00:21:23.960 --> 00:21:30.319
+And aliased is anything else that you're going to point to from list structure.
+
+00:21:30.320 --> 00:21:35.799
+So it's not going to work really smoothly.
+
+00:21:35.800 --> 00:21:42.239
+And I tend to think that we're better off with a naming convention.
+
+00:21:42.240 --> 00:21:50.599
+Since the use feature of Common Lisp packages causes trouble,
+
+00:21:50.600 --> 00:21:57.919
+well if you don't use that, why is it better to write compile-foo
+
+00:21:57.920 --> 00:22:03.479
+and have that be foo in the compile package than to write compile-foo?
+
+00:22:03.480 --> 00:22:09.959
+The packages are almost equivalent to name prefixes.
+
+00:22:09.960 --> 00:22:18.799
+And I think that there is an advantage of clarity to writing the name prefixes,
+
+00:22:18.800 --> 00:22:20.639
+even in the same file.
+
+00:22:20.640 --> 00:22:28.759
+That abbreviation, which is meant to just shorten the code and make it simpler,
+
+00:22:28.760 --> 00:22:32.319
+looks simpler, I believe doesn't actually help.
+
+00:22:32.320 --> 00:22:42.439
+And I say that based on many years of writing code that way.
+
+NOTE With Emacs 29 adding more (awesome) features into vanilla Emacs, how should we ensure vanilla Emacs does not get bloated with many similar features? (example: ido/icomplete, vc/magit)
+
+00:22:42.440 --> 00:22:48.719
+With Emacs 29 adding more awesome features into Vanilla Emacs,
+
+00:22:48.720 --> 00:22:52.919
+how should we ensure vanilla Emacs does not get bloated
+
+00:22:52.920 --> 00:22:54.879
+with many similar features?
+
+00:22:54.880 --> 00:23:03.799
+Example, ido/icomplete, vc/magit.
+
+00:23:03.800 --> 00:23:08.759
+Well, to some extent we can't. Users do things differently.
+
+00:23:08.760 --> 00:23:13.679
+I have never used Magit because I don't want to get used to using anything
+
+00:23:13.680 --> 00:23:18.839
+that's not, packages that are not actually part of Emacs.
+
+00:23:18.840 --> 00:23:25.199
+Now, a couple of years ago, the author of Maggot said he was starting to work
+
+00:23:25.200 --> 00:23:30.919
+on getting the copyright assignments to include Magit in Emacs.
+
+00:23:30.920 --> 00:23:36.159
+But I was unable to get any information on how this is progressing.
+
+00:23:36.160 --> 00:23:44.599
+So because I've never actually seen Magit and because Git is actually not
+
+00:23:44.600 --> 00:23:50.559
+the VC system that I use most, I don't know if I'd want to use Magit.
+
+00:23:50.560 --> 00:23:53.199
+I'd probably be happier using VC.
+
+00:23:53.200 --> 00:23:59.959
+I'm told that they have extremely different basic approaches to doing things.
+
+00:23:59.960 --> 00:24:03.319
+They're not just slight variants of each other.
+
+00:24:03.320 --> 00:24:07.039
+Now, having multiple slight variants, you know,
+
+00:24:07.040 --> 00:24:10.919
+things doing similar jobs in little different ways,
+
+00:24:10.920 --> 00:24:13.959
+that could be seen as redundant.
+
+00:24:13.960 --> 00:24:23.759
+But when packages have very different approaches, I think that's not redundant.
+
+00:24:23.760 --> 00:24:26.919
+Clarified version of earlier question.
+
+NOTE Do you recommend reaching out in [high] schools for volunteers instead of universities because they are more prone to value the objectives of freedom?
+
+00:24:26.920 --> 00:24:31.599
+Do you recommend reaching out in schools for volunteers for both advocacy
+
+00:24:31.600 --> 00:24:35.239
+and development instead of universities?
+
+00:24:35.240 --> 00:24:40.839
+I think that you'll find few people in high schools.
+
+00:24:40.840 --> 00:24:46.799
+I think the question when it says schools means high schools.
+
+00:24:46.800 --> 00:24:51.079
+I think you will find only very rarely someone in high school
+
+00:24:51.080 --> 00:24:57.279
+who is good enough at programming to start actually developing things.
+
+00:24:57.280 --> 00:25:00.239
+Once in a while, I guess.
+
+00:25:00.240 --> 00:25:07.039
+As an activist, I think somewhat more often.
+
+00:25:07.040 --> 00:25:09.919
+But the main thing is, do you know how to have a rapport
+
+00:25:09.920 --> 00:25:13.039
+with high school students?
+
+00:25:13.040 --> 00:25:16.359
+If you do, it would be a great thing to try.
+
+00:25:16.360 --> 00:25:26.519
+We have had some projects of teaching free software to people in public schools.
+
+00:25:26.520 --> 00:25:32.559
+And if you want to work on that, I suggest sending me an email
+
+00:25:32.560 --> 00:25:35.039
+and I'll put you in touch with someone who's done it.
+
+NOTE What was the thought process behind making Emacs Lisp dynamically scoped when you first created it? What advantages did it provide over the alternative?
+
+00:25:35.040 --> 00:25:44.719
+What was the thought process behind making Emacs Lisp dynamically scoped?
+
+00:25:44.720 --> 00:25:46.039
+It was easy.
+
+00:25:46.040 --> 00:25:53.159
+I knew perfectly well how to write a simple, small Lisp interpreter
+
+00:25:53.160 --> 00:25:55.039
+that was dynamically scoped.
+
+00:25:55.040 --> 00:26:03.919
+And small was absolutely necessary at the time because I was trying to make it
+
+00:26:03.920 --> 00:26:12.079
+able to run in a machine whose total address space was one megabyte.
+
+00:26:12.080 --> 00:26:16.639
+So the code had to be small.
+
+00:26:16.640 --> 00:26:25.239
+Why did I implement if and I believe not cond?
+
+00:26:25.240 --> 00:26:30.359
+Why did I implement or and not unless?
+
+00:26:30.360 --> 00:26:33.439
+Because you didn't need those others.
+
+00:26:33.440 --> 00:26:39.839
+You could write your Lisp code with a smaller Lisp interpreter
+
+00:26:39.840 --> 00:26:49.759
+if you didn't have those other convenient traditional standard parts of Lisp.
+
+00:26:49.760 --> 00:26:54.519
+So I stripped Emacs Lisp down to bare bones.
+
+00:26:54.520 --> 00:27:01.679
+Of course, nowadays that's not necessary anymore.
+
+00:27:01.680 --> 00:27:08.239
+Emacs used to be criticized as eight megabytes and constantly swapping.
+
+00:27:08.240 --> 00:27:10.799
+And someone pointed out to me ten years ago
+
+00:27:10.800 --> 00:27:13.079
+that if something's only eight megabytes,
+
+00:27:13.080 --> 00:27:14.879
+it's not going to swap at all anymore.
+
+NOTE It's hard to pick up Emacs if you do not speak English. Can something be done to address that?
+
+00:27:18.766 --> 00:27:21.759
+It's hard to pick up Emacs if you do not speak English.
+
+00:27:21.760 --> 00:27:24.679
+Can something be done to address that?
+
+00:27:24.680 --> 00:27:28.239
+Well, what do you actually suggest?
+
+00:27:28.240 --> 00:27:30.039
+Is it the documentation?
+
+00:27:30.040 --> 00:27:34.279
+Is it the names of commands?
+
+00:27:34.280 --> 00:27:39.319
+Is it the doc strings or is it the manual or both?
+
+00:27:39.320 --> 00:27:43.879
+Is it the messages that Emacs displays?
+
+00:27:43.880 --> 00:27:47.679
+I mean, each of these is a different issue technically.
+
+00:27:47.680 --> 00:27:51.759
+Now, the easiest thing to deal with would be the messages
+
+00:27:51.760 --> 00:27:53.679
+because in other GNU packages,
+
+00:27:53.680 --> 00:27:57.639
+we have a system for internationalizing messages.
+
+00:27:57.640 --> 00:28:01.079
+It's hard to adapt it directly to Emacs
+
+00:28:01.080 --> 00:28:06.199
+because it's designed for programs, tools, or applications
+
+00:28:06.200 --> 00:28:09.639
+that have a fixed set of messages to display.
+
+00:28:09.640 --> 00:28:12.239
+Emacs doesn't. You load in a different Lisp program,
+
+00:28:12.240 --> 00:28:14.359
+it's got a different set of messages.
+
+00:28:14.360 --> 00:28:17.119
+How exactly do you want to handle this?
+
+00:28:17.120 --> 00:28:18.439
+But it could be done.
+
+00:28:18.440 --> 00:28:20.879
+It's not a terribly hard problem.
+
+00:28:20.880 --> 00:28:25.559
+If you're interested, please work on it.
+
+00:28:25.560 --> 00:28:29.719
+What about the command names?
+
+00:28:29.720 --> 00:28:35.319
+Well, you could imagine coming up with an alternate set of command names
+
+00:28:35.320 --> 00:28:40.159
+and maybe a different character instead of M-x
+
+00:28:40.160 --> 00:28:46.839
+so that it would read only the translated command names
+
+00:28:46.840 --> 00:28:51.319
+and the ordinary Emacs command names wouldn't get in the way.
+
+00:28:51.320 --> 00:28:57.719
+M-x might still be there, but if you type this other thing, M-foobar,
+
+00:28:57.720 --> 00:29:05.799
+then it would only complete over the command names in the other language.
+
+00:29:05.800 --> 00:29:10.479
+This might be pretty simple to do technically,
+
+00:29:10.480 --> 00:29:16.559
+although working out the details might take a good deal of thought.
+
+00:29:16.560 --> 00:29:20.999
+And then docstrings?
+
+00:29:21.000 --> 00:29:25.799
+Well, you could just write another set of them
+
+00:29:25.800 --> 00:29:28.839
+and have other help commands to display them.
+
+NOTE Do you use Org or Org mode, and if so, to what extent?
+
+00:29:28.840 --> 00:29:36.159
+Do you use Org or Org mode, and if so, to what extent?
+
+00:29:36.160 --> 00:29:39.759
+I have never used them, and here's why.
+
+00:29:39.760 --> 00:29:48.359
+I think that the design process of Org mode went awry,
+
+00:29:48.360 --> 00:29:52.959
+not at the very beginning, but at the next stage.
+
+00:29:52.960 --> 00:29:56.759
+Originally, Org mode was an outlining mode.
+
+00:29:56.760 --> 00:29:58.559
+It's not something I wanted to use.
+
+00:29:58.560 --> 00:30:02.999
+I had nothing against including it, but I didn't ever try to use it.
+
+00:30:03.000 --> 00:30:08.719
+The documentation of it somehow wasn't easy for me to grasp,
+
+00:30:08.720 --> 00:30:11.719
+especially since I had no actual use for it,
+
+00:30:11.720 --> 00:30:16.079
+no reason to go through and remember all those things.
+
+00:30:16.080 --> 00:30:24.599
+Anyway, then people started developing other facilities to use the Org syntax,
+
+00:30:24.600 --> 00:30:27.599
+and they're totally unrelated to each other.
+
+00:30:27.600 --> 00:30:30.599
+They just happen to use the Org syntax,
+
+00:30:30.600 --> 00:30:34.719
+and some of them, occasionally, I thought it might be interesting to use this,
+
+00:30:34.720 --> 00:30:38.639
+but to use it, first I'd have to learn the Org syntax,
+
+00:30:38.640 --> 00:30:43.199
+and that was a task that had already proved discouraging.
+
+00:30:43.200 --> 00:30:46.759
+Now, the mistaken design, I think,
+
+00:30:46.760 --> 00:30:51.159
+was to integrate all those other facilities with Org mode.
+
+00:30:51.160 --> 00:30:54.239
+They should all have been separate, modularly separate,
+
+00:30:54.240 --> 00:30:59.439
+so that you could maybe use them with Org mode if you wanted to,
+
+00:30:59.440 --> 00:31:03.199
+but also use them separately from Org mode,
+
+00:31:03.200 --> 00:31:05.279
+and they'd be documented separately,
+
+00:31:05.280 --> 00:31:08.999
+and those I wanted to use, I would have learned to use.
+
+00:31:09.000 --> 00:31:10.999
+But that was hard to do.
+
+00:31:11.000 --> 00:31:16.639
+They had been welded together such that it was not easy to separate them.
+
+00:31:16.640 --> 00:31:20.439
+I really wish they'd get separated, but that's not an easy job.
+
+00:31:20.440 --> 00:31:23.759
+Each one needs to be remodularized.
+
+00:31:23.760 --> 00:31:31.759
+Anyway, there is something for which I think Org mode could become an advance.
+
+00:31:31.760 --> 00:31:39.759
+I'm not saying it isn't useful for people who like what it does,
+
+00:31:39.760 --> 00:31:46.399
+but it might play an important role if it were extended to do it,
+
+00:31:46.400 --> 00:31:53.639
+and that is we could use a replacement for Texinfo.
+
+00:31:53.640 --> 00:31:57.639
+Texinfo's syntax is arcane.
+
+00:31:57.640 --> 00:32:05.559
+It was based on what I could implement on top of TeX in 1984 or so.
+
+00:32:05.560 --> 00:32:15.519
+And, well, Org mode, Org syntax doesn't make all the distinctions,
+
+00:32:15.520 --> 00:32:20.599
+all the semantic markup distinctions that we can make in Texinfo.
+
+00:32:20.600 --> 00:32:25.839
+If it did, which would require extending it,
+
+00:32:25.840 --> 00:32:33.399
+then it might become a good format to write GNU manuals in.
+
+00:32:33.400 --> 00:32:37.639
+It could conceivably become a better format than we have now,
+
+00:32:37.640 --> 00:32:39.719
+and that would be a good thing.
+
+00:32:39.720 --> 00:32:43.599
+Not that many people know Texinfo syntax.
+
+00:32:43.600 --> 00:32:47.479
+It's not widely used except for GNU manuals.
+
+00:32:47.480 --> 00:32:52.439
+But probably more people know Org syntax,
+
+00:32:52.440 --> 00:32:57.239
+and if it were extended so that it did in a fairly natural way
+
+00:32:57.240 --> 00:33:02.319
+all the things that Texinfo does and maybe some additional ones,
+
+00:33:02.320 --> 00:33:05.279
+then it could be superior.
+
+00:33:05.280 --> 00:33:11.239
+And then we could gradually switch our manuals over to it.
+
+00:33:11.240 --> 00:33:14.119
+But we need to be able to generate all the output formats
+
+00:33:14.120 --> 00:33:15.359
+that we can generate now.
+
+00:33:15.360 --> 00:33:19.999
+That means HTML to put on websites.
+
+00:33:20.000 --> 00:33:27.159
+That means either info files or perhaps another form of the HTML output
+
+00:33:27.160 --> 00:33:30.079
+that would be good for an info browser,
+
+00:33:30.080 --> 00:33:34.079
+including the one inside Emacs and the one that's separate.
+
+00:33:34.080 --> 00:33:42.479
+And generating input to TeX so that it would generate pretty-looking manuals,
+
+00:33:42.480 --> 00:33:46.719
+which is one of the advantages of Texinfo.
+
+00:33:46.720 --> 00:33:48.719
+This is not a gigantic job.
+
+00:33:48.720 --> 00:33:54.479
+I'd say this is a medium-sized job, or maybe two or three medium-sized jobs.
+
+NOTE What do you have in mind for more modular Emacs development?
+
+00:33:54.480 --> 00:34:05.879
+What do you have in mind for more modular Emacs development?
+
+00:34:05.880 --> 00:34:13.479
+I think that that's...
+
+00:34:13.480 --> 00:34:17.679
+There's no specific feature that I have in mind to solve that.
+
+00:34:17.680 --> 00:34:21.719
+It's more of an approach to how you develop things.
+
+00:34:21.720 --> 00:34:28.719
+It's thinking about modularity when you write each package that you write,
+
+00:34:28.720 --> 00:34:34.119
+because you will find situations where it has to interact
+
+00:34:34.120 --> 00:34:37.439
+in various ways with other packages.
+
+00:34:37.440 --> 00:34:40.879
+And sometimes you'll find the other packages have hooks
+
+00:34:40.880 --> 00:34:42.719
+that will enable you to do it.
+
+00:34:42.720 --> 00:34:45.239
+And sometimes you'll find that
+
+00:34:45.240 --> 00:34:47.679
+the hook you'd really need for this is missing.
+
+00:34:47.680 --> 00:34:52.519
+In that case, the best thing to do might be to add
+
+00:34:52.520 --> 00:34:58.479
+a suitable, fairly general hook that can be used for your job
+
+00:34:58.480 --> 00:35:00.879
+to the other existing package,
+
+00:35:00.880 --> 00:35:08.399
+so that instead of a rigid connection to other parts of Emacs,
+
+00:35:08.400 --> 00:35:09.599
+which is somewhat unmodular,
+
+00:35:09.600 --> 00:35:12.999
+you could use a general-purpose hook,
+
+00:35:13.000 --> 00:35:17.039
+which you designed because it could do a lot of things,
+
+00:35:17.040 --> 00:35:19.039
+including the thing you need to do.
+
+NOTE Reframing the school question
+
+00:35:19.040 --> 00:35:32.039
+It might be interesting to reframe the school question.
+
+00:35:32.040 --> 00:35:34.399
+I think it is related to the first part,
+
+00:35:34.400 --> 00:35:36.959
+how to bring Libre software into schools.
+
+00:35:36.960 --> 00:35:42.159
+For example, my entry point was LaTeX in school.
+
+00:35:42.160 --> 00:35:44.439
+Well, it's okay.
+
+00:35:44.440 --> 00:35:50.599
+I don't see anything wrong with that, by all means, if it works.
+
+00:35:50.600 --> 00:36:00.479
+Now, my naive, perhaps, guess is that it wouldn't arouse much interest,
+
+00:36:00.480 --> 00:36:05.879
+because I suspect most people would rather use a WYSIWYG text editor
+
+00:36:05.880 --> 00:36:13.959
+than a text formatter like LaTeX, any text formatter.
+
+00:36:13.960 --> 00:36:18.639
+But if your experience is otherwise, go ahead.
+
+NOTE In light of that critique of JavaScript not being about the language per se but rather the "culture of blindly getting and running packages/libraries", what's so different with what's currently done by the vast majority of Emacs/Elisp users to just install packages blindly?
+
+00:36:18.640 --> 00:36:28.799
+In the light of that critique of JavaScript not being about language per se,
+
+00:36:28.800 --> 00:36:33.759
+but rather the culture of blindly getting and running packages, libraries.
+
+00:36:33.760 --> 00:36:36.119
+What's so different with what's currently done by the vast
+
+00:36:36.120 --> 00:36:42.199
+majority of EmacsLib users to just install packages blindly?
+
+00:36:42.200 --> 00:36:44.199
+Well, they know they're installing a package,
+
+00:36:44.200 --> 00:36:46.799
+and that makes all the difference.
+
+00:36:46.800 --> 00:36:50.879
+And people can post various versions of a package,
+
+00:36:50.880 --> 00:36:53.679
+and then people can compare them and say,
+
+00:36:53.680 --> 00:36:59.279
+"Hey, I looked at that version there, and it has a horrible bug."
+
+00:36:59.280 --> 00:37:03.959
+And so the community can do something about that.
+
+00:37:03.960 --> 00:37:09.519
+With JavaScript sent by websites, there is no way to do anything like that.
+
+00:37:09.520 --> 00:37:13.039
+And in addition, most of those programs are not free.
+
+00:37:13.040 --> 00:37:16.559
+How would you know? If you're not running LibreJS,
+
+00:37:16.560 --> 00:37:20.799
+you don't know what JavaScript programs are being installed
+
+00:37:20.800 --> 00:37:25.319
+into your browser at any given moment, or whether they're free.
+
+00:37:25.320 --> 00:37:31.119
+You know, very likely you'll just get a bunch of obfuscript,
+
+00:37:31.120 --> 00:37:35.559
+and you won't know what the source code is, or whether you could even find it.
+
+00:37:35.560 --> 00:37:41.399
+These things don't happen with EmacsList packages.
+
+00:37:41.400 --> 00:37:48.799
+At least not when they're in reputable package archives.
+
+NOTE Do you still intend to merge your patch to the "shorthands" feature to the master branch?
+
+00:37:48.800 --> 00:37:55.839
+Do you still intend to merge your patch to the shorthands feature
+
+00:37:55.840 --> 00:37:57.519
+to the master branch?
+
+00:37:57.520 --> 00:38:05.159
+Yes, but I've seen that something needs to be done with the docstrings,
+
+00:38:05.160 --> 00:38:17.679
+because s.el mentions in its docstrings the function names used in s.el,
+
+00:38:17.680 --> 00:38:27.199
+and the magnars string library that works just by renaming those symbols
+
+00:38:27.200 --> 00:38:31.119
+really would want to alter the docstrings too.
+
+00:38:31.120 --> 00:38:34.719
+And now there are multiple ways of doing that.
+
+00:38:34.720 --> 00:38:39.519
+One of them maybe is to edit the s.el source file
+
+00:38:39.520 --> 00:38:42.559
+so it'll do the right thing in either case.
+
+00:38:42.560 --> 00:38:48.879
+That would need a new docstring construct.
+
+00:38:48.880 --> 00:38:52.159
+Well, we've added many docstring constructs.
+
+00:38:52.160 --> 00:38:54.879
+We could add one more. It's not that hard a thing.
+
+NOTE Do you think the freedom e.g., we have in Emacs, becomes a hurdle for some people to pursue more important things in the world? I used to do a lot of Emacs programming, but I recently try to stay away from tinkering on Emacs.
+
+00:38:54.880 --> 00:39:05.799
+Do you think the freedom, e.g., we have in Emacs becomes a hurdle
+
+00:39:05.800 --> 00:39:09.319
+for some people to pursue more important things in the world?
+
+00:39:09.320 --> 00:39:12.359
+Is there something more important in the world?
+
+00:39:12.360 --> 00:39:17.399
+I used to do a lot of Emacs programming, but recently I decided to stay away
+
+00:39:17.400 --> 00:39:22.199
+from tink-linking, from tinking Emacs.
+
+00:39:22.200 --> 00:39:27.159
+I'm not sure what-- tinking is a strange word to me, tinkering with maybe.
+
+00:39:27.160 --> 00:39:33.559
+Well, there may be more important things for you to do than extend Emacs.
+
+00:39:33.560 --> 00:39:39.239
+On the other hand, when you look at all the distractions that the world offers
+
+00:39:39.240 --> 00:39:42.439
+that distract a lot more people than this,
+
+00:39:42.440 --> 00:39:47.799
+it really seems unfair to criticize Emacs because it's something
+
+00:39:47.800 --> 00:39:50.959
+you could put a lot of time into tinkering with.
+
+00:39:50.960 --> 00:39:54.599
+Look how much time people put into playing video games,
+
+00:39:54.600 --> 00:39:58.199
+which achieves nothing except distracting them.
+
+00:39:58.200 --> 00:40:04.599
+And if you distract yourself by playing with Emacs Lisp code,
+
+00:40:04.600 --> 00:40:07.399
+that's surely better.
+
+00:40:07.400 --> 00:40:10.919
+It has a chance of resulting in something
+
+00:40:10.920 --> 00:40:17.919
+actually useful and a chance that you'd learn something
+
+00:40:17.920 --> 00:40:27.919
+that's more important as learning than how to win a certain video game.
+
+NOTE Question about software freedom: how does it apply to software that are art/media experiences, like videogames? In your view, Is the creator of a videogame obliged to release it under a free license?
+
+00:40:27.920 --> 00:40:29.919
+Questions about software freedom.
+
+00:40:29.920 --> 00:40:34.719
+How does it apply to software that are art/media experiences
+
+00:40:34.720 --> 00:40:36.919
+like video games in your view?
+
+00:40:36.920 --> 00:40:42.719
+Well, I'd say that a video game typically is a collection of things,
+
+00:40:42.720 --> 00:40:49.319
+some of which are programs and some of which are art.
+
+00:40:49.320 --> 00:40:54.719
+And so once you analyze the game in that way,
+
+00:40:54.720 --> 00:40:59.479
+if you agree with my ideas about what the moral rules are
+
+00:40:59.480 --> 00:41:04.319
+for each of those categories, you can apply them separately
+
+00:41:04.320 --> 00:41:06.759
+to each thing in the collection.
+
+00:41:06.760 --> 00:41:12.279
+Programs are operational. They do things for you.
+
+00:41:12.280 --> 00:41:15.879
+And anything that does things for you should be free.
+
+00:41:15.880 --> 00:41:20.999
+The art that is simply displayed is not of that kind,
+
+00:41:21.000 --> 00:41:26.239
+so it doesn't, in my view, have to be free.
+
+00:41:26.240 --> 00:41:29.359
+It does have to be shareable.
+
+00:41:29.360 --> 00:41:36.199
+You have to be free to non-commercially redistribute an exact copy.
+
+00:41:36.200 --> 00:41:40.039
+When I talk about sharing, that's what it means, precisely that.
+
+00:41:40.040 --> 00:41:45.319
+Non-commercially redistribute exact copies to others when you wish.
+
+00:41:45.320 --> 00:41:58.359
+How would technologies like WebAssembly fit with the JavaScript issues?
+
+00:41:58.360 --> 00:42:00.519
+They don't change anything much.
+
+00:42:00.520 --> 00:42:06.079
+Basically, if the program is JavaScript source code
+
+00:42:06.080 --> 00:42:09.999
+that you could actually read, well, then if it had a free license on it,
+
+00:42:10.000 --> 00:42:11.279
+it would be free software.
+
+00:42:11.280 --> 00:42:16.319
+And if the free license is indicated in the standardized format
+
+00:42:16.320 --> 00:42:24.959
+that LibreJS understands, it would actually recognize it as free software.
+
+00:42:24.960 --> 00:42:30.759
+If it's obfuscated, then it's not the source code.
+
+00:42:30.760 --> 00:42:35.599
+And if it's WebAssembly, then it's not the source code.
+
+00:42:35.600 --> 00:42:41.999
+So those are both compiled versions of source code that isn't in the page.
+
+00:42:42.000 --> 00:42:45.759
+So they make things somewhat nastier,
+
+00:42:45.760 --> 00:42:51.159
+in the sense that you couldn't have much chance of reading it
+
+00:42:51.160 --> 00:42:52.999
+and seeing what it does.
+
+00:42:53.000 --> 00:42:55.479
+But either way, it's not free,
+
+00:42:55.480 --> 00:43:00.599
+even if it's source code with no free license, it's still not free.
+
+00:43:00.600 --> 00:43:03.639
+If it's a compiled version rather than source,
+
+00:43:03.640 --> 00:43:07.359
+that's a little further away from being free.
+
+00:43:07.360 --> 00:43:11.599
+But further away from being free doesn't make it worse.
+
+00:43:11.600 --> 00:43:13.599
+It's equally bad.
+
+00:43:13.600 --> 00:43:18.559
+If it gets further away from being free,
+
+00:43:18.560 --> 00:43:23.439
+that means the work that you might have to do to free it is more,
+
+00:43:23.440 --> 00:43:26.239
+but it's not worse.
+
+00:43:26.240 --> 00:43:28.839
+Non-free is bad.
+
+NOTE Have you seen Haketilo? It seems similar to LibreJS.
+
+00:43:35.915 --> 00:43:38.959
+Have you seen Haketilo?
+
+00:43:38.960 --> 00:43:41.679
+It seems similar to LibreJS.
+
+00:43:41.680 --> 00:43:44.519
+Haketilo is meant to enable people
+
+00:43:44.520 --> 00:43:49.199
+to get some of the benefits of the free software community
+
+00:43:49.200 --> 00:43:54.439
+with free replacement JavaScript programs for websites.
+
+00:43:54.440 --> 00:44:00.879
+So potentially it offers a real solution to the JavaScript problem.
+
+00:44:00.880 --> 00:44:05.039
+It has a long way to go from what I hear.
+
+00:44:05.040 --> 00:44:07.999
+If you want to work on it, please do.
+
+00:44:08.000 --> 00:44:14.159
+Of course, writing free replacement JavaScript
+
+00:44:14.160 --> 00:44:16.919
+for a million websites is an enormous job,
+
+00:44:16.920 --> 00:44:19.319
+but maybe we could do it for some sites.
+
+00:44:19.320 --> 00:44:24.319
+It depends how many people get enthusiastic about doing it
+
+00:44:24.320 --> 00:44:25.959
+and how many sites cooperate.
+
+00:44:25.960 --> 00:44:32.719
+Is writing free software replacement to GitHub Copilot
+
+00:44:32.720 --> 00:44:36.759
+with proper license attribution a good idea?
+
+00:44:36.760 --> 00:44:44.959
+Maybe, but remember that Copilot is not a program. Copilot is a service.
+
+00:44:44.960 --> 00:44:50.119
+It is something that somebody else's computer will do for you.
+
+00:44:50.120 --> 00:44:55.439
+It's a computation that someone else's server will do for you when you ask.
+
+00:44:55.440 --> 00:45:06.239
+And so what are the practical problems of doing that? I'm not sure.
+
+00:45:06.240 --> 00:45:13.479
+The point is, of course, the server runs by running a program.
+
+00:45:13.480 --> 00:45:17.439
+The service operates by running programs.
+
+00:45:17.440 --> 00:45:21.119
+But still, a service is a very different kind of thing from a program.
+
+00:45:21.120 --> 00:45:28.999
+People who use Copilot don't get any sort of copy of Copilot.
+
+00:45:29.000 --> 00:45:33.319
+All they do is send something they're working on to that server
+
+00:45:33.320 --> 00:45:34.999
+and they get something back.
+
+00:45:35.000 --> 00:45:45.567
+So it might be a good idea.
+
+NOTE
+Do you have any suggestions for helping propective contributers streamline
+the copyright assignment needed to contribute to Emacs (and other FSF software
+projects)?
+
+00:45:45.568 --> 00:45:48.359
+Do you have any suggestions for helping prospective contributors
+
+00:45:48.360 --> 00:45:53.359
+streamline the copyright assignment needed to contribute to Emacs?
+
+00:45:53.360 --> 00:45:57.279
+I don't think that's needed.
+
+00:45:57.280 --> 00:46:04.359
+Basically, the copyright assignment itself is pretty easy
+
+00:46:04.360 --> 00:46:06.599
+and doesn't take very long.
+
+00:46:06.600 --> 00:46:09.919
+What is sometimes harder is the copyright disclaimer,
+
+00:46:09.920 --> 00:46:14.959
+the employer disclaimer, where your employer,
+
+00:46:14.960 --> 00:46:20.399
+if you're employed to program, or if your job includes programming
+
+00:46:20.400 --> 00:46:24.399
+or could include programming, we want to be sure that your employer
+
+00:46:24.400 --> 00:46:30.559
+is not going to say that you had no right to contribute that to any program
+
+00:46:30.560 --> 00:46:37.799
+because it belonged to the employer all along and you broke the rules
+
+00:46:37.800 --> 00:46:42.319
+and the project you contributed to is shafted.
+
+00:46:42.320 --> 00:46:50.679
+Well, we are working on some simplifications to that text
+
+00:46:50.680 --> 00:46:55.119
+in the hope of making it easier to get companies to say yes to it.
+
+00:46:55.120 --> 00:46:59.039
+But fundamentally, they've got to say yes to it.
+
+00:46:59.040 --> 00:47:06.279
+We need them to say yes to it.
+
+00:47:06.280 --> 00:47:08.719
+We can't make them say yes to it.
+
+00:47:08.720 --> 00:47:09.799
+We can only ask.
+
+NOTE Can complexity induced by company-funded free/libre code become a problem, when the company pulls out, leaving the code potentially unmaintainable?
+
+00:47:09.800 --> 00:47:13.759
+Can complexity induced by company funded...
+
+00:47:13.760 --> 00:47:17.119
+Sorry, it talks about open code.
+
+00:47:17.120 --> 00:47:21.359
+I don't know what that means.
+
+00:47:21.360 --> 00:47:23.759
+Is this talking about free software?
+
+00:47:23.760 --> 00:47:27.759
+[Amin]: I think it would be safe to assume that they are indeed
+
+00:47:27.760 --> 00:47:28.959
+talking about free software.
+
+00:47:28.960 --> 00:47:34.119
+[Richard]: Okay, because I don't use the term open to classify programs.
+
+00:47:34.120 --> 00:47:39.359
+I'm not a supporter of open source and I never was.
+
+00:47:39.360 --> 00:47:42.519
+And the reason is very important.
+
+00:47:42.520 --> 00:47:50.199
+I touched on this briefly in the TEDx video.
+
+00:47:50.200 --> 00:47:58.639
+But basically, the idea of the free software movement is that users deserve
+
+00:47:58.640 --> 00:48:04.559
+the freedom to study, change and redistribute the code that they use.
+
+00:48:04.560 --> 00:48:09.879
+And it is an injustice to deny that to users.
+
+00:48:09.880 --> 00:48:13.719
+And therefore, software must be free.
+
+00:48:13.720 --> 00:48:16.159
+It's wrong if it's not free.
+
+00:48:16.160 --> 00:48:22.879
+Well, the people who created the idea of open source about 14 years later,
+
+00:48:22.880 --> 00:48:27.719
+they wanted to avoid bringing up that question.
+
+00:48:27.720 --> 00:48:31.999
+And they more or less succeeded when people talk about open source.
+
+00:48:32.000 --> 00:48:38.959
+Occasionally, that question has seeped in from the free software community.
+
+00:48:38.960 --> 00:48:41.599
+But most of the time, it never occurs to them.
+
+00:48:41.600 --> 00:48:47.519
+They simply take for granted that it's legitimate for a program not to be open.
+
+00:48:47.520 --> 00:48:52.759
+Well, that's missing the point that I consider most important.
+
+00:48:52.760 --> 00:48:57.679
+So whenever I talk about this area, I talk about it in
+
+00:48:57.680 --> 00:49:04.039
+terms of free, libre, freedom-respecting software.
+
+00:49:04.040 --> 00:49:09.839
+So, can complexity-induced by company-funded free code
+
+00:49:09.840 --> 00:49:12.399
+become a problem when the company pulls out,
+
+00:49:12.400 --> 00:49:16.239
+leaving the code potentially unmaintainable?
+
+00:49:16.240 --> 00:49:21.999
+Well, I'd say over-complicated free programs
+
+00:49:22.000 --> 00:49:24.879
+which don't have community contributors
+
+00:49:24.880 --> 00:49:27.359
+can fall into that problem.
+
+00:49:27.360 --> 00:49:31.279
+It's not limited to programs developed by companies, I think.
+
+NOTE What do you think of Hyperbole or EEV instead of org mode, or other things for the stuff that org mode does "second brain / knowledge base", or GTD 'getting things done' etc... among other things in Emacs or other Emacs packages
+
+00:49:31.280 --> 00:49:42.239
+What do you think of Hyperbole or EEV instead of Org mode?
+
+00:49:42.240 --> 00:49:46.759
+Well, I don't actually know that much about either of them.
+
+00:49:46.760 --> 00:49:49.439
+I don't know what EEV is.
+
+00:49:49.440 --> 00:49:54.257
+I've heard of Hyperbole, but it was many years ago that I looked at it,
+
+00:49:54.258 --> 00:49:56.399
+and I don't remember what I saw.
+
+00:49:56.400 --> 00:50:03.199
+So, I'm sorry I can't have an educated opinion about those specific things.
+
+00:50:03.200 --> 00:50:07.319
+It would be interesting for somebody to study that.
+
+00:50:07.320 --> 00:50:10.319
+Now, there'd be a lot to study.
+
+00:50:10.320 --> 00:50:14.999
+After all, Org mode consists of an outlining mode together
+
+00:50:15.000 --> 00:50:20.119
+with lots of other specific features that have been welded onto it.
+
+00:50:20.120 --> 00:50:26.479
+And if they were separated, made modular, separate parts of Emacs,
+
+00:50:26.480 --> 00:50:31.599
+it would be a lot easier to adapt some of them to work with hyperbole
+
+00:50:31.600 --> 00:50:32.799
+if we wanted to.
+
+00:50:32.800 --> 00:50:34.879
+Of course, do we want to?
+
+00:50:34.880 --> 00:50:36.359
+That's another question.
+
+00:50:36.360 --> 00:50:38.519
+What is EEV?
+
+00:50:38.520 --> 00:50:46.279
+I think it's similar in many ways to hyperbole.
+
+00:50:46.280 --> 00:50:50.039
+I haven't used either of them too much myself, but yeah,
+
+00:50:50.040 --> 00:50:51.759
+they are fairly similar as far as I know.
+
+00:50:51.760 --> 00:50:55.759
+If they're fairly similar, I guess that brings up the question,
+
+00:50:55.760 --> 00:50:58.319
+is either of them actually part of Emacs?
+
+00:50:58.320 --> 00:51:04.639
+I think hyperbole is a GNU package.
+
+00:51:04.640 --> 00:51:07.719
+I'm not sure if it's part of Emacs or GNU ELPA.
+
+00:51:07.720 --> 00:51:10.879
+It might be, but EEV is not as of yet.
+
+00:51:10.880 --> 00:51:12.159
+But both are free software.
+
+00:51:12.160 --> 00:51:19.159
+Well, it might be that it doesn't make sense to include them both in any sense.
+
+00:51:19.160 --> 00:51:21.159
+People can write them and distribute them,
+
+00:51:21.160 --> 00:51:23.679
+but that doesn't mean we need to pick them up.
+
+00:51:23.680 --> 00:51:28.359
+We might want to compare them and see which one is better
+
+00:51:28.360 --> 00:51:32.799
+and then look at whether it could be improved further
+
+00:51:32.800 --> 00:51:35.319
+by bringing in features from the other.
+
+00:51:35.320 --> 00:51:40.199
+This is what you do if those two things exist
+
+00:51:40.200 --> 00:51:42.519
+and you want to make the best possible thing
+
+00:51:42.520 --> 00:51:44.999
+to add, for instance, to Emacs.
+
+00:51:45.000 --> 00:51:56.319
+But since I don't know any specifics anymore, and with EEV I never did,
+
+00:51:56.320 --> 00:52:01.639
+I don't want to state any sort of a priori preference.
+
+00:52:01.640 --> 00:52:06.250
+I don't have one.
+
+NOTE Are there plans to bring modal editing (eg. evil-mode, viper) to Emacs core and did your opinion on modal editing change over the years?
+
+00:52:06.251 --> 00:52:10.959
+Are there plans to bring modal editing to Emacs core?
+
+00:52:10.960 --> 00:52:11.759
+What does that mean?
+
+00:52:11.760 --> 00:52:19.399
+[Amin]: I think they're speaking about projects or editing modes such as VI,
+
+00:52:19.400 --> 00:52:23.639
+where by default whatever you type is not getting inserted,
+
+00:52:23.640 --> 00:52:28.319
+but you can navigate between different modes
+
+00:52:28.320 --> 00:52:30.199
+and one of them being text insertion.
+
+00:52:30.200 --> 00:52:35.759
+[Richard]: Well, I don't have a wish for that.
+
+00:52:35.760 --> 00:52:38.399
+Now, I mean, it's not somehow morally anathema.
+
+00:52:38.400 --> 00:52:49.279
+I mean, it's not as if it were a non-free program.
+
+00:52:49.280 --> 00:52:58.439
+But it wouldn't be easy to design that in such a way that
+
+00:52:58.440 --> 00:53:02.999
+it fit into the framework of existing Emacs without doing any violence to it.
+
+NOTE What is your opinion on the current state of large machine
+learning/AI models?
+
+00:53:03.000 --> 00:53:16.719
+What is your opinion of the current state of large machine learning models?
+
+00:53:16.720 --> 00:53:20.919
+Even if the model is released under a free license,
+
+00:53:20.920 --> 00:53:25.399
+it cannot be modified in a meaningful way?
+
+00:53:25.400 --> 00:53:29.039
+I don't think that's true.
+
+00:53:29.040 --> 00:53:33.279
+A person who was in the field of machine learning
+
+00:53:33.280 --> 00:53:35.839
+told me that you can modify it.
+
+00:53:35.840 --> 00:53:38.999
+You can modify it by starting with what you've got
+
+00:53:39.000 --> 00:53:40.839
+and doing some further training,
+
+00:53:40.840 --> 00:53:47.159
+and you don't need, I'm told, the previously used training data to train it,
+
+00:53:47.160 --> 00:53:49.439
+to modify it.
+
+00:53:49.440 --> 00:53:53.399
+Based on that, I concluded that the trained neural network
+
+00:53:53.400 --> 00:53:56.879
+can be treated as source code.
+
+00:53:56.880 --> 00:54:01.079
+And after all, it's not made from any other kind of source code.
+
+00:54:01.080 --> 00:54:04.839
+So, in some sense, what else could the source code be?
+
+NOTE I thought it was a virtue to separate the content from the style or
+appearance of information. Part of being free is also to view information in the
+format that you want. Does your WYSIWYG idea erode this virtue and lead to more
+thinking -- perhaps undue thinking about style over substance?
+
+00:54:14.302 --> 00:54:17.519
+I thought it was a virtue to separate the content
+
+00:54:17.520 --> 00:54:19.719
+from the style or appearance of information.
+
+00:54:19.720 --> 00:54:24.759
+Part of being free is also to view information in the format you want.
+
+00:54:24.760 --> 00:54:29.959
+Does your WYSIWYG idea erode this virtue and lead to more thinking,
+
+00:54:29.960 --> 00:54:34.359
+perhaps undue thinking about style over substance?
+
+00:54:34.360 --> 00:54:38.919
+Well, I don't know, actually.
+
+00:54:38.920 --> 00:54:43.959
+I know that in LibreOffice you can make named styles,
+
+00:54:43.960 --> 00:54:46.959
+and you can apply them to parts of the text,
+
+00:54:46.960 --> 00:54:51.239
+and later on you can change what any given named style
+
+00:54:51.240 --> 00:54:53.719
+means in terms of appearance.
+
+00:54:53.720 --> 00:55:03.319
+So, is that enough independence of appearance from semantics?
+
+00:55:03.320 --> 00:55:06.319
+I am hardly a power user of LibreOffice.
+
+00:55:06.320 --> 00:55:09.239
+I've come across that feature. I've never used it.
+
+00:55:09.240 --> 00:55:17.559
+The only things I write with it are pretty simple.
+
+00:55:17.560 --> 00:55:23.519
+I have a feeling that I've been doing this for a rather long time.
+
+00:55:23.520 --> 00:55:27.279
+Do you recall when I started answering questions?
+
+00:55:27.280 --> 00:55:29.799
+I think it was something like an hour ago.
+
+00:55:29.800 --> 00:55:35.759
+Yeah, I think so. About an hour or 45 minutes-ish.
+
+00:55:35.760 --> 00:55:38.839
+Well, then I'll do a few questions more.
+
+NOTE Do you ever dabble in retro-computing, e.g. logging into TOPS10/20 systems SDF, etc?
+
+00:55:38.840 --> 00:55:42.679
+Do you ever dabble in retrocomputing?
+
+00:55:42.680 --> 00:55:47.319
+No. I decided it's a waste of time.
+
+00:55:47.320 --> 00:55:51.759
+It basically would be tinkering that would not develop
+
+00:55:51.760 --> 00:55:56.039
+anything of any importance or use.
+
+00:55:56.040 --> 00:56:02.839
+And I know that if I'm going to enjoy developing something,
+
+00:56:02.840 --> 00:56:06.079
+I could enjoy it developing anything.
+
+00:56:06.080 --> 00:56:10.239
+You know, I could enjoy just as much developing something
+
+00:56:10.240 --> 00:56:17.199
+that I think is needed right now for non-retrocomputing
+
+00:56:17.200 --> 00:56:20.679
+as I could enjoy working on retrocomputing.
+
+00:56:20.680 --> 00:56:26.079
+So I decided never to let retrocomputing
+
+00:56:26.080 --> 00:56:30.759
+distract my attention from useful computing.
+
+NOTE Do you know Gemini?
+
+00:56:38.196 --> 00:56:40.359
+Do you know the Gemini Project -
+
+00:56:40.360 --> 00:56:45.239
+a network of very simplified markdown-like text files without images
+
+00:56:45.240 --> 00:56:52.759
+and third-party materials transmitted via an open public free protocol,
+
+00:56:52.760 --> 00:56:56.519
+which is not HTTPS?
+
+00:56:56.520 --> 00:56:58.839
+I don't remember if I ever heard of that before.
+
+00:56:58.840 --> 00:57:02.639
+Sorry, I have no opinion about it.
+
+00:57:02.640 --> 00:57:10.799
+But I think that the lack of images will turn out to be a considerable drawback.
+
+00:57:10.800 --> 00:57:14.159
+I mean, imagine a website.
+
+00:57:14.160 --> 00:57:19.439
+Well, there are lots of reasons you might want to put in images.
+
+00:57:19.440 --> 00:57:27.559
+It's not limited just to making it look snazzy and distracting.
+
+00:57:27.560 --> 00:57:32.159
+There are a lot of pictures you might want to include and diagrams,
+
+00:57:32.160 --> 00:57:37.719
+and scientific papers include pictures and diagrams.
+
+00:57:37.720 --> 00:57:41.359
+It would be crippling if they couldn't be in there.
+
+00:57:41.360 --> 00:57:46.519
+So basically, I think that exclusion of images is a big loss.
+
+00:57:46.520 --> 00:57:56.879
+[Amin]: Thanks. I think that's so far all the questions I see on the pad,
+
+00:57:56.880 --> 00:58:00.319
+but let's give it maybe another minute or two
+
+00:58:00.320 --> 00:58:04.479
+if people have any other question or two to get in before we call this close.
+
+NOTE stallmansupport.org
+
+00:58:04.480 --> 00:58:27.520
+[Richard] Well, I'd like to mention that if you've heard
+
+00:58:27.521 --> 00:58:43.959
+rumors of attacks against me that people have made, it's mostly false,
+
+00:58:43.960 --> 00:58:50.079
+and you can find out more by looking at stallmansupport.org.
+
+00:58:50.080 --> 00:58:55.359
+So I refer you there, and I hope you'll take a look.
+
+00:58:55.360 --> 00:59:04.639
+[Amin]: Yes, thank you.
+
+00:59:04.640 --> 00:59:08.599
+All right, I think that's pretty much all the questions that we have.
+
+00:59:08.600 --> 00:59:10.559
+Thanks again, Richard, both for your great talk
+
+00:59:10.560 --> 00:59:14.319
+and also for taking this much time answering so many questions.
+
+00:59:14.320 --> 00:59:17.999
+We really appreciate it.
+
+00:59:18.000 --> 00:59:21.639
+[Richard]: Well, this is what I do.
+
+00:59:21.640 --> 00:59:28.839
+GNU and the Free Software Movement are what I've dedicated my life to,
+
+00:59:28.840 --> 00:59:34.679
+and since I'm still alive, I've got more to dedicate to them.
+
+00:59:34.680 --> 00:59:40.319
+[Amin]: Wonderful, and we all hope that it keeps on coming
+
+00:59:40.320 --> 00:59:43.839
+and you're able to continue for a very long time into the future.
+
+00:59:43.840 --> 00:59:46.079
+[Richard]: Happy hacking.
+
+00:59:46.080 --> 00:59:49.960
+[Amin]: Happy hacking. Bye.