diff options
Diffstat (limited to '')
| -rw-r--r-- | 2024/talks/julia.md | 130 | 
1 files changed, 130 insertions, 0 deletions
| diff --git a/2024/talks/julia.md b/2024/talks/julia.md new file mode 100644 index 00000000..ba610a75 --- /dev/null +++ b/2024/talks/julia.md @@ -0,0 +1,130 @@ +[[!meta title="Exploring shared philosophies in Julia and Emacs"]] +[[!meta copyright="Copyright © 2024 Gabriele Bozzola"]] +[[!inline pages="internal(2024/info/julia-nav)" raw="yes"]] + +<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing --> +<!-- You can manually edit this file to update the abstract, add links, etc. ---> + + +# Exploring shared philosophies in Julia and Emacs +Gabriele Bozzola (he/him/his) - GitHub: @sbozzolo Website: <https://sbozzolo.github.io> LinkedIn: gabrielebozzola + +[[!inline pages="internal(2024/info/julia-before)" raw="yes"]] + +While seemingly disparate, the Julia programming language and Emacs share a +surprising kinship. This talk delves into the common design principles and +philosophies that unite these powerful tools, focusing on their shared +emphasis +on extensibility, customization, and interactive development. I'll explore +how +both Julia and Emacs empower users to tailor their experience through +powerful +metaprogramming and a rich ecosystem of extensions. I'll discuss the +REPL-driven workflows that foster exploration and experimentation in both +environments. Furthermore, I'll examine how their active and passionate +communities drive innovation. + + +# Discussion + +## Questions and answers + +-   Q: As someone who uses Julia, Emacs and Julia *in* Emacs, I feel +    like Julia's integration with Emacs is lacking.  I haven't found +    any way to debug Julia code that works as well as edebug for elisp, +    SLY/SLIME for common lisp, or gdb for many other languages (with gud +    or realgud).  Both Debugger.jl and Infiltrator.jl are difficult to +    use interactively. Do you have any suggestions for interactive +    debugging of Julia code in Emacs? (Adding to my question: Do other +    editors do a better job of interactive Julia debugging?) +    -   A: GB: Debbuger.jl and Infiltrator.jl are the main debugging +        tools available in Julia at the moment. Both of them are not +        great (yet) and can use some work. Debugger is going to see +        major performance improvements in future releases thanks to work +        in the core language. Unfortunately, I don't see anything +        better for interactive debugging that is avilable now or in the +        near future. Most of the julia community is clustered around VS +        code, but the situation is not better +-   Q: Can you call out something that Julia has that Emacs does not, and +    which could benefit Emacs? +    -   A: GB: The Julia community is active and more tightly knit than +        other communities (e.g., the Python one), JuliaCon is an +        in-person event that brings people together. Emacs is also doing +        great in this. +-   Q: Is there a way to use lisp syntax with Julia, like hy for python +    or lisp flavoured erlang? +    -   A: Julia used to have a femtolisp interpreter built-into its +        REPL. +    -   A: GB: I am not aware, but it might be possible to write a +        package to do that. +-   Q: Have you tried the Julia Snail package for Emacs?  It tries to be +    like SLY/SLIME for Common Lisp. +    -   A: GB: Yes, but I settled on julia-repl (with vterm). I didn't +        test julia-snail too much because I found julia-repl easier to +        setup and use the way I wished. +-   Q: Along the same lines as question 1 \-- is there a data inspector +    for a Julia REPL available that you can use in Emacs? +    -   A: good mode, other good tooling; room for improvement in this +        area +    -   A: GB: No, I don't think anything of that sort is available  +-   Q: Have you tried literate programming Julia (using Org babel or +    some other means) in Emacs? +    -   A: Literate programming in Julia: Pluto (Jupyter-style, in the +        browser), emacs-jupyter (in Emacs) + +## Notes + +- Great, now I wanna learn Julia\... :-) +  - Highly recommend it. Especially if you do any sort +    of scientific computing. It's an amazing language +- Lots of things to like. Perhaps the most Dylan-like modern +  language?  +- Got me interested in Julia, great talk +- Sooooo emacs written in julia? +- Amazing, thank you +- M-x clap +- Great talk \[13:10\] +- Thank you for the talk! \\o/ +- Thank you! +- I've been so happy ditching python for julia for all +  my scientific research needs :) +- Some of these features, like the interactivity and the decompiler +  reminds of Common Lisp +- One of Julia's best features (multiple dispatch) was inspired by +  Common Lisp's defgeneric/defmethod. +  - I would also add that Julia takes the idea further than Common +    Lisp ever did, because you can't opt-out of being generic in +    Julia, so it's everywhere and used pervasively. +  - In Common Lisp, you had to opt-in, so it wasn't as apparent how +    powerful this way of organizing code could be. +- Got me interested in Julia, great talk +- Sooooo emacs written in julia? +- akirakyle: First Guile Scheme (re: Robin's talk, next), +  then Julia! ;-) +- Yes ;) +- So julia is like using CLOS everywhere? +- Sort of, but with the llvm runnig full optimized +  native code generation for every argument type a function is called +  with +- also julia \--lisp is built in! +- emacs-jupyter works with julia quite well btw +- org-babel also works well +- def looking forward to the julia talk +- It would be great to integrate pluto with emacs, but currently very hard to figure out best way to do so +- That would be interesting for sure +- Pluto.run(auto_reload_from_file=true) is the best right now +  - Problem is pluto is very tied to browser +  - I dislike leaving emacs for things +  - But Pluto is a great tool +  - Same, I suppose one could alternatively say the problem is emacs can't be very easily tied to the browser +  - As opposed to vscode where such integrations are easier +  - Although, on the other hand, I am happy emacs isn't tied to a browser +  - It's better in general +  - Yes it shouldn't be tied to a browser, but it also would be very helpful for emacs to have better access to rendering content that requires a dom/js environment in an emacs window + + +[[!inline pages="internal(2024/info/julia-after)" raw="yes"]] + +[[!inline pages="internal(2024/info/julia-nav)" raw="yes"]] + + | 
