Add a section on Julia programming

This commit is contained in:
Gerard Vermeulen 2024-02-26 19:15:11 +01:00
parent cb0f863e24
commit 894dfcfb5f

View File

@ -5865,7 +5865,8 @@ byte code:
:CUSTOM_ID: sec:go-programming
:END:
1. [[https://gobyexample.com/][Go by example]]
Links for further investigation are:
1. [[https://gobyexample.com/][Go by example]] is a showcase of short examples with explanations.
#+caption[Setup Go programming]:
#+caption: Setup Go programming.
@ -5881,6 +5882,59 @@ byte code:
(add-to-list 'auto-mode-alist `(,(rx ".go" eos) . go-ts-mode)))
#+end_src
** [[https://julialang.org/][Julia programming]]
:PROPERTIES:
:CUSTOM_ID: sec:julia-programming
:END:
Links for further investigation are:
1. Application of the [[https://docs.julialang.org/en/v1/stdlib/Pkg/][Julia Pkg documentation]] requires {{{kbd(M-x term)}}} or a
terminal because the inferior Julia interpreter provides no genuine terminal.
2. [[https://github.com/emacs-ess/ESS/wiki/Julia][ESS support for the Julia language]] is a somewhat outdated description of how to
obtain [[https://julialang.org/][Julia]] support for [[https://ess.r-project.org/][Emacs Speaks Statistics]] and [[https://www.gnu.org/software/emacs/][Emacs]].
3. [[https://www.packtpub.com/product/hands-on-design-patterns-and-best-practices-with-julia/9781838648817][Hands-On: Design Patterns and Best Practices with Julia]] is a Julia book with
good reviews.
4. [[https://juliabyexample.helpmanual.io/][Julia by example]] is a showcase of 1- or 2-liners.
5. [[https://nostarch.com/practical-julia][Practical Julia]] is Julia book with good reviews.
6. The list of installed packages in listing [[lst:list-julia-packages-result]]
facilitate [[https://orgmode.org/worg/org-contrib/babel/languages/ob-doc-julia.html][Julia Code Blocks in Babel]] because the list contains [[https://github.com/JuliaData/CSV.jl][CSV]] and
[[https://dataframes.juliadata.org/stable/][DataFrames]].
Listing [[lst:setup-julia]] setups [[https://julialang.org/][Julia]] support but requires manual tweaking of
[[../VCS/ESS/Makefile][Makefile]] to replace [[https://en.wikipedia.org/wiki/Sed][sed]] with [[https://formulae.brew.sh/formula/gnu-sed][gsed]] and of [[../VCS/ESS/lisp/ess-autoloads.el][ess-autoloads.el]].
#+caption[Setup Julia programming]:
#+caption: Setup Julia programming.
#+name: lst:setup-julia
#+begin_src emacs-lisp -n :results silent
(push (expand-file-name "~/VCS/ESS/lisp") load-path)
(when (require 'ess-julia nil 'noerror)
(setopt inferior-julia-program (executable-find "julia"))
(require 'ob-julia)
(ensure-package-installation 'eglot-jl))
#+end_src
#+caption[List installed Julia packages]:
#+caption: List installed Julia packages.
#+name: lst:list-julia-packages
#+header: :wrap "src toml -n"
#+begin_src shell :exports both :results raw
cat "$HOME/.julia/environments/v1.10/Project.toml"
#+end_src
#+caption[List installed Julia packages result]:
#+caption: List installed Julia packages result.
#+name: lst:list-julia-packages-result
#+RESULTS: lst:list-julia-packages
#+begin_src toml -n
[deps]
CSV = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b"
DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0"
IJulia = "7073ff75-c697-5162-941a-fcdaad2a7d2a"
LanguageServer = "2b0e0bc5-e4fd-59b4-8912-456d1b03d8d7"
Pkg = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f"
Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80"
#+end_src
** [[https://www.seas.upenn.edu/~chaoliu/2017/09/01/python-programming-in-emacs/][Python programming]]
:PROPERTIES:
:CUSTOM_ID: sec:python-programming