diff options
Diffstat (limited to '2021/captions')
2 files changed, 806 insertions, 0 deletions
diff --git a/2021/captions/emacsconf-2021-unix--gnus-not-unix-why-emacs-demonstrates-the-unix-philosophy-isnt-always-the-only-answer--daniel-rose--chapters.vtt b/2021/captions/emacsconf-2021-unix--gnus-not-unix-why-emacs-demonstrates-the-unix-philosophy-isnt-always-the-only-answer--daniel-rose--chapters.vtt new file mode 100644 index 00000000..130e25e8 --- /dev/null +++ b/2021/captions/emacsconf-2021-unix--gnus-not-unix-why-emacs-demonstrates-the-unix-philosophy-isnt-always-the-only-answer--daniel-rose--chapters.vtt @@ -0,0 +1,40 @@ +WEBVTT + +00:00:00.080 --> 00:00:31.598 +Introduction + +00:00:31.599 --> 00:00:57.599 +UNIX Philosophy? + +00:00:57.600 --> 00:01:25.438 +Enter Emacs + +00:01:25.439 --> 00:01:50.798 +Emacs versus the original ideas + +00:01:50.799 --> 00:02:17.439 +Why compare to UNIX? + +00:02:17.440 --> 00:02:59.649 +Emacs /does/ work with the UNIX philosophy + +00:02:59.650 --> 00:03:15.049 +Philosophies don't really matter in computing + +00:03:15.050 --> 00:04:14.382 +Android Studio + +00:04:14.383 --> 00:04:42.899 +Window Managers + +00:04:42.900 --> 00:05:09.299 +Browsers + +00:05:09.300 --> 00:05:34.638 +Vim + +00:05:34.639 --> 00:06:12.232 +Terminals + +00:06:12.233 --> 00:06:13.233 +Do what helps you most, not what a philosophy tells you diff --git a/2021/captions/emacsconf-2021-unix--gnus-not-unix-why-emacs-demonstrates-the-unix-philosophy-isnt-always-the-only-answer--daniel-rose--main.vtt b/2021/captions/emacsconf-2021-unix--gnus-not-unix-why-emacs-demonstrates-the-unix-philosophy-isnt-always-the-only-answer--daniel-rose--main.vtt new file mode 100644 index 00000000..7925cec4 --- /dev/null +++ b/2021/captions/emacsconf-2021-unix--gnus-not-unix-why-emacs-demonstrates-the-unix-philosophy-isnt-always-the-only-answer--daniel-rose--main.vtt @@ -0,0 +1,766 @@ +WEBVTT + +00:00.080 --> 00:01.199 +Hello! + +00:01.199 --> 00:04.000 +My name is Daniel or Daniil Rose. + +00:04.000 --> 00:05.680 +I use Emacs in my everyday life, + +00:05.680 --> 00:08.320 +from programming in C or Rust for work, + +00:08.320 --> 00:11.120 +to writing reports for classes. + +00:11.120 --> 00:12.389 +I'd like to start by adding + +00:12.389 --> 00:14.719 +an overarching theme to this talk. + +00:14.719 --> 00:15.603 +If there's only one thing + +00:15.603 --> 00:16.670 +that you remember from today, + +00:16.670 --> 00:17.886 +I'd like you to walk away + +00:17.886 --> 00:18.550 +with the understanding + +00:18.550 --> 00:20.720 +that the philosophies or ideologies + +00:20.720 --> 00:21.280 +are just that. + +00:21.280 --> 00:24.400 +By trying to box yourself in with a concept + +00:24.400 --> 00:25.440 +you might be blind to other methods. + +00:25.440 --> 00:27.360 +We live in an ever-changing world, + +00:27.360 --> 00:28.880 +and I hope that you can appreciate + +00:28.880 --> 00:00:31.598 +being flexible and adaptable. + +00:31.599 --> 00:33.280 +UNIX philosophy? As a quick intro + +00:33.280 --> 00:34.720 +for those who don't know, + +00:34.720 --> 00:35.680 +the UNIX philosophy + +00:35.680 --> 00:37.920 +was written by Doug McIlroy. + +00:37.920 --> 00:39.136 +It's wordy, so there is + +00:39.136 --> 00:40.000 +a great summarization + +00:40.000 --> 00:42.719 +by Peter H. Salus: + +00:42.719 --> 00:43.920 +Write programs that do one thing + +00:43.920 --> 00:46.879 +and do it well. + +00:46.879 --> 00:50.000 +Write programs to work together, + +00:50.000 --> 00:52.750 +and write programs to handle text streams, + +00:52.750 --> 00:00:57.599 +because they are the universal interface. + +00:57.600 --> 00:59.233 +So enter Emacs. + +00:59.233 --> 01:01.020 +Emacs doesn't quite adhere + +01:01.020 --> 01:01.983 +to those principles. + +01:01.983 --> 01:03.680 +"Do one thing and do it well" + +01:03.680 --> 01:04.640 +surely doesn't apply, + +01:04.640 --> 01:06.261 +since Emacs does /a lot/ of things + +01:06.261 --> 01:08.640 +and does the majority of those things well. + +01:08.640 --> 01:10.240 +It might apply if you consider Emacs + +01:10.240 --> 01:12.560 +purely as a Lisp environment, however. + +01:12.560 --> 01:14.141 +"Write programs to work together?" + +01:14.141 --> 01:15.767 +Arguably the thing Emacs is best + +01:15.767 --> 01:16.320 +out of the three, + +01:16.320 --> 01:17.370 +proven especially + +01:17.370 --> 01:18.619 +by all the various packages + +01:18.619 --> 01:20.240 +that work with external programs, + +01:20.240 --> 01:22.560 +LSP, and whatever else. + +01:22.560 --> 01:23.703 +"Handle text streams?" + +01:23.703 --> 00:01:25.438 +Well, that one depends. + +01:25.439 --> 01:27.583 +So, Emacs versus the original ideas. + +01:27.583 --> 01:29.317 +The summarizations are good, + +01:29.317 --> 01:31.067 +but they aren't truly what was said. + +01:31.067 --> 01:32.800 +If we look back at the originals, + +01:32.800 --> 01:34.517 +we'll see that Emacs strongly adheres + +01:34.517 --> 01:35.759 +to the second rule: + +01:35.759 --> 01:37.267 +Design and build software, + +01:37.267 --> 01:38.433 +even operating systems, + +01:38.433 --> 01:39.233 +to be tried early, + +01:39.233 --> 01:40.633 +ideally within weeks. + +01:40.633 --> 01:41.479 +Don't hesitate to throw away + +01:41.479 --> 01:42.367 +the clumsy parts + +01:42.367 --> 01:43.600 +and rebuild them. + +01:43.600 --> 01:45.003 +The concept of LISP, + +01:45.003 --> 01:46.933 +self documentation of Emacs, + +01:46.933 --> 01:48.159 +and the "REPL" style all make it + +01:48.159 --> 00:01:50.798 +a shining example of this rule. + +01:50.799 --> 01:52.880 +But why compare to UNIX? + +01:52.880 --> 01:55.520 +Truly, why compare to the UNIX philosophy? + +01:55.520 --> 01:57.360 +Although the "rules" set down are good ones + +01:57.360 --> 01:58.467 +for most programs, + +01:58.467 --> 02:00.000 +Emacs isn't most programs. + +02:00.000 --> 02:01.920 +The rules and summarizations + +02:01.920 --> 02:03.532 +even were written decades ago, + +02:03.532 --> 02:05.717 +before we had REST APIs, JSON, + +02:05.717 --> 02:07.150 +or any other modern interface. + +02:07.150 --> 02:08.467 +If the world adapts, + +02:08.467 --> 02:10.640 +why too can't we adapt the past? + +02:10.640 --> 02:11.966 +This concept of breaking the rules + +02:11.966 --> 02:13.250 +and forging its own path + +02:13.250 --> 02:14.467 +has allowed Emacs to continue + +02:14.467 --> 00:02:17.439 +and be reworked for modern eras. + +02:17.440 --> 02:20.480 +Emacs /does/ work with the UNIX philosophy. + +02:20.480 --> 02:22.239 +By looking at both of these ideologies, + +02:22.239 --> 02:24.319 +why must they be mutually exclusive? + +02:24.319 --> 02:26.239 +Emacs does work with text: + +02:26.239 --> 02:28.800 +Magit is a wrapper for the git CLI + +02:28.800 --> 02:30.733 +Dired is a wrapper for ls, + +02:30.733 --> 02:32.450 +Consult grep for grep, and so on. + +02:32.450 --> 02:34.867 +Why rewrite poorly tools, + +02:34.867 --> 02:37.200 +when we can use the existing powerful ones? + +02:37.200 --> 02:38.253 +Well, that in itself + +02:38.253 --> 02:39.242 +is part of the UNIX philosophy. + +02:39.242 --> 02:40.567 +It seems that most strongly + +02:40.567 --> 02:41.453 +the UNIX philosophy + +02:41.453 --> 02:42.319 +applies to the command line. + +02:42.319 --> 02:44.183 +If we look at most graphical applications, + +02:44.183 --> 02:45.550 +these notions fall apart. + +02:45.550 --> 02:47.133 +But that isn't true for Emacs. + +02:47.133 --> 02:49.000 +It is a graphical application + +02:49.000 --> 02:49.817 +(at least for me) + +02:49.817 --> 02:51.133 +but it does use many other tools. + +02:51.133 --> 02:52.283 +Some have proposed + +02:52.283 --> 02:53.367 +that Emacs should be looked at + +02:53.367 --> 02:55.350 +alongside UNIX, as its own OS. + +02:55.350 --> 02:56.567 +It has windowing capabilities + +02:56.567 --> 02:57.567 +handles its own formats, + +02:57.567 --> 00:02:59.649 +and so on, but I disagree with this concept. + +02:59.650 --> 03:02.103 +Philosophies don't really matter + +03:02.103 --> 03:03.050 +in computing. + +03:03.050 --> 03:03.967 +It's true, they don't. + +03:03.967 --> 03:05.683 +As people, we like to group things. + +03:05.683 --> 03:06.603 +We like to have our set ways + +03:06.603 --> 03:07.267 +to describe them, + +03:07.267 --> 03:08.300 +but that doesn't always work. + +03:08.300 --> 03:10.017 +By sticking with a common concept + +03:10.017 --> 03:11.033 +in the Emacs community, + +03:11.033 --> 03:13.117 +do everything in Emacs, + +03:13.117 --> 00:03:15.049 +is it truly benefitting me and you? + +03:15.050 --> 03:18.017 +Android Studio. Here's an example. + +03:18.017 --> 03:20.083 +I work most often in Emacs. + +03:20.083 --> 03:21.067 +But I also have courses + +03:21.067 --> 03:22.567 +in Android and iOS development. + +03:22.567 --> 03:24.367 +I can absolutely install + +03:24.367 --> 03:25.317 +~android-mode~ and ~kotlin-mode~, + +03:25.317 --> 03:26.517 +and use ~adb~ in Emacs, + +03:26.517 --> 03:27.800 +but at that point, + +03:27.800 --> 03:29.050 +I am creating more work than it's worth. + +03:29.050 --> 03:30.300 +When unmaintained, + +03:30.300 --> 03:31.333 +things tend to fall apart, + +03:31.333 --> 03:33.100 +and many features of ~android-mode~ + +03:33.100 --> 03:33.967 +no longer work for me. + +03:33.967 --> 03:35.817 +So I have two main options: + +03:35.817 --> 03:37.500 +fix the existing mode or write my own, + +03:37.500 --> 03:39.683 +or use the assumed tools for the job, + +03:39.683 --> 03:41.517 +like Android Studio and/or IntelliJ. + +03:41.517 --> 03:43.017 +Looking at Android Studio: + +03:43.017 --> 03:45.083 +I have plenty of plugins for colour themes, + +03:45.083 --> 03:45.733 +just like Emacs. + +03:45.733 --> 03:47.300 +I have Emacs keybindings built in, + +03:47.300 --> 03:48.800 +and other quality-of-life features. + +03:48.800 --> 03:50.833 +According to the UNIX philosophy, + +03:50.833 --> 03:51.933 +in a round-about way, + +03:51.933 --> 03:53.367 +I should be using one tool + +03:53.367 --> 03:54.683 +that does its job well. + +03:54.683 --> 03:55.500 +While not minimal, + +03:55.500 --> 03:57.650 +Android Studio accomplishes this job. + +03:57.650 --> 03:59.733 +Does that mean that I shouldn't use Emacs at all? + +03:59.733 --> 04:00.300 +Of course not! + +04:00.300 --> 04:01.700 +And while it may seem obvious, + +04:01.700 --> 04:03.050 +I feel we in this group + +04:03.050 --> 04:03.867 +often get caught up + +04:03.867 --> 04:04.533 +finding solutions + +04:04.533 --> 04:05.983 +in the one particular way + +04:05.983 --> 04:06.783 +we want it. + +04:06.783 --> 04:08.467 +This is where being adaptable + +04:08.467 --> 04:09.183 +comes in again. + +04:09.183 --> 04:11.000 +I need to learn how to mold my tools + +04:11.000 --> 04:11.800 +to my workflow, + +04:11.800 --> 04:13.133 +but also mold my workflow + +04:13.133 --> 00:04:14.382 +to the tools available. + +04:14.383 --> 04:15.683 +Window Managers. + +04:15.683 --> 04:18.050 +Another example of this is window managers. + +04:18.050 --> 04:19.367 +Although I've probably dabbled + +04:19.367 --> 04:21.083 +in window managers or desktop environments + +04:21.083 --> 04:22.583 +as much as the next person, + +04:22.583 --> 04:23.817 +I have usually stuck with DWM. + +04:23.817 --> 04:25.633 +But DWM doesn't follow + +04:25.633 --> 04:26.833 +any of the Emacs concepts: + +04:26.833 --> 04:27.967 +it has different keybindings-- + +04:27.967 --> 04:29.250 +you can sort of do Emacs ones, + +04:29.250 --> 04:31.283 +no REPL (it's a C program after all). + +04:31.283 --> 04:33.617 +But I can still mold it to my workflow. + +04:33.617 --> 04:35.833 +If I run Emacs as a daemon and a client, + +04:35.833 --> 04:36.700 +what difference is it? + +04:36.700 --> 04:37.850 +My WM is essentially a wrapper + +04:37.850 --> 04:39.583 +for Emacs and my other vital programs. + +04:39.583 --> 04:41.533 +I don't need to make Emacs my WM, + +04:41.533 --> 00:04:42.899 +and bring along all the other issues. + +04:42.900 --> 04:45.383 +Browsers are a similar conversation. + +04:45.383 --> 04:46.883 +Initially, I understand the value + +04:46.883 --> 04:48.750 +of having my browser in Emacs, but why? + +04:48.750 --> 04:49.883 +If a tool exists that works well, + +04:49.883 --> 04:51.233 +ignoring the UNIX philosophy for a moment, + +04:51.233 --> 04:52.817 +why should I take the effort to rewrite it? + +04:52.817 --> 04:54.617 +Now, don't misinterpret what I'm saying. + +04:54.617 --> 04:56.083 +If you have a better way to do something: + +04:56.083 --> 04:57.583 +you can make it faster, easier to use, + +04:57.583 --> 04:58.717 +that I understand. + +04:58.717 --> 05:00.800 +But if I have, say, Nyxt or Firefox? + +05:00.800 --> 05:01.517 +Why would I take the effort + +05:01.517 --> 05:02.750 +to try and rewrite that into Emacs? + +05:02.750 --> 05:04.267 +Instead, this is a scenario + +05:04.267 --> 05:05.217 +where using a different tool + +05:05.217 --> 05:06.567 +alongside Emacs might be better. + +05:06.567 --> 05:08.433 +There's a talk later on in the conference + +05:08.350 --> 00:05:09.299 +about that from someone else. + +05:09.300 --> 05:12.017 +Vim. Even vim, jokingly, + +05:12.017 --> 05:13.500 +is the enemy of our community, + +05:13.500 --> 05:15.383 +but it's a good tool. + +05:15.383 --> 05:16.667 +Sometimes I just don't want to + +05:16.667 --> 05:17.983 +run Emacs as a daemon with evil-mode + +05:17.983 --> 05:19.883 +and I just want to quickly do something. + +05:19.883 --> 05:21.267 +And most people come from + +05:21.267 --> 05:22.733 +a power user terminal background, + +05:22.733 --> 05:24.167 +or at least I would assume s,. + +05:24.167 --> 05:25.900 +and those I have spoken with. + +05:25.900 --> 05:27.150 +If I need to quickly edit something, + +05:27.150 --> 06:40.960 +it might benefit me to + +05:27.840 --> 05:29.917 +just run a quick vim ./file + +05:29.917 --> 05:30.333 +in the terminal. + +05:30.333 --> 05:32.183 +I often have terminals open anyway + +05:32.183 --> 05:33.417 +due to the graphic acceleration + +05:33.417 --> 05:36.880 +from things like Alacritty. + +05:34.639 --> 05:36.167 +Speaking of terminals, + +05:36.167 --> 05:38.383 +this is the main tool I don't use in Emacs. + +05:38.383 --> 05:39.850 +While vterm might be nice, + +05:39.850 --> 05:41.433 +I often want to use a TUI tool. + +05:41.433 --> 05:43.667 +I most often write programs in C or Rust + +05:43.667 --> 05:45.200 +due to those being my main languages + +05:45.200 --> 05:46.050 +that I use professionally. + +05:46.050 --> 05:48.250 +If I can write a faster C or Rust program + +05:48.250 --> 05:49.400 +in half the time it'll take for me + +05:49.400 --> 05:50.483 +to write a slower Elisp one, + +05:50.483 --> 05:52.283 +I might prefer to do just that. + +05:52.283 --> 05:53.633 +Especially in the case of a TUI program, + +05:53.633 --> 05:55.517 +Alacritty helps me develop them faster + +05:55.517 --> 05:58.800 +but also run them. + +05:56.639 --> 05:58.850 +So if you've been using systemd + +05:58.850 --> 06:00.500 +or running commands in the terminal for years, + +06:00.500 --> 06:03.680 +it might take more effort to learn + +06:01.680 --> 06:05.039 +the way to do it in an Emacs frontend + +06:03.680 --> 06:04.933 +than in the terminal. + +06:04.933 --> 06:07.117 +And remember, most shells come with + +06:07.117 --> 06:07.567 +Emacs key bindings by default + +06:07.567 --> 06:09.350 +and macOS, for example, + +06:09.350 --> 06:11.200 +can use Emacs keybindings in most places + +06:11.200 --> 00:06:12.232 +including browsers. + +06:12.233 --> 06:13.567 +Do what helps you most, + +06:13.567 --> 06:17.360 +not what a philosophy or group tells you to do. + +06:16.000 --> 06:17.467 +I hope this illustrated some ways + +06:17.467 --> 06:18.750 +that Emacs is a tool in your belt, + +06:18.750 --> 06:19.733 +but not the belt itself. + +06:19.733 --> 06:22.800 +Do what works best for you, + +06:21.520 --> 06:22.717 +as being the most efficient + +06:22.717 --> 06:24.233 +doesn't always grant the best results. + +06:24.233 --> 06:25.983 +If you're used to doing something one way, + +06:25.983 --> 06:27.183 +consider still doing it that way + +06:27.183 --> 06:28.117 +while learning new skills + +06:28.117 --> 06:29.250 +and being adaptable. And after all, + +06:29.250 --> 06:30.683 +this is an Emacs conference + +06:30.683 --> 06:32.150 +so maybe consider learning a tool + +06:32.150 --> 06:33.517 +for both Emacs and the terminal, + +06:33.517 --> 06:34.367 +and then you might be + +06:34.367 --> 06:36.720 +just a little bit more flexible + +06:35.440 --> 06:40.960 +in the future. + +06:36.720 --> 06:40.960 +Thank you for listening to my talk today. |