ted.neward@newardassociates.com | Blog: http://blogs.newardassociates.com | Github: tedneward | LinkedIn: tedneward
Get a big-picture overview
Learn how to get started
Explore some core parts of the language
https://julialang.org/
compiled (via LLVM)
complex and rational numbers
object-oriented and functional via multiple dispatch
dynamically-typed
parallel, async, multithreaded processing
implicit distribution capabilities
metaprogramming (code is data is code)
Julia distributed invocations
$ julia -p 2 julia> r = remotecall(rand, 2, 2, 2) Future(2, 1, 4, nothing) julia> s = @spawnat 2 1 .+ fetch(r) Future(2, 1, 5, nothing) julia> fetch(s) 2×2 Array{Float64,2}: 1.18526 1.50912 1.16296 1.60607
With some interesting metaprogramming support
julia> ex1 = Meta.parse("1 + 1") :(1 + 1) julia> dump(ex1) Expr head: Symbol call args: Array{Any}((3,)) 1: Symbol + 2: Int64 1 3: Int64 1 julia> ex2 = Expr(:call, :+, 1, 1) :(1 + 1) julia> ex1 == ex2 true julia>
Hosting Julia in native code
#include <julia.h> JULIA_DEFINE_FAST_TLS int main(int argc, char *argv[]) { jl_init(); /* run Julia commands */ jl_eval_string("print(sqrt(2.0))"); jl_atexit_hook(0); return 0; }
$ gcc -o test -fPIC -I$JULIA_DIR/include/julia -L$JULIA_DIR/lib -Wl,-rpath,$JULIA_DIR/lib test.c -ljulia
Homebrew (macOS, Linux): brew install julia
Chocolatey (Windows): choco install julia
Downloads: https://julialang.org/downloads/
Build from source: https://github.com/JuliaLang/julia
Hello, world
println("Hello, world!")
Run
julia hello.jl
Or run interactively
$ julia _ _ _ _(_)_ | Documentation: https://docs.julialang.org (_) | (_) (_) | _ _ _| |_ __ _ | Type "?" for help, "]?" for Pkg help. | | | | | | |/ _` | | | | |_| | | | (_| | | Version 1.9.1 (2023-06-07) _/ |\__'_|_|_|\__'_| | Official https://julialang.org/ release |__/ | julia> print("Hello world") Hello world julia>
--project=
dir: Set dir as the home project/environment
-p
/--procs
: Launches N additional local worker processes
--machine-file
file: Run processes on hosts listed in file
a high-level language
... with some great performance characteristics
... and features to make it data-/scientific-friendly
Architect, Engineering Manager/Leader, "force multiplier"
http://www.newardassociates.com
http://blogs.newardassociates.com
Sr Distinguished Engineer, Capital One
Educative (http://educative.io) Author
Performance Management for Engineering Managers
Books
Developer Relations Activity Patterns (w/Woodruff, et al; APress, forthcoming)
Professional F# 2.0 (w/Erickson, et al; Wrox, 2010)
Effective Enterprise Java (Addison-Wesley, 2004)
SSCLI Essentials (w/Stutz, et al; OReilly, 2003)
Server-Based Java Programming (Manning, 2000)