4 ms·
Julia in the long term
by RobLach 6y ago
Julia in the long term
- waynesonfire 6y agoany resources that i can check out to get a feel for how julia handles numbers?
- igravious 6y agoA second recommendation for Julia. What's the deal with it?
- eigenspace 6y agoJulia is a really interesting language that was designed around some people's dissatisfaction with the languages traditionally used in scientific computing. One of the core ideas is a high degree of modularity and composability. I think the way it's type system and multiple and dispatch work really nicely reflects a lot of ideas in mathematics and make it easy to implement and extend mathematical ideas.
- ChrisRackauckas 6y agoJulia allows for "fast" definitions and and multiple dispatch makes it easy to incorporate into existing code. By "fast" I mean if you make it an immutable struct, it'll inline the bytes into arrays and stuff like that, so it'll be as though it was hardcoded bytes at the end of the day. This is crucial because Julia's floating point numbers are defined in Julia and had to be fast enough to match C, so now when you define a weird number type you get the same machinery for free. But then multiple dispatch is really the kicker here, since if you ask, what is machine learning with surreal numbers like? Well, in Julia, if you give the Flux ML library surreal numbers, it'll recompile everything so it uses surreal numbers and it'll do it fast, so there you go: take the surreal number library, take Flux, slap them together and now you have a pretty well-optimized implementation of surreal number machine learning (and then of course you can optimize it more, since it'll not be able to use CuDNN with surreal numbers so then you write etc. etc. in the language). (Note: SurrealNumbers.jl won't get some of the optimizations by its design, so that's an opening for some work)
- igravious 6y agoCool. Does it do tail recursion elimination? My Ruby implementation is so slow because all the naive surreal number ops are recursive.