summaryrefslogtreecommitdiffstats
path: root/2024/captions/emacsconf-2024-julia--exploring-shared-philosophies-in-julia-and-emacs--gabriele-bozzola--answers.vtt
blob: d37f80ef605b31ca6b756db335012deccaab99e5 (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
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
WEBVTT

NOTE Q: Do you have any suggestions for interactive debugging of Julia code in Emacs?

00:00.089 --> 00:00.829
... answer to that. I, I think the infrastructure for an

00:01.509 --> 00:14.192
ecosystem in Julia in general is as mature as other

00:01.509 --> 00:14.192
languages, and even debugger infiltrator themselves are

00:01.509 --> 00:14.192
not particularly well developed. And so I don't think

00:15.853 --> 00:19.214
there's much we can do about that right now. I think that it's

00:21.570 --> 00:28.057
unfortunate that most of the development for these type of

00:21.570 --> 00:28.057
tools is tightly linked to VS code. But even there, I don't

00:29.218 --> 00:36.225
think that there's much done in terms of interactive

00:29.218 --> 00:36.225
debugging. So I, yeah, I think this has to be worked on mostly

00:36.866 --> 00:43.213
on the Julia side first. And then probably Emacs can get

00:43.820 --> 00:48.303
something out of that. I know that there's development in

00:49.183 --> 00:57.728
debugger.jl itself for future releases to make it at least

00:49.183 --> 00:57.728
faster and more stable. But yeah, I think we're not there as

00:58.809 --> 01:03.852
Julia community itself. So let alone Emacs, integration

01:04.192 --> 01:07.234
with Emacs. The way I personally debug is mostly using,

01:08.286 --> 01:15.508
well, debugger and infiltrator with Julia REPL mode in

NOTE Q: Can you call out something that Julia has that Emacs does not, and which could benefit Emacs?

01:08.286 --> 01:15.508
Emacs. The second question, can you call out something that

01:18.009 --> 01:24.891
Julia has that Emacs does not and which could benefit Emacs?

01:26.852 --> 01:27.852
Nothing stands out to me except the usual multi-threading

01:28.848 --> 01:32.552
and things like this. I don't necessarily see something

01:33.432 --> 01:46.783
that Julia has going on that DMX doesn't have, but I see some

01:33.432 --> 01:46.783
differences and approaches that I think are important,

01:33.432 --> 01:46.783
like the community. I think Julia is a very active and tight

01:47.384 --> 01:50.266
community. Julia uses Slack and is very, very active. I

01:54.093 --> 01:57.736
think he might say something like that, but it's maybe more

01:54.093 --> 01:57.736
on Reddit, IRC. JuliaCon is big and brings together lots and

01:59.078 --> 02:02.381
lots of people. And I think the sense of community is really

02:03.221 --> 02:05.263
powerful. It's very easy to essentially meet people that

02:06.364 --> 02:16.834
are interested in what we're building and interested in

02:06.364 --> 02:16.834
what we're doing and interested in Julian, our, you know,

02:06.364 --> 02:16.834
hacker spirit. I think Emacs is a very strong community.

02:21.228 --> 02:26.151
We're here on a Saturday talking about Emacs, which again

02:21.228 --> 02:26.151
proves that we are doing this. But I'd like to emphasize that

02:27.192 --> 02:35.696
the community is a really important aspect in Julia that I

02:27.192 --> 02:35.696
think we should double down on our side. The next question is

NOTE Q: Is there a way to use lisp syntax with Julia, like hy for python or lisp flavoured erlang?

02:36.797 --> 02:44.841
about Lisp syntax with Julia, like what we can do in Python.

02:48.038 --> 02:53.180
I don't think that's, I don't, I am not aware of any package

02:48.038 --> 02:53.180
that does that. I would bet that there's something there. I

02:56.722 --> 02:58.063
think that that's possible. Indeed, there used to be a Lisp

02:59.243 --> 03:07.027
interpreter in Julia itself until the latest release. The

03:07.647 --> 03:12.229
syntax parsing was done with a Lisp, it was called TemtoList

03:07.647 --> 03:12.229
indeed. I think this got rid, get rid of this for our more

03:16.124 --> 03:23.489
Julia-based solution that is faster and with better code

03:16.124 --> 03:23.489
provenance. I think that it should be possible to use the

03:25.430 --> 03:35.437
metaprogramming features in Julia to change the structure

03:25.430 --> 03:35.437
of your syntax to be a Lispy syntax. I do want to emphasize

03:36.238 --> 00:03:44.664
that Julia is heavily inspired by Lisp, so I wouldn't be

03:36.238 --> 03:44.664
surprised if if something like this were possible.

03:49.309 --> 00:03:51.167
I have tried Julia Snail.

NOTE Q: Have you tried the Julia Snail package for Emacs? It tries to be like SLY/SLIME for Common Lisp.

00:03:51.168 --> 00:03:51.070
So the next question is about Julia

03:51.270 --> 03:52.712
Snail. I found Julia REPL to be a little bit easier to set up

03:53.312 --> 03:58.436
and use. So I just settled on that. I should maybe revisit

04:00.918 --> 04:03.480
that. In particular, I use the Julia REPL with the vterm

04:03.720 --> 04:11.406
backend, which essentially makes a companion REPL to my

04:03.720 --> 04:11.406
scripts. And that works for me. I do think that the tooling

04:15.638 --> 04:16.518
uh, could be improved. I think there is definitely much room

04:17.399 --> 04:22.040
and I would like to see improvement in that area. Um, and, uh,

NOTE Q: Is there a data inspector for a Julia REPL available that you can use in Emacs?

04:22.940 --> 04:28.322
so we have data inspector for Julia REPL.

04:32.043 --> 04:34.784
I don't think so. I don't, is there any data inspector

04:34.804 --> 04:39.826
in for, for the Julia REPL that we can use in Emacs?

04:43.223 --> 00:04:43.489
I'm not sure. I don't think so.

00:04:44.840 --> 00:04:47.839
I think the way I look at data is

00:04:47.840 --> 00:04:50.519
essentially ignoring Emacs when encoded. It's just using the

00:04:50.520 --> 00:04:54.759
REPL. And again, with Julia REPL. So I'm not aware of any

00:04:54.760 --> 00:04:57.720
specialized tool And again, maybe this is, again, a good

04:58.652 --> 05:05.595
moment to emphasize that tooling, the Julia community

04:58.652 --> 05:05.595
clusters around VS Code. And there is tools like the, pretty

05:06.315 --> 05:11.578
much all the work with VS Code, unfortunately. And while

05:12.578 --> 05:21.242
there's a very, very decent Julia mode and Julia repo mode

05:12.578 --> 05:21.242
and Julia snail, there's definitely, definitely room for

05:12.578 --> 05:21.242
improvement.

NOTE Q: Have you tried literate programming Julia (using Org babel or some other means) in Emacs?

05:24.443 --> 05:28.145
Next, we have a question about literate programming in

05:24.443 --> 05:28.145
Julia. I haven't done much of it with Org Babel or

05:29.505 --> 05:32.906
anything else. I haven't done much of it. I can say that Julia

05:35.827 --> 05:46.070
has developed a new iteration of notebooks called Pluto.

05:46.090 --> 05:48.471
Here I'm thinking about Jupyter notebooks. The Pluto

05:51.021 --> 06:02.988
notebooks for Julia try to remove a bunch of the pain points

05:51.021 --> 06:02.988
that Jupyter notebooks have, meaning you cannot easily

05:51.021 --> 06:02.988
commit them to Git or things like this.

06:06.450 --> 06:09.152
I haven't used them, but I know some people are very fond of

06:06.450 --> 06:09.152
them. And so I think that that's what some of the Julia

06:09.872 --> 06:15.195
community would use for notebooks. And I think they can

06:15.315 --> 06:19.298
interact with Emacs with no problem. And that would be a form

06:20.974 --> 06:23.035
of later programming. But if you can do it in Python, you can

06:24.015 --> 06:27.696
do it in Julia. I think there is no reason. And actually, you

06:30.617 --> 06:38.719
can take advantage of all this just-in-time or

06:30.617 --> 06:38.719
just-out-of-time compilation by keeping the same

06:30.617 --> 06:38.719
session. So I think it will be definitely a nice use case. So

06:44.681 --> 06:47.222
these are the questions that I see here. I'm going to scroll

06:48.561 --> 06:54.486
through the comments and see if there's something that I

06:48.561 --> 06:54.486
should say about comments. I'm excited people want to learn

06:56.228 --> 06:57.669
Julia. I have to say that if I want to do GPU computing

06:58.990 --> 07:06.757
nowadays, I find it much easier to do it with Julia than with

06:58.990 --> 07:06.757
CUDA. So I encourage people to look into that. And I do,

07:11.758 --> 07:26.807
again, I would like to share what makes me excited about

07:11.758 --> 07:26.807
Emacs, about this being open, being collaborative, being

07:11.758 --> 07:26.807
respectable with documentation is something that I find in

07:11.758 --> 07:26.807
Julia. So I think people that are excited about the same

07:27.367 --> 07:35.192
features will find a little bit of joy in working with Julia.

07:38.214 --> 07:39.675
I think I addressed what I have here. I don't know if there's

07:40.189 --> 07:43.532
anything else that I should add.

07:51.718 --> 07:54.000
It took me a minute to unmute there.

00:07:54.040 --> 00:07:58.399
No, I think that was awesome. And thank you so much.

00:07:58.400 --> 00:08:00.399
I guess I thought it would

00:08:00.400 --> 00:08:06.559
collapse that shared area on BBB, my mistake, on the stream,

00:08:06.560 --> 00:08:12.399
or I would have left it open. But in any case, no, I thought

00:08:12.400 --> 00:08:15.079
that was great. You did a great job of responding to all the

00:08:15.080 --> 00:08:17.879
questions and comments. And thank you again so much for your

00:08:17.880 --> 00:08:20.920
talk and getting us all excited to learn Julia. Thank you.

08:24.094 --> 08:25.275
Enjoy EmacsConf. And again, thanks so much for attending,

08:25.335 --> 08:30.220
for being EmacsConf. Thank you.