The use of Python is growing at lightning speed. This language is benefiting enormously from the AI march, despite criticism about disappointing performance. Meanwhile, Julia, designed to be better equipped for handling large data volumes, can be a lot faster. Nevertheless, the latter language is barely growing. Why?
Julia has been around since 2009 and is developed on an open-source basis. Its creators, in a 2012 blog post, stated they aimed to combine the speed of C with the ease of use of Python, while adopting additional positive qualities from various other leading programming languages. They admitted that was a “greedy” desire, but Julia has been considered up for the task for a while. The syntax has been stable since 2018 with version 1.0 – in essence, it was primed for a breakthrough should the opportunity arrive.
Julia is highly parallelized, meaning it is set up to perform many computations simultaneously. This distributed approach to compute is crucial for handling large amounts of data in a timely manner. The language thus responds to the current trend within CPUs and GPUs to provide more and more cores. This applies to products intended for individual users as well as High Performance Computing (HPC) and data centers. If you need to scale your workload, Julia should offer a strong basis to keep growing.
Applications plenty
Julia’s real-world applications are already plentiful. For example, NASA has deployed Julia to calculate the courses of spacecraft. The performance-oriented Julia also excels in financial analysis, weather forecasting and car crash simulations. Such use-cases show that the language’s excellent ability to handle parallelized workloads isn’t just a promise: it can indeed deliver what’s promised.
In other words, those doing a multitude of similar calculations with a lot of data can complete them much faster with Julia than with Python. Because the former is a compiled language, many calculations have already occurred beforehand. It means that Julia can run significantly faster than Python, which still needs to translate to bytecode at runtime and, via the Python Virtual Machine, to machine code (which is the long set of binary numbers that a computer can actually read).
Moving from Python to the better-performing but complex C is time-consuming. The popular Rust, praised for its safe and stable nature, often proves too verbose for scientific applications because it cannot be interpreted at a glance. Compared to other programming languages, Julia code is quite straightforward. That sounds like an excellent resume for achieving wider adoption among development teams, especially if they are currently using Python. However, several factors have thrown a spanner in the works.
The strength and weakness of the Julia community
It should be an advantage of Julia that it is “truly” open source, with no meaningful restrictions on the distribution of software built on this language. The project has over 1,000 contributors and runs on developer feedback. Ideally, that fixes persistent problems, but that is far from the case. In a blog titled “Why I no longer recommend Julia,” developer Yuri Vishnevsky states that the programming language’s problems are regularly swept under the rug by the community.
Every language has bugs. However, Vishnevsky doesn’t take issue with the bugs themselves, but the culture around discussing them online. He points to five previous blogs by others that raised various problems, to which the Julia community responded with denials and trivializations.
One problem here is that not everyone agrees on what constitutes a bug. In the official documentation, the Julia development team admits that the compiler is unconventional and can feel unintuitive. Once users figure out exactly how the language works, they can expect performance close to that of C. It is up to “Julians,” as supporters of the language are called, to convince others of that new approach.
The popularity problem
A central problem is simply that Julia is used far less than other languages. The TIOBE Index places the Julia programming language 37th, with virtually all the options that Julia was supposed to replace above it. Granted, this index isn’t known to be 100% accurate, but it’s at least some indication that adoption of Julia is far from meteoric. Python is right at the top, and for specific applications is actually currently experiencing a meteoric rise in popularity. This level of popularity means that single Python packages will often even offer more support than the entire Julia language does.
Tip: Popularity of Python continues to rise against backdrop of AI race
This results in a lack of support, as many a developer has discovered. Those looking for specific information to perform a particular action often find the desired assistance missing. A key benefit of popular languages being widely-used is that the community finds ways to simplify common tasks, optimize them, provide tutorials or simply answer them on Stack Overflow.
Some “Julians” will have hopes that their favourite language will eventually replace Python or at least catch up to it at some point. They might draw hope from Kotlin, which, as a relatively young language, is now the lingua franca on Android. However, Kotlin managed to overcome the incumbent Java because Android builder Google deliberately chose to promote it. Without this assist by Google, Kotlin would never have grown as quickly, its developers think. Could the rise of AI mean a similar popularity explosion for Julia?
The rise of AI
The biggest problem for Julia has nothing to do with the language itself: Python is already the most obvious option and isn’t in need of an alternative. Although the rise of AI presents new challenges for developers, they can reach for the tools that are familiar to them. Torsten Grabs, Senior Director of Product Management at Snowflake, described in detail on our Dutch-language site last year how versatile Python is. “For example, it forms the basis of Netflix’s algorithm and the software that drives self-driving cars,” he wrote at the time. Its extensive ecosystem of libraries offers a versatility that no alternative can match.
Despite that versatility, a large group of Python developers specialize precisely in data analysis (51 percent) and ML (38 percent). Regardless of Julia’s functional advantages, the time-to-market for AI applications with Python is faster because all the tools are at hand. In addition, millions of programmers can use such tools right away. In other words, the niche is already filled, and by none other than the single most common programming language in the world. It means that Julia, despite all its positives, is confined to a niche it has little hope of escaping.
Read more: How the Kotlin programming language has conquered Android