3 ms·
Yes, I have, and Julia does look nice. It clearly has some very good libraries for scientific computing, and its syntax looks (to me) like an interesting combi
by jboy 11y ago
Yes, I have, and Julia does look nice. It clearly has some very good libraries for scientific computing, and its syntax looks (to me) like an interesting combination of Python (which I like) and Matlab (which I don't like).
Aside from an entirely-subjective preference that caused me to fall in love with Nim at first sight, there are practical reasons for choosing Nim over Julia.
The overarching reason is that there is much more Python code in the world than Nim or Julia put together, and I think it will remain this way for a long time. (My startup previously worked almost completely in Python, for example, aside from some C or C++ extension modules and the usual Bash scripts for sysadmin.) Python also has some solid webserver frameworks, and is great for a variety of general-purpose tasks.
So, I wanted a solution that would enable us to incrementally rewrite code as necessary, without needing to rewrite everything from Python all at once. Also, I have no desire to rewrite our webserver code from Python. Flask & Django are just fine.
As I understand it (and please correct me if I'm wrong), Julia doesn't compile to C. So I can't compile snippets of Julia code and call them from my Python main-loop.
In contrast, not only is this possible in Nim, but Nim's macro system & well-developed AST spec make it very easy to traverse my Nim procs during compilation, to auto-generate per-proc wrapper code in C.
- boyd 11y agoHey -- working on similar things here. Would love to follow up but don't see your email in your profile. Mind adding it or sending me a note? (mine is in my profile) Cheers!
- jboy 11y agoGreat! Email sent to the address in your profile.
- malmaud 11y agoYou're right that you can't compile Julia to static libraries (yet). Calling Julia from Python is not very mature at the moment, but calling Python from Julia is actually pretty robust via PyCall.jl (https://github.com/stevengj/PyCall.jl https://github.com/stevengj/PyCall.jl).
- deleted 11y ago[deleted]