Viral Shah, Ph.D. UCSB (CS) 2007 and CEO of Julia Computing, who subsequent to his UCSB degree created the very popular Julia language with co-founders Stefan Karpinski of UCSB, Alan Edelman of MIT, and Jeff Bezanson of MIT, has announced at JuliaCon2018 after nine years of enthusiastic reception of Julia's 0.x pre-release, Julia 1.0 has been released and taken the internet by storm!
Julia has its roots in the UCSB CS department, following on from Viral's Ph.D. work with Prof. John Gilbert on the Matlab*P language (which also included Ph.D. committee member and Julia co-founder Alan Edelman of MIT).
Excerpts from Julia 1.0 Release Blog:
"Scientific computing has traditionally required the highest performance, yet domain experts have largely moved to slower dynamic languages for daily work. We believe there are many good reasons to prefer dynamic languages for these applications, and we do not expect their use to diminish. Fortunately, modern language design and compiler techniques make it possible to mostly eliminate the performance trade-off and provide a single environment productive enough for prototyping and efficient enough for deploying performance-intensive applications. The Julia programming language fills this role: it is a flexible dynamic language, appropriate for scientific and numerical computing, with performance comparable to traditional statically-typed languages."
"A vibrant and thriving community has grown up around this language, with people from all around the world iteratively refining and shaping Julia in pursuit of that goal. Over 700 people have contributed to Julia itself and even more people have made thousands of amazing open source Julia packages. All told, we have built a language that is:
- Fast: Julia was designed from the beginning for high performance. Julia programs compile to efficient native code for multiple platforms via LLVM.
- General: It uses multiple dispatch as a paradigm, making it easy to express many object-oriented and functional programming patterns. The standard library provides asynchronous I/O, process control, logging, profiling, a package manager, and more.
- Dynamic: Julia is dynamically-typed, feels like a scripting language, and has good support for interactive use.
- Technical: It excels at numerical computing with a syntax that is great for math, many supported numeric data types, and parallelism out of the box. Julia’s multiple dispatch is a natural fit for defining number and array-like data types.
- Optionally typed: Julia has a rich language of descriptive data types, and type declarations can be used to clarify and solidify programs.
- Composable: Julia’s packages naturally work well together. Matrices of unit quantities, or data table columns of currencies and colors, just work — and with good performance."