Читать книгу Computational Statistics in Data Science - Группа авторов - Страница 61
4.2 Julia
ОглавлениеJulia is a new language designed by Bezanson et al. and was released in 2012 [27]. Julia's first stable version (1.0) was released in August 2018. The developers describe themselves as “greedy” – they want a software application that does it all. Users no longer would create prototypes in scripting languages than port to C or Java for speed. Below, we quote from Julia's public announcement (https://julialang.org/blog/2012/02/why‐we‐created‐julia):
We want a language that's open source, with a liberal license. We want the speed of C with the dynamism of Ruby. We want a language that's homoiconic, with true macros like Lisp, but with obvious, familiar mathematical notation like MATLAB. We want something as usable for general programming as Python, as easy for statistics as R, as natural for string processing as Perl, as powerful for linear algebra as MATLAB, as good at gluing programs together as the shell. Something that is dirt simple to learn, yet keeps the most serious hackers happy. We want it interactive and we want it compiled.
Despite the stated goals, we classify Julia as an analysis software at this early stage. Indeed, Julia's syntax exhibits elegance and friendliness to mathematics. The language natively implements an extensive mathematical library. Julia's core distribution includes multidimensional arrays, sparse vectors/matrices, linear algebra, random number generation, statistical computation, and signal processing.
Julia's design affords speeds comparable to C due to it being an interpreted, embeddable language with a JIT compiler. The software also implements concurrent threading, enabling parallel computing natively. Julia integrates nicely with other languages including calling C directly, Python via PyCall, and R via RCall.
Julia exhibits great promise but remains nascent. We are intrigued by a language that does it all and is easy to use. Yet, Julia's underdevelopment limits its statistical analysis capability. On the other hand, Julia is growing fast with active support and positive community outlook. Coupling Julia's advantages and MATLAB's diminishing appeal, we anticipate Julia to contribute in the area for years to come.