> Sure, they're opaque but I'm saying that they're opaque for a reason. AD is an entire field of research. As is optimization.
I don't entirely understand the details, but there are some features of Julia as a language that allow you to do some truly new things with respect to AD (and maybe eventually optimization algorithms themselves, or even the underlying linear algebra). Between metaprogramming and JIT, you can specialize the run-time code that gets executed for a particular problem, improving speed and memory use in a way that isn't possible in a general-purpose C library. That's part of the vision, anyway. > There's Linuxbrew. On Windows you're out of luck, I guess but then you have worse concerns than brew ;) There's even a winbrew fork too, but I don't get the impression linuxbrew or winbrew are truly production-capable the way brew is on OSX. I don't expect Windows to have properly tuned performance (multithreading in particular is going to be messier), but if you want students, industry types, and regular people to be able to use your code then Windows should at least work for prototyping. I've never had a completely successful experience trying to install a Python package on Windows, ever. Julia has a chance to avoid these pitfalls. > I agree but Julia is a moving target too. Understandably so, but a moving target still. Julia's definitely still at a "best for early adopters" stage. I'm not ready to throw away all the Matlab toolboxes we've written and use on a day-to-day basis in my lab. But a moving target means a very active development community, which is a better sign for long-term viability than finished-product maintenance-mode codebases. > Want to run your algorithm with BigFloat precision? I usually don't. But I do want to run it in parallel, shared or distributed memory or a combination of both without having to think about it, on a GPU, or code-generated to a custom fixed-point FPGA. None of these are done and ready today, but these things will be much easier to do in Julia in a few years than through any existing state of the art C code.
