Top 5 IDEs for Julia
Julia is on a roll! In honor of last week’s version 1.0 release, we’re taking a look at some of the best IDEs for this high performance language. It turns out, Vim is surprisingly well represented on this list!
Julia is having a good summer. The 1.0 release for this high performance programming language dropped last week with improved consistency and usability, a smarter optimizer, and a whole host of performance improvements.
Plus, RedMonk’s latest overview of the programming language universe revealed that Julia has improved its standings considerably, marking the fourth consecutive quarter of growth. Perhaps developers are looking at its uses for data science, machine learning, parallel computing, and other scientific programming applications. So, to celebrate, we’re taking a look at 5 of our favorite IDEs for Julia.
Caveat: As always, this list is subjective. We don’t have all day to go over every specific IDE out there. Additionally, this week’s focus has been shifted towards more Julia-specific IDEs than the popular generalists that show up on every one of our IDE lists.
In no particular order, here are the top 5 IDEs and code editors for Julia.
Juno is the biggest name in Julia-specific IDEs. Built off of Atom, Juno offers developers a powerful environment for Julia developing. It’s customizable like other Atom IDEs, with a whole host of powerful defaults and features like multiple cursors, fuzzy file finding and Vim keybindings.
Juno consists of both Julia and Atom packages in order to add Julia-specific enhancements, such as syntax highlighting, a plot pane, integration with Julia’s debugger (Gallium), a console for running code, and much more. Thanks to Atom’s breezy environment, it’s easy for beginners and experts alike to build faster. The completely live environment certainly helps, along with a hybrid “canvas programming” style.
More information about Juno can be found here. Juno is free and open source.
Interested in creating scientific reports or literate programming for Julia? Weave has got you covered. Weave runs along the same lines as Pweave, Knitr, markdown, and Sweave, except it works for Julia. Data scientists and developers alike can write their documentation and code in an input document using a variety of notations, use the weave function, and generate results and figures.
Current features of Weave include noweb, markdown or script syntax for input documents. Visualization opntions for data generated include capture plots, gadfly, and PyPlot figures. (It also can publish directly to html and pdf!) Weave supports a number of different output formats, including LaTex, Pandoc, Github markdown, MultiMarkdown, Asciidoc and reStructuredText output.
More information about Weave can be found here. Weave is free and open source,
Jupyter Notebooks are usually used for Python machine learning shenanigans, but it turns out they are also highly useful for Julia! It’s a web app that allows developers to make and share documents with code, equations, visualizations and narrative text. Jupyter is incredible useful for teams and collaborative group work.
Jupyter Notebook supports over 40 programming languages, including Python, R, Julia, and Scala. It’s ideal for big data integration, with support for Apache Spark, pandas, scikit-learn, and more. Popular uses for Jupyter include data cleaning and transformation, numerical simulation, statistical modeling, data visualization, machine learning, and more.
More information about Jupyter is available here. Jupyter is free and open source.
Okay, this is kind of a cop-out. Vim is technically good for a lot of things, since it’s very, very, very customizable. (In fact, it’s hit a number of these top IDE lists for this very reason.) However, the sheer number of Julia tools and packages for Vim push it over the top.
In particular, I want to focus on some the Julia package and linter. julia-vim offers developers the chance to take advantage of features like Latex-to-Unicode substitutions, block-wise movements and block text-objects, and changing syntax highlighting depending on the Julia version. The Julia linter for Vim is exactly what it says on the tin, a built in linter.
More information about Vim for Julia is available here. Vim is free and open source.
This is something of a one-off, but JuliaBox is a browser-based IDE for Julia. It is basically an online version of Jupyter. With free registration and a free version, it’s perfect for beginners just starting out with Julia.
JuliaBox includes nearly 300 popular Julia packages, parallel computing capability, and the ability to work on projects on any terminal with internet access. While the free version offers multi-node deployment capability, it is possible to buy added memory, storage, nodes and enterprise support.
More information about JuliaBox is available here. JuliaBox requires users to login, with tiered subscription levels. There is a free option with 3 CPU cores available for 2 GM of disk space.
SEE ALSO: Can Julia give us everything?
Both of our honorable mentions today have some kind of relation to Vim! Let’s take a look.
Kakoune is an open source code editor with a powerful, scriptable, and highly customizable architecture. It’s based on Vi but meant to be more interactive.
Deoplete would have made our top 5; unfortunately, it was recently depreciated in June and the project owner has written that they are no longer supporting the project. That said, if you’re looking for syntax completions for Julia in Neovim, it’s not too out of date just yet.
Looking for our favorite IDEs in other languages? Check them out here: