3 ms·
I thought that notebook based development and package based development were diametrically opposed in the past, but Pluto.jl notebooks have changed my mind abou
by markkitti 3y ago
I thought that notebook based development and package based development were diametrically opposed in the past, but Pluto.jl notebooks have changed my mind about this.
A Pluto.jl notebook is a human readable Julia source file. The Pluto.jl package is itself developed via Pluto.jl notebooks.
https://github.com/fonsp/Pluto.jl https://github.com/fonsp/Pluto.jl
Also, the VSCode Julia plugin tooling has really expanded in functionality and usability for me in the past year. The integrated debugging took some work to setup, but is fast enough to drop into a local frame.
https://code.visualstudio.com/docs/languages/julia https://code.visualstudio.com/docs/languages/julia
Julia is the first language I have achieved full life cycle integration between exploratory code to sharable package. It even runs quite well on my Android. 2023 is the first year I was able to solve a differential equation or render a 3D surface from a calculated mesh with the hardware in my pocket.
- jampekka 3y agoPluto.jl does solve the state problem of notebooks, which is the biggest problem in them. Probably should give it another go. How is the module reloading story nowadays? Last time I gave up the state of the art was Revise.jl, which was a world of pain.
- staunton 3y ago> Pluto.jl does solve the state problem of notebooks Yes it does, unless you do crazy stuff (which you probably should put in a Julia file and let it precompile). The order of cells and execution order does not matter (unless you do crazy stuff).
- markkitti 3y agoA Pluto.jl notebook is also a regular file. You need to use a package for precompilation caching though.
- tamasgal 3y agoI have no idea what kind of problems you have ;) I use Revise.jl on a daily basis and it works flawlessly. I don't have any comparable workflow in any other language I work with on a daily basis. I wish I could do this style in those as well... Yes, you should give it a go (again)!
- staunton 3y agoI'm not sure how Revise would work with a notebook though... Guess it's only useful in the REPL, which is a different way to work.
- bobbylarrybobby 3y agoIn VSCode, in an ordinary Julia file you can place the magic comments `# %%` at the start of a code cell (needs to be on its own line), and then you can send these “cells” to the REPL to execute. No notebook needed.
- staunton 3y agoWhat do you do with it? Especially that benefits from Revise?
- jampekka 3y agoFor example these: https://timholy.github.io/Revise.jl/stable/limitations/#Limitations https://timholy.github.io/Revise.jl/stable/limitations/#Limi...
- Archit3ch 3y ago> It even runs quite well on my Android. 2023 is the first year I was able to solve a differential equation or render a 3D surface from a calculated mesh with the hardware in my pocket. Is that via webassembly or... ?
- markkitti 3y agoNo. Julia runs natively on ARM. julia> versioninfo() Julia Version 1.9.3 Commit bed2cd540a1 (2023-08-24 14:43 UTC) Build Info: Official https://julialang.org/ release Platform Info: OS: Linux (aarch64-linux-gnu) CPU: 6 × Cortex-A55 WORD_SIZE: 64 LIBM: libopenlibm LLVM: libLLVM-14.0.6 (ORCJIT, cortex-a55) Threads: 1 on 8 virtual cores
- uoaei 3y agoWould you expand on how you are running Julia on Android?
- markkitti 3y agoI run it via Termux and proot-distro: https://discourse.julialang.org/t/how-to-set-up-julia-on-android-termux/97289 https://discourse.julialang.org/t/how-to-set-up-julia-on-and...