Julia: Come for the Syntax, Stay for the Speed
nature.com
nature.com
But the main complaint I see and completely agree is that it feels very slow. You want to import the plotting library? Write 'using Plots' and wait 3 minutes. You want to use a function just once? Too bad, you wait 10 times the amount of time you would wait if you ran that in python (If you run the function again, it is almost instant since it is now compiled).
I get this is what allows Julia to be such an effective language but there still is a lot of room for improvement. But for those of you that are interested in it, give it a try and you will enjoy how powerful the language is. For example you can have hundreds of lines of complex algebra functions and by just adding a line to the top like 'input = gpuarray(input)' and now all your code is 100 times faster because it magically runs on your gpu. Another favorite feature for me is function broadcasting. Simple example 'lowercase(x)' gives lowercase version of string x. You have a matrix of strings that you want to lowercase? Simply write 'lowercase.(s_matrix)' These features and excellent packages that provide parallelization makes an excellent language. I mostly use Julia for computation heavy tasks, if the compilation times were reduced it would be my go to language for all kinds of tasks.
One immediate solution is to use PackageCompiler.jl [2] to build a Julia image that includes a pre-compiled version of the slow code (packages).
Julia is a fun language to use because it has a great repl and a pleasant enough syntax.
There is a chance that I might switch over some day. I also like how easy it is to call out to other languages with Julia. Also, the occasional long load times because of the LLVM stuff does not bother me.
Julia’s community focus on scientific computing, but I’m sure in five years time, nobody is gonna bat an eye when a Julia ship do their infrastructure scripting in Julia (while we’ll still bat an eye at R shops doing that in R)
Started it up again, proceeded with 'using ThinkJulia' which spit out a warning about updating a manifest file and to try 'Pkg.resolve()' which I did. It gave me an error, 'Pkg not defined'. Spent a few minutes failing to get the turtle, but did somehow wind up back in pkg mode which I still don't know how to get out of. To hell with that tutorial.
The authors don't seem to have touched it since their O'Reilly book was published.
I think it makes more sense than escape, actually, but everyone is so used to using escape that it's not too strange to not think of it.
Julia's syntax reads more like Ruby than any of the three named. And yet no mention of it.
For me it was surprisingly easy to move my math heavy code from Ruby to Julia, and got a 30x speedup.
A kind of Lisp with Algol-like syntax.
Lisp is the alien technology, not Clojure.