Cuttings: The Breakings of Julia The Breakings of Julia | Cuttings
Things of interest.


 
December 15, 2017

The Breakings of Julia


The low-level diving tinkerability of Julia.

I haven’t explored Julia. But this is an interesting point to consider:

I read about Julia a while back, and thought it sounded cool, but not like something I urgently needed. Julia is a dynamic language with great performance. That’s nice, I thought, but I’ve already invested a lot of time putting a Ferrari engine into my VW Beetle — why would I buy a new car? Besides, nowadays a number of platforms — Java HotSpot, PyPy, and asm.js, to name a few — claim to offer “C performance” from a language other than C.

Only later did I realize what makes Julia different from all the others. Julia breaks down the second wall — the wall between your high-level code and native assembly. Not only can you write code with the performance of C in Julia, you can take a peek behind the curtain of any function into its LLVM Intermediate Representation as well as its generated assembly code — all within the REPL. […]

Bam — you can go from writing a one-line function to inspecting its LLVM-optimized X86 assembler code in about 20 seconds.

So forget the stuff you may have read about Julia’s type system, multiple dispatch and homoiconi-whatever. That stuff is cool (I guess), but if you’re like me, the real benefit is being able to go from the first prototype all the way to balls-to-the-wall multi-core SIMD performance optimizations without ever leaving the Julia environment.



 

 
© 1997 - 2018 / Info