It also has limited functionality for recovery from faults, and that's a huge problem in cloud computing because resources are not dedicated hardware, they're not big supercomputing machines that have extremely high reliability. They're virtual machine instances in a cloud somewhere, and it's not uncommon for a resource to just disappear.
InfoWorld: How does Julia overcome these issues with cloud computing?
Karpinski: Well, these aren't solved problems. These are things that we're still working on, but we have a simpler model for building a large parallel applications via a global distributed address space. This means that you can hold a reference to an object that lives on another machine participating in a computation. You can manipulate references easily and pass them around between machines, making it easy to keep track of what's being computed where. Also, you can add machines in midcomputation. We haven't yet built the facility for removing machines midcomputation because we thought this was less of a pressing issue. But if you realize partway through a computation that you want more machines because you want the computation to go faster, you can do that.
InfoWorld: Would you use Julia for big data applications, data analysis, that sort of application?
Karpinski: It depends on what you mean by big data. "Big data" is a very overloaded term at this point. But I think a lot of, for example, predictive analysis, modeling problems are often linear algebra problems, and graph analysis problems are also something that Julia would be good at tackling. Certain kinds of applications are probably better addressed by a traditional technology like Hadoop. If you have a lot of things to count, Hadoop is perfect. If you want to compute a large matrix factorization, Hadoop is absolutely atrocious. That's the kind of place where Julia would be a stellar choice.
InfoWorld: You're not going to use Julia to develop, say, an accounting application or a mobile application, would you?
Karpinski: We actually have plans to develop a compiler. And once you have a compiler, you could write Julia code for embedded and mobile applications.
InfoWorld: When would that compiler be ready?
Karpinski: Probably sometime in the next year.
InfoWorld: The Web page says, "Julia's LLVM-based just-in-time compiler combined with the language's design allow it to approach and often match the performance of C, C++." What was your intent in approaching or matching the performance of C, C++?
Karpinski: C, C++, and I should also add Fortran, because it's another old compiled language and is known for its performance. Those are the gold standard, that's how you measure performance. If you can match or beat C++, you've made it.
InfoWorld: What's the exact status of Julia at this point?
Karpinski: It's a pre-1.0. We're shooting for 1.0 soon. [Version] 1.0 is a big commitment. To me, at least, and to the other core developers, it means that we're committing to a stable API.
InfoWorld: And this is available under an MIT license, correct?
Karpinski: Yes. The core is available under MIT, which is very permissive.
InfoWold: Why the name, Julia?
Karpinski: That's everybody's favorite question. There's no good reason, really. It just seemed like a pretty name.
This article, "New Julia language seeks to be the C for scientists," was originally published at InfoWorld.com. Follow the latest developments in business technology news and get a digest of the key stories each day in the InfoWorld Daily newsletter. For the latest developments in business technology news, follow InfoWorld.com on Twitter.