summaryrefslogblamecommitdiffstats
path: root/2024/captions/emacsconf-2024-julia--exploring-shared-philosophies-in-julia-and-emacs--gabriele-bozzola--answers.vtt
blob: d37f80ef605b31ca6b756db335012deccaab99e5 (plain) (tree)

























































































































































































































































































































































                                                                                                        
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.